# | Line 239 | Line 239 | void SimSetup::createSim( void ){ | |
---|---|---|
239 | ||
240 | ||
241 | globalIndex = mpiSim->divideLabor(); | |
242 | – | |
243 | – | |
242 | ||
243 | // set up the local variables | |
244 | ||
# | Line 316 | Line 314 | void SimSetup::createSim( void ){ | |
314 | ||
315 | if(mol2proc[i] == worldRank ){ | |
316 | the_molecules[molIndex].setStampID( molCompType[i] ); | |
317 | + | the_molecules[molIndex].setMyIndex( molIndex ); |
318 | molIndex++; | |
319 | } | |
320 | } | |
# | Line 326 | Line 325 | void SimSetup::createSim( void ){ | |
325 | for(i=0; i<n_components; i++){ | |
326 | for(j=0; j<components_nmol[i]; j++ ){ | |
327 | the_molecules[molIndex].setStampID( i ); | |
328 | + | the_molecules[molIndex].setMyIndex( molIndex ); |
329 | molIndex++; | |
330 | } | |
331 | } | |
# | Line 335 | Line 335 | void SimSetup::createSim( void ){ | |
335 | ||
336 | ||
337 | if( simnfo->n_SRI ){ | |
338 | + | |
339 | + | std::cerr << "n_SRI = " << simnfo->n_SRI << "\n"; |
340 | + | |
341 | Exclude::createArray(simnfo->n_SRI); | |
342 | the_excludes = new Exclude*[simnfo->n_SRI]; | |
343 | + | for( int ex=0; ex<simnfo->n_SRI; ex++) the_excludes[ex] = new Exclude(ex); |
344 | simnfo->globalExcludes = new int; | |
345 | < | simnfo->n_exclude = tot_SRI; |
345 | > | simnfo->n_exclude = simnfo->n_SRI; |
346 | } | |
347 | else{ | |
348 | ||
# | Line 656 | Line 660 | void SimSetup::createSim( void ){ | |
660 | if( !strcmp( force_field, "TraPPE_Ex" ) ) new Symplectic( simnfo, the_ff ); | |
661 | if( !strcmp( force_field, "LJ" ) ) new Verlet( *simnfo, the_ff ); | |
662 | ||
663 | < | |
663 | > | #ifdef IS_MPI |
664 | > | mpiSim->mpiRefresh(); |
665 | > | #endif |
666 | ||
667 | // initialize the Fortran | |
668 | < | |
668 | > | |
669 | > | |
670 | simnfo->refreshSim(); | |
671 | ||
672 | if( !strcmp( simnfo->mixingRule, "standard") ){ | |
# | Line 778 | Line 785 | void SimSetup::makeMolecules( void ){ | |
785 | theBonds[j].a = currentBond->getA() + atomOffset; | |
786 | theBonds[j].b = currentBond->getB() + atomOffset; | |
787 | ||
788 | < | exI = theBonds[i].a; |
789 | < | exJ = theBonds[i].b; |
788 | > | exI = theBonds[j].a; |
789 | > | exJ = theBonds[j].b; |
790 | ||
791 | // exclude_I must always be the smaller of the pair | |
792 | if( exI > exJ ){ | |
# | Line 795 | Line 802 | void SimSetup::makeMolecules( void ){ | |
802 | ||
803 | the_excludes[j+excludeOffset]->setPair( exI, exJ ); | |
804 | #else // isn't MPI | |
805 | + | |
806 | the_excludes[j+excludeOffset]->setPair( (exI+1), (exJ+1) ); | |
807 | #endif //is_mpi | |
808 | } | |
# | Line 832 | Line 840 | void SimSetup::makeMolecules( void ){ | |
840 | ||
841 | default: | |
842 | sprintf( painCave.errMsg, | |
843 | < | "SimSetup Error: ghostVectorSource was neiter a " |
843 | > | "SimSetup Error: ghostVectorSource was neither a " |
844 | "double nor an int.\n" | |
845 | "-->Bend[%d] in %s\n", | |
846 | j, comp_stamps[stampID]->getID() ); | |
# | Line 926 | Line 934 | void SimSetup::makeMolecules( void ){ | |
934 | ||
935 | ||
936 | the_molecules[i].initialize( info ); | |
937 | + | |
938 | + | |
939 | atomOffset += info.nAtoms; | |
940 | delete[] theBonds; | |
941 | delete[] theBends; | |
942 | delete[] theTorsions; | |
943 | } | |
944 | ||
945 | + | #ifdef IS_MPI |
946 | + | sprintf( checkPointMsg, "all molecules initialized succesfully" ); |
947 | + | MPIcheckPoint(); |
948 | + | #endif // is_mpi |
949 | + | |
950 | // clean up the forcefield | |
951 | the_ff->calcRcut(); | |
952 | the_ff->cleanMe(); | |
953 | + | |
954 | } | |
955 | ||
956 | void SimSetup::initFromBass( void ){ |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |