| 36 |
|
* [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). |
| 37 |
|
* [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). |
| 38 |
|
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
| 39 |
< |
* [4] Vardeman & Gezelter, in progress (2009). |
| 39 |
> |
* [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
| 40 |
> |
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 42 |
|
|
| 43 |
|
/** |
| 53 |
|
|
| 54 |
|
#include "integrators/Integrator.hpp" |
| 55 |
|
#include "integrators/RotationAlgorithm.hpp" |
| 56 |
+ |
#include "flucq/FluctuatingChargePropagator.hpp" |
| 57 |
|
#include "constraints/Rattle.hpp" |
| 58 |
+ |
#include "utils/ProgressBar.hpp" |
| 59 |
+ |
|
| 60 |
|
namespace OpenMD { |
| 61 |
|
|
| 62 |
|
/** |
| 67 |
|
class VelocityVerletIntegrator : public Integrator { |
| 68 |
|
public: |
| 69 |
|
virtual ~VelocityVerletIntegrator(); |
| 66 |
– |
|
| 67 |
– |
void setRotationAlgorithm(RotationAlgorithm* algo) { |
| 68 |
– |
if (algo != rotAlgo && rotAlgo != NULL){ |
| 69 |
– |
delete rotAlgo; |
| 70 |
– |
} |
| 71 |
– |
|
| 72 |
– |
rotAlgo = algo; |
| 73 |
– |
} |
| 70 |
|
|
| 71 |
|
protected: |
| 72 |
|
|
| 73 |
|
VelocityVerletIntegrator(SimInfo* info); |
| 78 |
– |
|
| 74 |
|
virtual void doIntegrate(); |
| 80 |
– |
|
| 75 |
|
virtual void initialize(); |
| 82 |
– |
|
| 76 |
|
virtual void preStep(); |
| 84 |
– |
|
| 77 |
|
virtual void integrateStep(); |
| 86 |
– |
|
| 78 |
|
virtual void postStep(); |
| 88 |
– |
|
| 79 |
|
virtual void finalize(); |
| 90 |
– |
|
| 80 |
|
virtual void resetIntegrator() {} |
| 81 |
|
|
| 93 |
– |
RotationAlgorithm* rotAlgo; |
| 94 |
– |
Rattle* rattle; |
| 82 |
|
RealType dt2; |
| 96 |
– |
|
| 83 |
|
RealType currSample; |
| 84 |
|
RealType currStatus; |
| 85 |
|
RealType currThermal; |
| 88 |
|
|
| 89 |
|
private: |
| 90 |
|
|
| 91 |
< |
virtual void calcForce(bool needPotential, bool needStress); |
| 106 |
< |
|
| 91 |
> |
virtual void calcForce(); |
| 92 |
|
virtual void moveA() = 0; |
| 93 |
< |
|
| 109 |
< |
virtual void moveB() = 0; |
| 110 |
< |
|
| 93 |
> |
virtual void moveB() = 0; |
| 94 |
|
virtual RealType calcConservedQuantity() = 0; |
| 112 |
– |
|
| 95 |
|
virtual DumpWriter* createDumpWriter(); |
| 114 |
– |
|
| 96 |
|
virtual StatWriter* createStatWriter(); |
| 97 |
|
|
| 98 |
+ |
ProgressBar* progressBar; |
| 99 |
+ |
|
| 100 |
|
}; |
| 101 |
|
|
| 102 |
|
} //end namespace OpenMD |