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 1157 by tim, Tue May 11 20:33:41 2004 UTC vs.
Revision 1167 by tim, Wed May 12 16:38:45 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  
# Line 484 | Line 487 | void SimSetup::makeMolecules(void){
487        }
488        
489  
490 <      //creat cutoff group for molecule
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++)
509      
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  
# Line 564 | Line 585 | void SimSetup::makeMolecules(void){
585    MPIcheckPoint();
586   #endif // is_mpi
587  
567  // clean up the forcefield
568
569  if (!globals->haveRcut()){
570
571    the_ff->calcRcut();
572
573  } else {
574    
575    the_ff->setRcut( globals->getRcut() );
576  }
577
578  the_ff->cleanMe();
588   }
589  
590   void SimSetup::initFromBass(void){
# Line 1016 | Line 1025 | void SimSetup::finalInfoCheck(void){
1025   #endif //is_mpi
1026  
1027      double theRcut, theRsw;
1028 +
1029 +    if (globals->haveRcut()) {
1030 +      theRcut = globals->getRcut();
1031 +
1032 +      if (globals->haveRsw())
1033 +        theRsw = globals->getRsw();
1034 +      else
1035 +        theRsw = theRcut;
1036 +      
1037 +      info[i].setDefaultRcut(theRcut, theRsw);
1038 +
1039 +    } else {
1040 +      
1041 +      the_ff->calcRcut();
1042 +      theRcut = info[i].getRcut();
1043  
1044 +      if (globals->haveRsw())
1045 +        theRsw = globals->getRsw();
1046 +      else
1047 +        theRsw = theRcut;
1048 +      
1049 +      info[i].setDefaultRcut(theRcut, theRsw);
1050 +    }
1051 +
1052      if (globals->getUseRF()){
1053        info[i].useReactionField = 1;
1054 <
1054 >      
1055        if (!globals->haveRcut()){
1056          sprintf(painCave.errMsg,
1057                  "SimSetup Warning: No value was set for the cutoffRadius.\n"
# Line 1096 | Line 1128 | void SimSetup::finalInfoCheck(void){
1128    strcpy(checkPointMsg, "post processing checks out");
1129    MPIcheckPoint();
1130   #endif // is_mpi
1131 +
1132 +  // clean up the forcefield
1133 +  the_ff->cleanMe();
1134   }
1135    
1136   void SimSetup::initSystemCoords(void){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines