| 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 |
|
} |