29 |
|
{ |
30 |
|
chi = 0.0; |
31 |
|
eta = 0.0; |
32 |
+ |
integralOfChidt = 0.0; |
33 |
|
have_tau_thermostat = 0; |
34 |
|
have_tau_barostat = 0; |
35 |
|
have_target_temp = 0; |
282 |
|
|
283 |
|
return 1; |
284 |
|
} |
285 |
+ |
|
286 |
+ |
template<typename T> double NPTim<T>::getConservedQuantity(void){ |
287 |
+ |
|
288 |
+ |
double conservedQuantity; |
289 |
+ |
double tb2; |
290 |
+ |
double eta2; |
291 |
+ |
|
292 |
+ |
|
293 |
+ |
//HNVE |
294 |
+ |
conservedQuantity = tStats->getTotalE(); |
295 |
+ |
|
296 |
+ |
//HNVT |
297 |
+ |
conservedQuantity += (info->getNDF() * kB * targetTemp * |
298 |
+ |
(integralOfChidt + tauThermostat * tauThermostat * chi * chi /2))/ eConvert ; |
299 |
+ |
|
300 |
+ |
//HNPT |
301 |
+ |
tb2 = tauBarostat *tauBarostat; |
302 |
+ |
eta2 = eta * eta; |
303 |
+ |
|
304 |
+ |
conservedQuantity += (targetPressure * tStats->getVolume() / p_convert + |
305 |
+ |
3*NkBT/2 * tb2 * eta2) / eConvert; |
306 |
+ |
|
307 |
+ |
return conservedQuantity; |
308 |
+ |
} |