64 |
|
int i; |
65 |
|
int j; |
66 |
|
int k; |
67 |
+ |
RealType mass; |
68 |
|
RealType kinetic = 0.0; |
69 |
|
RealType kinetic_global = 0.0; |
70 |
|
|
72 |
|
for (integrableObject = mol->beginIntegrableObject(iiter); integrableObject != NULL; |
73 |
|
integrableObject = mol->nextIntegrableObject(iiter)) { |
74 |
|
|
75 |
< |
RealType mass = integrableObject->getMass(); |
76 |
< |
Vector3d vel = integrableObject->getVel(); |
75 |
> |
mass = integrableObject->getMass(); |
76 |
> |
vel = integrableObject->getVel(); |
77 |
|
|
78 |
|
kinetic += mass * (vel[0]*vel[0] + vel[1]*vel[1] + vel[2]*vel[2]); |
79 |
|
|
178 |
|
return pressure; |
179 |
|
} |
180 |
|
|
180 |
– |
|
181 |
– |
|
181 |
|
Mat3x3d Thermo::getPressureTensor() { |
182 |
|
// returns pressure tensor in units amu*fs^-2*Ang^-1 |
183 |
|
// routine derived via viral theorem description in: |
211 |
|
Mat3x3d tau = curSnapshot->statData.getTau(); |
212 |
|
|
213 |
|
pressureTensor = (p_global + OOPSEConstant::energyConvert* tau)/volume; |
214 |
< |
|
214 |
> |
|
215 |
|
return pressureTensor; |
216 |
|
} |
217 |
|
|
218 |
+ |
|
219 |
|
void Thermo::saveStat(){ |
220 |
|
Snapshot* currSnapshot = info_->getSnapshotManager()->getCurrentSnapshot(); |
221 |
|
Stats& stat = currSnapshot->statData; |
228 |
|
stat[Stats::VOLUME] = getVolume(); |
229 |
|
|
230 |
|
Mat3x3d tensor =getPressureTensor(); |
231 |
< |
stat[Stats::PRESSURE_TENSOR_X] = tensor(0, 0); |
232 |
< |
stat[Stats::PRESSURE_TENSOR_Y] = tensor(1, 1); |
233 |
< |
stat[Stats::PRESSURE_TENSOR_Z] = tensor(2, 2); |
231 |
> |
stat[Stats::PRESSURE_TENSOR_XX] = tensor(0, 0); |
232 |
> |
stat[Stats::PRESSURE_TENSOR_XY] = tensor(0, 1); |
233 |
> |
stat[Stats::PRESSURE_TENSOR_XZ] = tensor(0, 2); |
234 |
> |
stat[Stats::PRESSURE_TENSOR_YX] = tensor(1, 0); |
235 |
> |
stat[Stats::PRESSURE_TENSOR_YY] = tensor(1, 1); |
236 |
> |
stat[Stats::PRESSURE_TENSOR_YZ] = tensor(1, 2); |
237 |
> |
stat[Stats::PRESSURE_TENSOR_ZX] = tensor(2, 0); |
238 |
> |
stat[Stats::PRESSURE_TENSOR_ZY] = tensor(2, 1); |
239 |
> |
stat[Stats::PRESSURE_TENSOR_ZZ] = tensor(2, 2); |
240 |
|
|
241 |
|
|
242 |
|
/**@todo need refactorying*/ |