ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/SimSetup.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/SimSetup.cpp (file contents):
Revision 1163 by gezelter, Wed May 12 14:30:12 2004 UTC vs.
Revision 1174 by gezelter, Wed May 12 20:54:10 2004 UTC

# Line 185 | Line 185 | void SimSetup::makeMolecules(void){
185    RigidBodyStamp* currentRigidBody;
186    CutoffGroupStamp* currentCutoffGroup;
187    CutoffGroup* myCutoffGroup;
188 <  
188 >  int nCutoffGroups;// number of cutoff group of a molecule defined in mdl file
189 >  set<int> cutoffAtomSet; //atoms belong to  cutoffgroup defined at mdl file
190 >
191    bond_pair* theBonds;
192    bend_set* theBends;
193    torsion_set* theTorsions;
# Line 218 | Line 220 | void SimSetup::makeMolecules(void){
220        molInfo.nBends = comp_stamps[stampID]->getNBends();
221        molInfo.nTorsions = comp_stamps[stampID]->getNTorsions();
222        molInfo.nRigidBodies = comp_stamps[stampID]->getNRigidBodies();
223 <      molInfo.nCutoffGroups = comp_stamps[stampID]->getNCutoffGroups();
223 >
224 >      nCutoffGroups = comp_stamps[stampID]->getNCutoffGroups();
225        
226        molInfo.myAtoms = &(info[k].atoms[atomOffset]);
227  
228        if (molInfo.nBonds > 0)
229 <        molInfo.myBonds = new (Bond *) [molInfo.nBonds];
229 >        molInfo.myBonds = new Bond*[molInfo.nBonds];
230        else
231          molInfo.myBonds = NULL;
232  
233        if (molInfo.nBends > 0)
234 <        molInfo.myBends = new (Bend *) [molInfo.nBends];
234 >        molInfo.myBends = new Bend*[molInfo.nBends];
235        else
236          molInfo.myBends = NULL;
237  
238        if (molInfo.nTorsions > 0)
239 <        molInfo.myTorsions = new (Torsion *) [molInfo.nTorsions];
239 >        molInfo.myTorsions = new Torsion *[molInfo.nTorsions];
240        else
241          molInfo.myTorsions = NULL;
242  
# Line 485 | Line 488 | void SimSetup::makeMolecules(void){
488        
489  
490        //create cutoff group for molecule
491 +
492 +      cutoffAtomSet.clear();
493        molInfo.myCutoffGroups.clear();
494 <      for (j = 0; j < molInfo.nCutoffGroups; j++){
494 >      
495 >      for (j = 0; j < nCutoffGroups; j++){
496  
497          currentCutoffGroup = comp_stamps[stampID]->getCutoffGroup(j);
498          nMembers = currentCutoffGroup->getNMembers();
# Line 500 | Line 506 | void SimSetup::makeMolecules(void){
506  
507            // tempI is atom numbering on local processor
508            tempI = molI + atomOffset;
509 <
509 >          
510            myCutoffGroup->addAtom(info[k].atoms[tempI]);          
511 +
512 +          cutoffAtomSet.insert(tempI);
513          }
514  
515          molInfo.myCutoffGroups.push_back(myCutoffGroup);
516        }//end for (j = 0; j < molInfo.nCutoffGroups; j++)
517 <      
517 >
518 >      //creat a cutoff group for every atom  in current molecule which does not belong to cutoffgroup defined at mdl file
519 >
520 >      for(j = 0; j < molInfo.nAtoms; j++){
521 >
522 >        if(cutoffAtomSet.find(molInfo.myAtoms[j]->getIndex()) == cutoffAtomSet.end()){
523 >          myCutoffGroup = new CutoffGroup();
524 >          myCutoffGroup->addAtom(molInfo.myAtoms[j]);
525 >          molInfo.myCutoffGroups.push_back(myCutoffGroup);
526 >        }
527 >          
528 >      }
529  
530 +              
531  
532 +
533        // After this is all set up, scan through the atoms to
534        // see if they can be added to the integrableObjects:
535  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines