ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/brains/BlockSnapshotManager.cpp
(Generate patch)

Comparing trunk/src/brains/BlockSnapshotManager.cpp (file contents):
Revision 1963 by gezelter, Thu Jan 16 15:15:17 2014 UTC vs.
Revision 1965 by gezelter, Fri Jan 24 13:53:41 2014 UTC

# Line 67 | Line 67 | namespace OpenMD {
67        // RealType avaliablePhysMem = physMem - rssMem;
68      
69        int bytesPerStuntDouble = DataStorage::getBytesPerStuntDouble(storageLayout);
70 <      int bytesPerFrame = (nRigidBodies_ + nAtoms_) * bytesPerStuntDouble;
70 >      int bytesPerCutoffGroup = DataStorage::getBytesPerStuntDouble(DataStorage::dslPosition);
71 >      int bytesPerFrame = (nRigidBodies_ + nAtoms_) * bytesPerStuntDouble
72 >        + nCutoffGroups_ * bytesPerCutoffGroup;
73  
74        // total number of frames that can fit in memory
75        //RealType frameCapacity = avaliablePhysMem / bytesPerFrame;
# Line 102 | Line 104 | namespace OpenMD {
104        //std::cout << "Memory available for OpenMD:\t" << (unsigned long)avaliablePhysMem << " bytes" <<std::endl;
105        std::cout << "Memory requested for OpenMD:\t" << (unsigned long)memSize_ << " bytes" <<std::endl;
106        std::cout << "      Bytes per StuntDouble:\t" << (unsigned long)bytesPerStuntDouble <<std::endl;
107 +      std::cout << "     Bytes per Cutoff Group:\t" << (unsigned long)bytesPerCutoffGroup <<std::endl;
108        std::cout << "            Bytes per Frame:\t" << (unsigned long)bytesPerFrame <<std::endl;
109        std::cout << "             Frame Capacity:\t" << (unsigned long)frameCapacity <<std::endl;
110        std::cout << "       Frames in trajectory:\t" << (unsigned long)nframes_ <<std::endl;
# Line 178 | Line 181 | namespace OpenMD {
181          //in case, unloadBlock called multiple times
182          activeRefCount_[i - activeBlocks_.begin()]  = 0;
183        }
184 +
185 +      if (activeRefCount_[i-activeBlocks_.begin()] == 0) {
186 +        internalUnload(block);
187 +      }
188          
189        unloadSuccess = true;
190      } else {
# Line 201 | Line 208 | namespace OpenMD {
208    }
209  
210    void BlockSnapshotManager::internalUnload(int block) {
211 +    std::cerr << "called internal unload for block "<< block << "\n";
212      for (int i = blocks_[block].first; i < blocks_[block].second; ++i) {
213        delete snapshots_[i];
214        snapshots_[i] = NULL;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines