26#ifndef MANAGER_MONITORINGMANAGER_H
27#define MANAGER_MONITORINGMANAGER_H
35#include <MonitorIn.hxx>
36#include <MonitorOut.hxx>
67 virtual void end() = 0;
80 void reload(
bool delPml =
true);
85 void writeOutput(
const char* fileName);
87 void writeCsv(
const char* fileName);
89 void saveMmlIn(
const char* fileName);
95 double getCurrentTime();
96 double getCurrentStep();
97 double getStepComputingTime();
98 double getComputingTime();
114 std::string getPmlFileName();
115 std::string getLmlFileName();
116 std::string getMmlFileName();
117 std::string getmmlFileFolder();
120 void getOldPosition(
double pos[3],
unsigned int index);
124 void setCurrentTime(
double time);
127 void storeOldPositions();
129 void updateCurrentTime();
131 void updateComputingTime();
136 void setDt(
double dt);
138 void setRefresh(
double refresh);
140 void setPmlFileName(
const char* file);
142 void setLmlFileName(
const char* file);
146 void addMonitor(
Monitor* monitor);
148 Monitor* getMonitor(
const unsigned int i)
const;
150 void deleteMonitor(
const unsigned int i);
152 unsigned int numberOfMonitor()
const;
162 std::unique_ptr<mml::MonitoringIn>
mmlIn;
189 void buildMonitors();
195 void buildPmlAndSimulator(
bool delPml =
true);
197 void buildPmlAndSimulatorfromPml();
199 void buildPmlAndSimulatorfromSimulator();
206 double* oldPositionPointer;
214 std::string pmlFileName;
216 std::string lmlFileName;
218 std::string mmlFileName;
220 std::string mmlFileFolder;
#define MML_API
Definition MMLAPI.h:43
This class makes it possible to manage a list of "Load".
Definition Loads.h:71
A monitor calculate and store followed data (ex:calculation between current position and references) ...
Definition Monitor.h:49
Manager of the benchmark tests.
Definition MonitoringManager.h:50
double refresh
refreshing step
Definition MonitoringManager.h:171
std::vector< mml::TimeStep * > times
Vector that contains information saved by saveMonitors method.
Definition MonitoringManager.h:166
double computingTime
total computing time at current moment
Definition MonitoringManager.h:182
Simulator * simul
the simulator used for simualtion
Definition MonitoringManager.h:184
double currentTime
time at current moment
Definition MonitoringManager.h:178
std::vector< Monitor * > monitors
Vector that contains all monitors.
Definition MonitoringManager.h:164
double stepComputingTime
computing time of last step
Definition MonitoringManager.h:180
std::unique_ptr< mml::MonitoringIn > mmlIn
Object representing manager in the file generated by xsdcxx, can be used for serialization.
Definition MonitoringManager.h:162
int step
current step
Definition MonitoringManager.h:176
double dt
integration step
Definition MonitoringManager.h:169
std::string simulatorName
name of the simulator
Definition MonitoringManager.h:173
virtual bool checkStop()=0
Check if simulation is finished.
virtual void end()=0
End manager.
virtual void doMove()=0
Do one step of simulation and save monitors for this step.
virtual bool init()=0
Initialize manager.
This is the main class of this project.
Definition PhysicalModel.h:86
A simulator engine is used to compute the displacements of all atoms of the model.
Definition Simulator.h:46