Molecular Dynamics  v0.4
Project for the Practical hosted by the Scientific Computing Chair
Simulator.h
Go to the documentation of this file.
1 //
2 // Created by daniel on 24.04.24.
3 //
4 
5 #pragma once
6 
10 #include "models/Model.h"
11 #include "utils/enumsStructs.h"
12 #include <memory>
18 #include "../models/linkedCells/LinkedCells.h"
19 #include "statistics/Statistics.h"
20 
28 class Simulator {
29 private:
30 
31  //profiles
33  std::unique_ptr<Statistics> statistics;
34  std::array<double, 3> domainSize{};
35 
36  //thermostat
37  std::unique_ptr<Thermostat> thermostat;
42 
43  //simulation dependent
44  std::unique_ptr<Force> force;
45  std::unique_ptr<Model> model;
46  double deltaT;
47  double endT;
48 
49  //output
52 
53  //performance measurements
54  unsigned long long totalMoleculeUpdates;
55 
56 public:
57  Simulator() = delete;
58 
59 
66  Simulator(SimulationSettings &simulationSettings, FileHandler::outputFormat outputFormat);
67 
82  Simulator(DirectSumSimulationParameters &parameters, std::string &inputFilePath,
85 
95  void run(bool benchmark);
96 
102  void loadState(std::string& pathToMolecules);
103 
107  void saveState();
108 
116 
117  unsigned long long getTotalMoleculeUpdates() const;
118 
119 };
outputFormat
Supported output formats.
Definition: FileHandler.h:31
Definition: ParticleContainer.h:11
This class implements the simulation of the particle system.
Definition: Simulator.h:28
void loadState(std::string &pathToMolecules)
Load the state of all molecules from a previous simulation back into this simulation.
Definition: Simulator.cpp:222
double deltaT
Definition: Simulator.h:46
std::array< double, 3 > domainSize
Definition: Simulator.h:34
unsigned long long getTotalMoleculeUpdates() const
Definition: Simulator.cpp:236
std::unique_ptr< Statistics > statistics
Definition: Simulator.h:33
ParticleContainer & getParticles()
Get the Particle container of this simulator.
Definition: Simulator.cpp:232
std::string outputFileBaseName
Definition: Simulator.h:51
std::unique_ptr< Force > force
Definition: Simulator.h:44
bool useThermostat
Definition: Simulator.h:39
unsigned long long totalMoleculeUpdates
Definition: Simulator.h:54
std::unique_ptr< Model > model
Definition: Simulator.h:45
int outputFrequency
Definition: Simulator.h:50
bool computeProfiles
Definition: Simulator.h:32
void run(bool benchmark)
Run the simulation.
Definition: Simulator.cpp:169
Simulator()=delete
double endT
Definition: Simulator.h:47
bool applyScalingGradually
Definition: Simulator.h:41
std::unique_ptr< Thermostat > thermostat
Definition: Simulator.h:37
bool initialiseSystemWithBrownianMotion
Definition: Simulator.h:40
int nThermostat
Definition: Simulator.h:38
void saveState()
Export the current state of all molecules to a txt file for using them in a new simulation.
Definition: Simulator.cpp:228
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-unstructured.h:270
Definition: enumsStructs.h:57
Definition: enumsStructs.h:173