162 |
|
return pressure; |
163 |
|
} |
164 |
|
|
165 |
+ |
double Thermo::getPressure(int direction) { |
166 |
+ |
|
167 |
+ |
// Relies on the calculation of the full molecular pressure tensor |
168 |
+ |
|
169 |
+ |
|
170 |
+ |
Mat3x3d tensor; |
171 |
+ |
double pressure; |
172 |
+ |
|
173 |
+ |
tensor = getPressureTensor(); |
174 |
+ |
|
175 |
+ |
pressure = OOPSEConstant::pressureConvert * tensor(direction, direction); |
176 |
+ |
|
177 |
+ |
return pressure; |
178 |
+ |
} |
179 |
+ |
|
180 |
+ |
|
181 |
+ |
|
182 |
|
Mat3x3d Thermo::getPressureTensor() { |
183 |
|
// returns pressure tensor in units amu*fs^-2*Ang^-1 |
184 |
|
// routine derived via viral theorem description in: |
227 |
|
stat[Stats::PRESSURE] = getPressure(); |
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); |
234 |
+ |
|
235 |
+ |
|
236 |
|
/**@todo need refactorying*/ |
237 |
|
//Conserved Quantity is set by integrator and time is set by setTime |
238 |
|
|