61 class NPT :
public VelocityVerletIntegrator {
65 int getMaxIterationNumber() {
return maxIterNum_; }
67 void setMaxIterationNumber(
int maxIter) { maxIterNum_ = maxIter; }
68 RealType getTauThermostat() {
return tauThermostat; }
70 void setTauThermostat(RealType tt) { tauThermostat = tt; }
72 RealType getTauBarostat() {
return tauBarostat; }
73 void setTauBarostat(RealType tb) { tauBarostat = tb; }
75 RealType getTargetTemp() {
return targetTemp; }
77 void setTargetTemp(RealType tt) { targetTemp = tt; }
79 RealType getTargetPressure() {
return targetTemp; }
81 void setTargetPressure(RealType tp) { targetPressure = tp; }
83 RealType getChiTolerance() {
return chiTolerance; }
85 void setChiTolerance(RealType tol) { chiTolerance = tol; }
87 RealType getEtaTolerance() {
return etaTolerance; }
89 void setEtaTolerance(RealType tol) { etaTolerance = tol; }
97 virtual void doUpdateSizes();
99 virtual void resetIntegrator();
101 virtual void resetEta();
117 RealType targetPressure;
118 RealType tauThermostat;
119 RealType tauBarostat;
121 std::vector<Vector3d> oldPos;
122 std::vector<Vector3d> oldVel;
123 std::vector<Vector3d> oldJi;
125 RealType etaTolerance;
127 pair<RealType, RealType> thermostat;
131 virtual void moveA();
132 virtual void moveB();
134 virtual void getVelScaleA(Vector3d& sc,
const Vector3d& vel) = 0;
136 virtual void getVelScaleB(Vector3d& sc,
int index) = 0;
138 virtual void getPosScale(
const Vector3d& pos,
const Vector3d& COM,
139 int index, Vector3d& sc) = 0;
141 virtual void calcVelScale() = 0;
143 virtual bool etaConverged() = 0;
145 virtual void evolveEtaA() = 0;
147 virtual void evolveEtaB() = 0;
149 virtual void scaleSimBox() = 0;
151 virtual RealType calcConservedQuantity() = 0;
153 virtual void loadEta() = 0;
154 virtual void saveEta() = 0;
155 RealType chiTolerance;