10 #ifndef BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H
11 #define BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H
17 #ifndef BALL_DATATYPE_OPTIONS_H
21 #ifndef BALL_MOLMEC_COMMON_ATOMVECTOR_H
30 class SnapShotManager;
150 MolecularDynamics(const MolecularDynamics& rhs);
154 virtual ~MolecularDynamics();
163 const MolecularDynamics& operator =(const MolecularDynamics& rhs);
167 void set(const MolecularDynamics& rhs);
176 bool isValid() const;
194 virtual
bool specificSetup();
203 void setNumberOfIteration(
Size number);
209 void setMaximalNumberOfIterations(
Size number);
215 void setMaximalSimulationTime(
double time);
220 virtual
void setTimeStep(
double step);
226 void setReferenceTemperature(
double temperature);
230 void setCurrentTime(
double time);
236 void setEnergyOutputFrequency(
Size number);
240 void setSnapShotFrequency(
Size number);
244 Size getEnergyOutputFrequency() const;
248 Size getNumberOfIterations() const;
252 Size getMaximalNumberOfIterations() const;
256 double getMaximalSimulationTime() const;
260 double getTimeStep() const;
264 Size getSnapShotFrequency() const;
268 double getTemperature() const;
272 double getTime() const;
276 double getTotalEnergy() const;
280 double getPotentialEnergy() const;
284 double getKineticEnergy() const;
296 bool simulate(
bool restart = false);
304 bool simulateTime(
double simulation_time,
bool restart = false);
313 virtual
bool simulateIterations(
Size number,
bool restart = false);
317 void enableEnergyAbortCondition(
bool state);
320 bool energyAbortConditionEnabled() const;
325 void setEnergyToAbort(
float value);
330 float getEnergyToAbort() const;
352 void updateInstantaneousTemperature();
383 Size maximal_number_of_iterations_;
391 double reference_temperature_;
395 double current_temperature_;
399 double kinetic_energy_;
403 double total_energy_;
407 double current_time_;
422 bool abort_by_energy_enabled_;
432 #endif // BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H