--- trunk/src/brains/Snapshot.cpp 2013/07/02 20:02:31 1896 +++ trunk/src/brains/Snapshot.cpp 2014/09/26 22:22:28 2022 @@ -70,6 +70,7 @@ namespace OpenMD { frameData.torsionPotential = 0.0; frameData.inversionPotential = 0.0; frameData.lrPotentials = potVec(0.0); + frameData.reciprocalPotential = 0.0; frameData.excludedPotentials = potVec(0.0); frameData.restraintPotential = 0.0; frameData.rawPotential = 0.0; @@ -103,6 +104,7 @@ namespace OpenMD { frameData.torsionPotential = 0.0; frameData.inversionPotential = 0.0; frameData.lrPotentials = potVec(0.0); + frameData.reciprocalPotential = 0.0; frameData.excludedPotentials = potVec(0.0); frameData.restraintPotential = 0.0; frameData.rawPotential = 0.0; @@ -128,7 +130,8 @@ namespace OpenMD { frameData.pressure = 0.0; frameData.temperature = 0.0; frameData.pressureTensor = Mat3x3d(0.0); - frameData.systemDipole = Vector3d(0.0); + frameData.systemDipole = Vector3d(0.0); + frameData.systemQuadrupole = Mat3x3d(0.0); frameData.convectiveHeatFlux = Vector3d(0.0, 0.0, 0.0); frameData.electronicTemperature = 0.0; frameData.COM = V3Zero; @@ -152,6 +155,7 @@ namespace OpenMD { hasCOMw = false; hasPressureTensor = false; hasSystemDipole = false; + hasSystemQuadrupole = false; hasConvectiveHeatFlux = false; hasInertiaTensor = false; hasGyrationalVolume = false; @@ -187,6 +191,11 @@ namespace OpenMD { /** Returns the number of rigid bodies */ int Snapshot::getNumberOfCutoffGroups() { return cgData.getSize(); + } + + /** Returns the number of bytes in a FrameData structure */ + int Snapshot::getFrameDataSize() { + return sizeof(FrameData); } /** Returns the H-Matrix */ @@ -414,6 +423,14 @@ namespace OpenMD { return frameData.shortRangePotential; } + void Snapshot::setReciprocalPotential(RealType rp){ + frameData.reciprocalPotential = rp; + } + + RealType Snapshot::getReciprocalPotential() { + return frameData.reciprocalPotential; + } + void Snapshot::setLongRangePotential(potVec lrPot) { frameData.lrPotentials = lrPot; } @@ -423,6 +440,7 @@ namespace OpenMD { for (int i = 0; i < N_INTERACTION_FAMILIES; i++) { frameData.longRangePotential += frameData.lrPotentials[i]; } + frameData.longRangePotential += frameData.reciprocalPotential; hasLongRangePotential = true; } return frameData.longRangePotential; @@ -586,6 +604,15 @@ namespace OpenMD { frameData.systemDipole = bd; } + Mat3x3d Snapshot::getSystemQuadrupole() { + return frameData.systemQuadrupole; + } + + void Snapshot::setSystemQuadrupole(const Mat3x3d& bq) { + hasSystemQuadrupole = true; + frameData.systemQuadrupole = bq; + } + void Snapshot::setThermostat(const pair& thermostat) { frameData.thermostat = thermostat; }