--- branches/development/src/brains/BlockSnapshotManager.cpp 2011/09/14 21:15:17 1629 +++ branches/development/src/brains/BlockSnapshotManager.cpp 2013/01/09 19:27:52 1825 @@ -36,7 +36,8 @@ * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). - * [4] Vardeman & Gezelter, in progress (2009). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ #include #include "brains/BlockSnapshotManager.hpp" @@ -70,7 +71,7 @@ namespace OpenMD { // total number of frames that can fit in memory //RealType frameCapacity = avaliablePhysMem / bytesPerFrame; - RealType frameCapacity = memSize_ / bytesPerFrame; + RealType frameCapacity = (RealType) memSize_ / (RealType) bytesPerFrame; // number of frames in each block given the need to hold multiple blocks // in memory at the same time: @@ -150,7 +151,7 @@ namespace OpenMD { //if number of active blocks is less than the block capacity, just load it internalLoad(block); loadSuccess = true; - } else if (hasZeroRefBlock() > 0) { + } else if ( hasZeroRefBlock() ) { //if already reach the block capacity, need to unload a block with 0 reference int zeroRefBlock = getFirstZeroRefBlock(); assert(zeroRefBlock != -1); @@ -224,17 +225,14 @@ namespace OpenMD { } Snapshot* BlockSnapshotManager::loadFrame(int frame){ - Snapshot* snapshot = new Snapshot(nAtoms_, nRigidBodies_, nCutoffGroups_, getStorageLayout()); + Snapshot* snapshot = new Snapshot(nAtoms_, nRigidBodies_, nCutoffGroups_, + getStorageLayout()); snapshot->setID(frame); + snapshot->clearDerivedProperties(); - /** @todo fixed me */ - Snapshot* oldSnapshot = currentSnapshot_; currentSnapshot_ = snapshot; reader_->readFrame(frame); - // What was this for? It doesn't make sense! - //currentSnapshot_ = oldSnapshot; - return snapshot; }