--- trunk/OOPSE/libmdtools/SimSetup.cpp 2003/03/27 23:33:40 432 +++ trunk/OOPSE/libmdtools/SimSetup.cpp 2003/04/02 22:19:03 443 @@ -314,6 +314,7 @@ void SimSetup::createSim( void ){ if(mol2proc[i] == worldRank ){ the_molecules[molIndex].setStampID( molCompType[i] ); + the_molecules[molIndex].setMyIndex( molIndex ); molIndex++; } } @@ -324,6 +325,7 @@ void SimSetup::createSim( void ){ for(i=0; in_SRI ){ - - std::cerr << "n_SRI = " << simnfo->n_SRI << "\n"; Exclude::createArray(simnfo->n_SRI); the_excludes = new Exclude*[simnfo->n_SRI]; for( int ex=0; exn_SRI; ex++) the_excludes[ex] = new Exclude(ex); simnfo->globalExcludes = new int; - simnfo->n_exclude = tot_SRI; + simnfo->n_exclude = simnfo->n_SRI; } else{ @@ -783,8 +783,8 @@ void SimSetup::makeMolecules( void ){ theBonds[j].a = currentBond->getA() + atomOffset; theBonds[j].b = currentBond->getB() + atomOffset; - exI = theBonds[i].a; - exJ = theBonds[i].b; + exI = theBonds[j].a; + exJ = theBonds[j].b; // exclude_I must always be the smaller of the pair if( exI > exJ ){ @@ -800,6 +800,7 @@ void SimSetup::makeMolecules( void ){ the_excludes[j+excludeOffset]->setPair( exI, exJ ); #else // isn't MPI + the_excludes[j+excludeOffset]->setPair( (exI+1), (exJ+1) ); #endif //is_mpi } @@ -837,7 +838,7 @@ void SimSetup::makeMolecules( void ){ default: sprintf( painCave.errMsg, - "SimSetup Error: ghostVectorSource was neiter a " + "SimSetup Error: ghostVectorSource was neither a " "double nor an int.\n" "-->Bend[%d] in %s\n", j, comp_stamps[stampID]->getID() ); @@ -931,15 +932,23 @@ void SimSetup::makeMolecules( void ){ the_molecules[i].initialize( info ); + + atomOffset += info.nAtoms; delete[] theBonds; delete[] theBends; delete[] theTorsions; } + +#ifdef IS_MPI + sprintf( checkPointMsg, "all molecules initialized succesfully" ); + MPIcheckPoint(); +#endif // is_mpi // clean up the forcefield the_ff->calcRcut(); the_ff->cleanMe(); + } void SimSetup::initFromBass( void ){