209 |
|
RealType volume = this->getVolume(); |
210 |
|
Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot(); |
211 |
|
Mat3x3d tau = curSnapshot->statData.getTau(); |
212 |
< |
|
212 |
> |
|
213 |
|
pressureTensor = (p_global + OOPSEConstant::energyConvert* tau)/volume; |
214 |
|
|
215 |
|
return pressureTensor; |
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 |
> |
Globals* simParams = info_->getSimParams(); |
243 |
> |
|
244 |
> |
if (simParams->haveTaggedAtomPair() && |
245 |
> |
simParams->havePrintTaggedPairDistance()) { |
246 |
> |
if ( simParams->getPrintTaggedPairDistance()) { |
247 |
> |
|
248 |
> |
std::pair<int, int> tap = simParams->getTaggedAtomPair(); |
249 |
> |
Vector3d pos1, pos2, rab; |
250 |
> |
|
251 |
> |
#ifdef IS_MPI |
252 |
> |
|
253 |
> |
int mol1 = info_->getGlobalMolMembership(tap.first); |
254 |
> |
int mol2 = info_->getGlobalMolMembership(tap.second); |
255 |
> |
|
256 |
> |
int proc1 = info_->getMolToProc(mol1); |
257 |
> |
int proc2 = info_->getMolToProc(mol2); |
258 |
> |
|
259 |
> |
RealType data[3]; |
260 |
> |
if (proc1 == worldRank) { |
261 |
> |
StuntDouble* sd1 = info_->getIOIndexToIntegrableObject(tap.first); |
262 |
> |
pos1 = sd1->getPos(); |
263 |
> |
data[0] = pos1.x(); |
264 |
> |
data[1] = pos1.y(); |
265 |
> |
data[2] = pos1.z(); |
266 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc1, MPI_COMM_WORLD); |
267 |
> |
} else { |
268 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc1, MPI_COMM_WORLD); |
269 |
> |
pos1 = Vector3d(data); |
270 |
> |
} |
271 |
|
|
272 |
|
|
273 |
+ |
if (proc2 == worldRank) { |
274 |
+ |
StuntDouble* sd2 = info_->getIOIndexToIntegrableObject(tap.second); |
275 |
+ |
pos2 = sd2->getPos(); |
276 |
+ |
data[0] = pos2.x(); |
277 |
+ |
data[1] = pos2.y(); |
278 |
+ |
data[2] = pos2.z(); |
279 |
+ |
MPI_Bcast(data, 3, MPI_REALTYPE, proc2, MPI_COMM_WORLD); |
280 |
+ |
} else { |
281 |
+ |
MPI_Bcast(data, 3, MPI_REALTYPE, proc2, MPI_COMM_WORLD); |
282 |
+ |
pos2 = Vector3d(data); |
283 |
+ |
} |
284 |
+ |
#else |
285 |
+ |
StuntDouble* at1 = info_->getIOIndexToIntegrableObject(tap.first); |
286 |
+ |
StuntDouble* at2 = info_->getIOIndexToIntegrableObject(tap.second); |
287 |
+ |
pos1 = at1->getPos(); |
288 |
+ |
pos2 = at2->getPos(); |
289 |
+ |
#endif |
290 |
+ |
rab = pos2 - pos1; |
291 |
+ |
currSnapshot->wrapVector(rab); |
292 |
+ |
stat[Stats::TAGGED_PAIR_DISTANCE] = rab.length(); |
293 |
+ |
} |
294 |
+ |
} |
295 |
+ |
|
296 |
|
/**@todo need refactorying*/ |
297 |
|
//Conserved Quantity is set by integrator and time is set by setTime |
298 |
|
|