30 |
|
virtual double getConservedQuantity(void); |
31 |
|
|
32 |
|
protected: |
33 |
< |
|
33 |
> |
|
34 |
|
virtual void integrateStep( int calcPot, int calcStress ); |
35 |
|
virtual void preMove( void ); |
36 |
|
virtual void moveA( void ); |
44 |
|
virtual void calcForce( int calcPot, int calcStress ); |
45 |
|
virtual void thermalize(); |
46 |
|
|
47 |
+ |
virtual void rotationPropagation( DirectionalAtom* dAtom, double ji[3] ); |
48 |
+ |
|
49 |
|
void checkConstraints( void ); |
50 |
|
void rotate( int axes1, int axes2, double angle, double j[3], |
51 |
|
double A[3][3] ); |
137 |
|
|
138 |
|
|
139 |
|
|
140 |
< |
template<typename T> class NPTi : public T{ |
140 |
> |
template<typename T> class NPT : public T{ |
141 |
|
|
142 |
|
public: |
143 |
|
|
144 |
< |
NPTi ( SimInfo *theInfo, ForceFields* the_ff); |
145 |
< |
virtual ~NPTi(); |
144 |
> |
NPT ( SimInfo *theInfo, ForceFields* the_ff); |
145 |
> |
virtual ~NPT(); |
146 |
|
|
147 |
|
virtual void integrateStep( int calcPot, int calcStress ){ |
148 |
|
calcStress = 1; |
149 |
|
T::integrateStep( calcPot, calcStress ); |
148 |
– |
/* accIntegralOfChidt(); */ |
150 |
|
} |
151 |
|
|
152 |
< |
virtual double getConservedQuantity(void); |
152 |
> |
virtual double getConservedQuantity(void) = 0; |
153 |
|
|
154 |
|
void setTauThermostat(double tt) {tauThermostat = tt; have_tau_thermostat=1;} |
155 |
|
void setTauBarostat(double tb) {tauBarostat = tb; have_tau_barostat=1;} |
168 |
|
|
169 |
|
virtual void resetIntegrator( void ); |
170 |
|
|
171 |
+ |
virtual void getVelScaleA( double sc[3], double vel[3] ) = 0; |
172 |
+ |
virtual void getVelScaleB( double sc[3], int index ) = 0; |
173 |
+ |
virtual void getPosScale(double pos[3], double COM[3], |
174 |
+ |
int index, double sc[3]) = 0; |
175 |
+ |
|
176 |
+ |
virtual bool chiConverged( void ); |
177 |
+ |
virtual bool etaConverged( void ) = 0; |
178 |
+ |
|
179 |
+ |
virtual void evolveChiA( void ); |
180 |
+ |
virtual void evolveEtaA( void ) = 0; |
181 |
+ |
virtual void evolveChiB( void ); |
182 |
+ |
virtual void evolveEtaB( void ) = 0; |
183 |
+ |
|
184 |
+ |
virtual void scaleSimBox( void ) = 0; |
185 |
+ |
|
186 |
|
void accIntegralOfChidt(void) { integralOfChidt += dt * chi;} |
187 |
|
|
188 |
|
// chi and eta are the propagated degrees of freedom |
189 |
|
|
190 |
+ |
double oldChi; |
191 |
+ |
double prevChi; |
192 |
|
double chi; |
175 |
– |
double eta; |
193 |
|
double NkBT; |
194 |
|
double fkBT; |
195 |
|
|
196 |
+ |
double tt2, tb2; |
197 |
+ |
double instaTemp, instaPress, instaVol; |
198 |
+ |
|
199 |
|
int Nparticles; |
200 |
|
|
201 |
|
double integralOfChidt; |
224 |
|
|
225 |
|
}; |
226 |
|
|
227 |
+ |
template<typename T> class NPTi : public T{ |
228 |
+ |
|
229 |
+ |
public: |
230 |
+ |
NPTi( SimInfo *theInfo, ForceFields* the_ff); |
231 |
+ |
~NPTi(); |
232 |
+ |
|
233 |
+ |
virtual double getConservedQuantity(void); |
234 |
+ |
virtual void resetIntegrator(void); |
235 |
+ |
|
236 |
+ |
protected: |
237 |
+ |
|
238 |
+ |
|
239 |
+ |
|
240 |
+ |
virtual void evolveEtaA(void); |
241 |
+ |
virtual void evolveEtaB(void); |
242 |
+ |
|
243 |
+ |
virtual bool etaConverged( void ); |
244 |
+ |
|
245 |
+ |
virtual void scaleSimBox( void ); |
246 |
+ |
|
247 |
+ |
virtual void getVelScaleA( double sc[3], double vel[3] ); |
248 |
+ |
virtual void getVelScaleB( double sc[3], int index ); |
249 |
+ |
virtual void getPosScale(double pos[3], double COM[3], |
250 |
+ |
int index, double sc[3]); |
251 |
+ |
|
252 |
+ |
double eta, oldEta, prevEta; |
253 |
+ |
}; |
254 |
+ |
|
255 |
+ |
|
256 |
|
template<typename T> class NPTim : public T{ |
257 |
|
|
258 |
|
public: |