40 |
|
class NPT : public VelocityVerletIntegrator { |
41 |
|
public: |
42 |
|
|
43 |
< |
NPT(SimInfo * theInfo, ForceFields * the_ff); |
44 |
< |
virtual~NPT(); |
43 |
> |
NPT(SimInfo * info); |
44 |
> |
virtual ~NPT(); |
45 |
|
|
46 |
|
|
47 |
|
int getMaxIterationNumber() { |
100 |
|
|
101 |
|
protected: |
102 |
|
|
103 |
< |
virtual void integrateStep(int calcPot, int calcStress) { |
104 |
< |
calcStress = 1; |
105 |
< |
T::integrateStep(calcPot, calcStress); |
103 |
> |
virtual void integrateStep() { |
104 |
> |
needStress= true; |
105 |
> |
VelocityVerletIntegrator::integrateStep(); |
106 |
|
} |
107 |
+ |
|
108 |
+ |
virtual void doUpdate(); |
109 |
|
|
110 |
|
double NkBT; |
111 |
|
double fkBT; |
116 |
|
double instaTemp; |
117 |
|
double instaPress; |
118 |
|
double instaVol; |
117 |
– |
Vector3d press; |
119 |
|
|
120 |
+ |
|
121 |
|
// targetTemp, targetPressure, and tauBarostat must be set. |
122 |
|
// One of qmass or tauThermostat must be set; |
123 |
|
|
131 |
|
std::vector<Vector3d> oldJi; |
132 |
|
|
133 |
|
double etaTolerance; |
134 |
+ |
|
135 |
+ |
double chi; |
136 |
+ |
double integralOfChidt; |
137 |
+ |
Mat3x3d press; |
138 |
|
|
139 |
|
private: |
140 |
|
|
142 |
|
virtual void moveB(); |
143 |
|
|
144 |
|
virtual void getVelScaleA(Vector3d& sc, const Vector3d& vel) = 0; |
145 |
< |
virtual void getVelScaleB(Vector3d& sc, int index ) = 0; |
140 |
< |
virtual void getVelScaleA(Vector3d& sc, const Vector3d& vel) = 0; |
145 |
> |
|
146 |
|
virtual void getVelScaleB(Vector3d& sc, int index) = 0; |
147 |
< |
virtual void getPosScale(const Vector3d& pos, const Vector3d& COM, |
148 |
< |
int index, Vector3d& sc) = 0; |
147 |
> |
|
148 |
> |
virtual void getPosScale(const Vector3d& pos, const Vector3d& COM, |
149 |
> |
int index, Vector3d& sc) = 0; |
150 |
> |
|
151 |
|
virtual void calcVelScale() = 0; |
152 |
|
|
146 |
– |
virtual bool chiConverged(); |
153 |
|
virtual bool etaConverged() = 0; |
154 |
|
|
149 |
– |
virtual void evolveChiA(); |
155 |
|
virtual void evolveEtaA() = 0; |
156 |
< |
virtual void evolveChiB(); |
156 |
> |
|
157 |
|
virtual void evolveEtaB() = 0; |
158 |
|
|
159 |
|
virtual void scaleSimBox() = 0; |
160 |
|
|
161 |
|
virtual double calcConservedQuantity() = 0; |
162 |
+ |
|
163 |
+ |
virtual void loadEta() = 0; |
164 |
+ |
virtual void saveEta() = 0; |
165 |
|
|
166 |
|
int maxIterNum_; |
167 |
|
|
168 |
< |
double oldChi; |
161 |
< |
double prevChi; |
162 |
< |
double chi; |
163 |
< |
double chiTolerance; |
168 |
> |
double chiTolerance; |
169 |
|
}; |
170 |
|
|
171 |
|
} //end namespace oopse |