From 9a93918e1dea2ebb1a43afa5ae0977f748e1345c Mon Sep 17 00:00:00 2001 From: graham Date: Tue, 27 Jan 2009 14:47:49 +0000 Subject: [PATCH] Measuring temperature by the average kinetic energy per degree of freedom to allow for a mix of linear, mono-atomic and 6dof molecules in a case. --- .../mdTools/meanMomentumEnergyAndNMols.H | 43 +++++++++++-------- .../molecule/mdTools/temperatureAndPressure.H | 14 +++--- .../mdTools/temperatureAndPressureVariables.H | 2 + .../molecule/molecule/molecule.H | 2 + .../molecule/molecule/moleculeI.H | 19 +++++++- 5 files changed, 54 insertions(+), 26 deletions(-) diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H b/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H index 8688d63669..be97a829c1 100644 --- a/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H +++ b/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H @@ -52,6 +52,8 @@ scalar singleStepTotalrDotf = 0.0; label singleStepNMols = molecules.size(); +label singleStepDOFs = 0; + { IDLList::iterator mol(molecules.begin()); @@ -85,9 +87,11 @@ label singleStepNMols = molecules.size(); { label molId = mol().id(); - scalar molMass(molecules.constProps(molId).mass()); + const molecule::constantProperties cP(molecules.constProps(molId)); - const diagTensor& molMoI(molecules.constProps(molId).momentOfInertia()); + scalar molMass(cP.mass()); + + const diagTensor& molMoI(cP.momentOfInertia()); const vector& molV(mol().v()); @@ -112,6 +116,8 @@ label singleStepNMols = molecules.size(); singleStepTotalPE += mol().potentialEnergy(); singleStepTotalrDotf += tr(mol().rf()); + + singleStepDOFs += cP.degreesOfFreedom(); } } @@ -134,46 +140,49 @@ if (Pstream::parRun()) reduce(singleStepTotalrDotf, sumOp()); reduce(singleStepNMols, sumOp