# | Line 67 | Line 67 | void SimSetup::createSim( void ){ | |
---|---|---|
67 | MakeStamps *the_stamps; | |
68 | Globals* the_globals; | |
69 | ExtendedSystem* the_extendedsystem; | |
70 | < | int i, j; |
70 | > | int i, j, k, globalAtomIndex; |
71 | ||
72 | // get the stamps and globals; | |
73 | the_stamps = stamps; | |
# | Line 298 | Line 298 | void SimSetup::createSim( void ){ | |
298 | simnfo->n_torsions = tot_torsions; | |
299 | simnfo->n_SRI = tot_SRI; | |
300 | simnfo->n_mol = tot_nmol; | |
301 | – | |
301 | ||
302 | + | simnfo->molMembershipArray = new int[tot_atoms]; |
303 | + | |
304 | #ifdef IS_MPI | |
305 | ||
306 | // divide the molecules among processors here. | |
307 | ||
308 | mpiSim = new mpiSimulation( simnfo ); | |
309 | ||
309 | – | |
310 | – | |
310 | globalIndex = mpiSim->divideLabor(); | |
311 | ||
312 | // set up the local variables | |
# | Line 324 | Line 323 | void SimSetup::createSim( void ){ | |
323 | local_bonds = 0; | |
324 | local_bends = 0; | |
325 | local_torsions = 0; | |
326 | + | globalAtomIndex = 0; |
327 | + | |
328 | + | |
329 | for( i=0; i<n_components; i++ ){ | |
330 | ||
331 | for( j=0; j<components_nmol[i]; j++ ){ | |
332 | ||
333 | < | if( mol2proc[j] == worldRank ){ |
333 | > | if( mol2proc[allMol] == worldRank ){ |
334 | ||
335 | local_atoms += comp_stamps[i]->getNAtoms(); | |
336 | local_bonds += comp_stamps[i]->getNBonds(); | |
# | Line 336 | Line 338 | void SimSetup::createSim( void ){ | |
338 | local_torsions += comp_stamps[i]->getNTorsions(); | |
339 | localMol++; | |
340 | } | |
341 | < | allMol++; |
341 | > | for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) { |
342 | > | simnfo->molMembershipArray[globalAtomIndex] = allMol; |
343 | > | globalAtomIndex++; |
344 | > | } |
345 | > | |
346 | > | allMol++; |
347 | } | |
348 | } | |
349 | local_SRI = local_bonds + local_bends + local_torsions; | |
350 | ||
344 | – | |
351 | simnfo->n_atoms = mpiSim->getMyNlocal(); | |
352 | ||
353 | if( local_atoms != simnfo->n_atoms ){ | |
# | Line 385 | Line 391 | void SimSetup::createSim( void ){ | |
391 | if(mol2proc[i] == worldRank ){ | |
392 | the_molecules[molIndex].setStampID( molCompType[i] ); | |
393 | the_molecules[molIndex].setMyIndex( molIndex ); | |
394 | + | the_molecules[molIndex].setGlobalIndex( i ); |
395 | molIndex++; | |
396 | } | |
397 | } | |
# | Line 392 | Line 399 | void SimSetup::createSim( void ){ | |
399 | #else // is_mpi | |
400 | ||
401 | molIndex = 0; | |
402 | + | globalAtomIndex = 0; |
403 | for(i=0; i<n_components; i++){ | |
404 | for(j=0; j<components_nmol[i]; j++ ){ | |
405 | the_molecules[molIndex].setStampID( i ); | |
406 | the_molecules[molIndex].setMyIndex( molIndex ); | |
407 | + | the_molecules[molIndex].setGlobalIndex( molIndex ); |
408 | + | for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) { |
409 | + | simnfo->molMembershipArray[globalAtomIndex] = molIndex; |
410 | + | globalAtomIndex++; |
411 | + | } |
412 | molIndex++; | |
413 | } | |
414 | } | |
# | Line 721 | Line 734 | void SimSetup::createSim( void ){ | |
734 | if( the_globals->haveTempSet() ) simnfo->setTemp = the_globals->getTempSet(); | |
735 | ||
736 | ||
737 | < | // // make the longe range forces and the integrator |
737 | > | // make the integrator |
738 | ||
726 | – | // new AllLong( simnfo ); |
739 | ||
740 | < | |
729 | < | if( !strcmp( force_field, "TraPPE_Ex" ) ){ |
740 | > | if( !strcmp( ensemble, "TraPPE_Ex" ) ){ |
741 | new Symplectic(simnfo, the_ff, the_extendedsystem); | |
731 | – | std::cerr << "called new Symplecic\n"; |
732 | – | fprintf( stderr, "called new Symplectic. stderr\n" ); |
742 | } | |
743 | else if( !strcmp( force_field, "LJ" ) ){ | |
744 | new Verlet( *simnfo, the_ff, the_extendedsystem ); | |
736 | – | std::cerr << "called new Verlet\n"; |
737 | – | fprintf( stderr, "called new Verlet. stderr\n" ); |
745 | } | |
746 | < | else { |
740 | < | std::cerr << "I'm a bug.\n"; |
741 | < | fprintf( stderr, "Ima bug. stderr %s\n", force_field); |
742 | < | } |
746 | > | |
747 | #ifdef IS_MPI | |
748 | mpiSim->mpiRefresh(); | |
749 | #endif |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |