--- branches/development/src/brains/BlockSnapshotManager.cpp 2011/11/22 20:38:56 1665 +++ branches/development/src/brains/BlockSnapshotManager.cpp 2013/01/09 19:27:52 1825 @@ -71,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: @@ -151,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); @@ -225,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; }