54 |
|
#include <vector> |
55 |
|
|
56 |
|
#include "brains/DataStorage.hpp" |
57 |
+ |
#include "nonbonded/NonBondedInteraction.hpp" |
58 |
|
#include "brains/Stats.hpp" |
59 |
|
|
60 |
|
namespace OpenMD{ |
70 |
|
RealType totalEnergy; /**< total energy of this frame */ |
71 |
|
RealType kineticEnergy; /**< kinetic energy of this frame */ |
72 |
|
RealType potentialEnergy; /**< potential energy of this frame */ |
73 |
+ |
RealType shortRangePotential; /**< short-range contributions to the potential*/ |
74 |
+ |
RealType longRangePotential; /**< long-range contributions to the potential */ |
75 |
+ |
RealType bondPotential; /**< bonded contribution to the potential */ |
76 |
+ |
RealType bendPotential; /**< angle-bending contribution to the potential */ |
77 |
+ |
RealType torsionPotential; /**< dihedral (torsion angle) contribution to the potential */ |
78 |
+ |
RealType inversionPotential; /**< inversion (planarity) contribution to the potential */ |
79 |
+ |
potVec lrPotentials; /**< breakdown of long-range potentials by family */ |
80 |
|
RealType temperature; /**< temperature of this frame */ |
81 |
|
RealType chi; /**< thermostat velocity */ |
82 |
|
RealType integralOfChiDt; /**< the actual thermostat */ |
87 |
|
Vector3d COM; /**< location of center of mass */ |
88 |
|
Vector3d COMvel; /**< system center of mass velocity */ |
89 |
|
Vector3d COMw; /**< system center of mass angular velocity */ |
90 |
< |
Mat3x3d tau; /**< stress tensor */ |
90 |
> |
Mat3x3d stressTensor; /**< stress tensor */ |
91 |
|
Mat3x3d pressureTensor; /**< pressure tensor */ |
92 |
|
Vector3d systemDipole; /**< total system dipole moment */ |
93 |
+ |
Vector3d conductiveHeatFlux; /**< heat flux vector (conductive only) */ |
94 |
|
}; |
95 |
|
|
96 |
|
|
130 |
|
frameData.COM = V3Zero; |
131 |
|
frameData.COMvel = V3Zero; |
132 |
|
frameData.COMw = V3Zero; |
133 |
< |
frameData.tau = Mat3x3d(0.0); |
133 |
> |
frameData.stressTensor = Mat3x3d(0.0); |
134 |
|
frameData.pressureTensor = Mat3x3d(0.0); |
135 |
< |
frameData.systemDipole = V3Zero; |
135 |
> |
frameData.systemDipole = Vector3d(0.0); |
136 |
> |
frameData.conductiveHeatFlux = Vector3d(0.0, 0.0, 0.0); |
137 |
|
} |
138 |
|
|
139 |
|
Snapshot(int nAtoms, int nRigidbodies, int nCutoffGroups, |
163 |
|
frameData.COM = V3Zero; |
164 |
|
frameData.COMvel = V3Zero; |
165 |
|
frameData.COMw = V3Zero; |
166 |
< |
frameData.tau = Mat3x3d(0.0); |
166 |
> |
frameData.stressTensor = Mat3x3d(0.0); |
167 |
|
frameData.pressureTensor = Mat3x3d(0.0); |
168 |
|
frameData.systemDipole = V3Zero; |
169 |
+ |
frameData.conductiveHeatFlux = Vector3d(0.0, 0.0, 0.0); |
170 |
|
} |
171 |
|
|
172 |
|
/** Returns the id of this Snapshot */ |
293 |
|
frameData.eta = eta; |
294 |
|
} |
295 |
|
|
296 |
< |
Mat3x3d getTau() { |
297 |
< |
return frameData.tau; |
296 |
> |
Mat3x3d getStressTensor() { |
297 |
> |
return frameData.stressTensor; |
298 |
|
} |
299 |
|
|
300 |
< |
void setTau(const Mat3x3d& tau) { |
301 |
< |
frameData.tau = tau; |
300 |
> |
void setStressTensor(const Mat3x3d& stressTensor) { |
301 |
> |
frameData.stressTensor = stressTensor; |
302 |
|
} |
303 |
|
|
304 |
+ |
Vector3d getConductiveHeatFlux() { |
305 |
+ |
return frameData.conductiveHeatFlux; |
306 |
+ |
} |
307 |
+ |
|
308 |
+ |
void setConductiveHeatFlux(const Vector3d& heatFlux) { |
309 |
+ |
frameData.conductiveHeatFlux = heatFlux; |
310 |
+ |
} |
311 |
+ |
|
312 |
|
bool hasCOM() { |
313 |
|
return hasCOM_; |
314 |
|
} |