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

Comparing branches/development/src/brains/SimCreator.cpp (file contents):
Revision 1711 by gezelter, Sat May 19 02:58:35 2012 UTC vs.
Revision 1787 by gezelter, Wed Aug 29 18:13:11 2012 UTC

# Line 56 | Line 56
56   #include "brains/SimCreator.hpp"
57   #include "brains/SimSnapshotManager.hpp"
58   #include "io/DumpReader.hpp"
59 < #include "UseTheForce/ForceFieldFactory.hpp"
59 > #include "brains/ForceField.hpp"
60   #include "utils/simError.h"
61   #include "utils/StringUtils.hpp"
62   #include "math/SeqRandNumGen.hpp"
# Line 256 | Line 256 | namespace OpenMD {
256      int metaDataBlockStart = -1;
257      int metaDataBlockEnd = -1;
258      int i;
259 <    int mdOffset;
259 >    streamoff mdOffset;
260      int mdFileVersion;
261  
262   #ifdef IS_MPI            
# Line 371 | Line 371 | namespace OpenMD {
371                                     metaDataBlockStart + 1);
372      
373      //create the force field
374 <    ForceField * ff = ForceFieldFactory::getInstance()->createForceField(simParams->getForceField());
374 >    ForceField * ff = new ForceField(simParams->getForceField());
375  
376      if (ff == NULL) {
377        sprintf(painCave.errMsg,
# Line 425 | Line 425 | namespace OpenMD {
425      //find the storage layout
426  
427      int storageLayout = computeStorageLayout(info);
428
429    cerr << "computed Storage Layout = " << storageLayout << "\n";
428  
429      //allocate memory for DataStorage(circular reference, need to
430      //break it)
# Line 722 | Line 720 | namespace OpenMD {
720        if (storageLayout & DataStorage::dslForce) {
721          storageLayout |= DataStorage::dslTorque;
722        }
725    }
726    if (hasMultipoles) {
727      storageLayout |= DataStorage::dslElectroFrame;
723      }
724      if (hasFixedCharge || hasFluctuatingCharge) {
725        storageLayout |= DataStorage::dslSkippedCharge;
# Line 746 | Line 741 | namespace OpenMD {
741          storageLayout |= DataStorage::dslFlucQForce;
742        }
743      }
744 +    
745 +    // if the user has asked for them, make sure we've got the memory for the
746 +    // objects defined.
747  
748      if (simParams->getOutputParticlePotential()) {
749        storageLayout |= DataStorage::dslParticlePot;
750      }
751  
752 +    if (simParams->havePrintHeatFlux()) {
753 +      if (simParams->getPrintHeatFlux()) {
754 +        storageLayout |= DataStorage::dslParticlePot;
755 +      }
756 +    }
757 +
758 +    if (simParams->getOutputElectricField()) {
759 +      storageLayout |= DataStorage::dslElectricField;
760 +    }
761 +
762 +    if (simParams->getOutputFluctuatingCharges()) {
763 +      storageLayout |= DataStorage::dslFlucQPosition;
764 +      storageLayout |= DataStorage::dslFlucQVelocity;
765 +      storageLayout |= DataStorage::dslFlucQForce;
766 +    }
767 +
768      return storageLayout;
769    }
770  
# Line 770 | Line 784 | namespace OpenMD {
784      int nGlobalAtoms = info->getNGlobalAtoms();
785      
786      beginAtomIndex = 0;
787 <    beginRigidBodyIndex = 0;
787 >    //rigidbody's index begins right after atom's
788 >    beginRigidBodyIndex = info->getNGlobalAtoms();
789      beginCutoffGroupIndex = 0;
790  
791      for(int i = 0; i < info->getNGlobalMolecules(); i++) {
# Line 888 | Line 903 | namespace OpenMD {
903      for (mol = info->beginMolecule(mi); mol != NULL; mol = info->nextMolecule(mi)) {
904        int myGlobalIndex = mol->getGlobalIndex();
905        int globalIO = startingIOIndexForMol[myGlobalIndex];
906 <      for (StuntDouble* integrableObject = mol->beginIntegrableObject(ioi); integrableObject != NULL;
907 <           integrableObject = mol->nextIntegrableObject(ioi)) {
908 <        integrableObject->setGlobalIntegrableObjectIndex(globalIO);
909 <        IOIndexToIntegrableObject[globalIO] = integrableObject;
906 >      for (StuntDouble* sd = mol->beginIntegrableObject(ioi); sd != NULL;
907 >           sd = mol->nextIntegrableObject(ioi)) {
908 >        sd->setGlobalIntegrableObjectIndex(globalIO);
909 >        IOIndexToIntegrableObject[globalIO] = sd;
910          globalIO++;
911        }
912      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines