45#ifndef INTEGRATORS_INTEGRATOR_HPP
46#define INTEGRATORS_INTEGRATOR_HPP
51#include "brains/Stats.hpp"
52#include "brains/Velocitizer.hpp"
53#include "constraints/Rattle.hpp"
54#include "flucq/FluctuatingChargePropagator.hpp"
55#include "integrators/DLM.hpp"
56#include "integrators/RotationAlgorithm.hpp"
57#include "io/DumpWriter.hpp"
58#include "io/StatWriter.hpp"
59#include "rnemd/RNEMD.hpp"
60#include "utils/ProgressBar.hpp"
82 void setVelocitizer(std::unique_ptr<Velocitizer> velocitizer);
85 void setRNEMD(std::unique_ptr<RNEMD::RNEMD> rnemd);
90 virtual void initialize();
91 virtual void preStep();
98 virtual void calcForce();
99 virtual void postStep();
100 virtual void finalize();
101 virtual void resetIntegrator() {}
102 virtual void doUpdateSizes() {}
103 void saveConservedQuantity();
109 RealType thermalTime;
111 RealType RNEMD_exchangeTime;
114 RealType currThermal;
123 Rattle* rattle_ {
nullptr};
124 std::unique_ptr<Velocitizer> velocitizer_ {
nullptr};
125 std::unique_ptr<RNEMD::RNEMD> rnemd_ {
nullptr};
127 bool needPotential {
false};
128 bool needVirial {
false};
129 bool needReset {
false};
130 bool needVelocityScaling {
false};
131 bool useRNEMD {
false};
133 RealType targetScalingTemp;
135 Stats* stats {
nullptr};
141 ProgressBarPtr progressBar {
nullptr};
144 virtual RealType calcConservedQuantity() = 0;
abstract class for propagating fluctuating charge variables
ForceManager is responsible for calculating both the short range (bonded) interactions and long range...
Declaration of the Integrator base class, which all other integrators inherit from.
virtual ~Integrator()
Default Destructor.
virtual void step()=0
Computes an integration step from t to t+dt.
Velocity Verlet Constraint Algorithm.
abstract class for rotation
One of the heavy-weight classes of OpenMD, SimInfo maintains objects and variables relating to the cu...
The Snapshot class is a repository storing dynamic data during a Simulation.
A configurable Statistics Writer.
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.