# | 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 | + | simnfo->molMembershipArray = new int[tot_atoms]; |
302 | ||
302 | – | |
303 | #ifdef IS_MPI | |
304 | ||
305 | // divide the molecules among processors here. | |
306 | ||
307 | mpiSim = new mpiSimulation( simnfo ); | |
308 | ||
309 | – | |
310 | – | |
309 | globalIndex = mpiSim->divideLabor(); | |
310 | ||
311 | // set up the local variables | |
# | Line 324 | Line 322 | void SimSetup::createSim( void ){ | |
322 | local_bonds = 0; | |
323 | local_bends = 0; | |
324 | local_torsions = 0; | |
325 | + | globalAtomIndex = 0; |
326 | + | |
327 | + | |
328 | for( i=0; i<n_components; i++ ){ | |
329 | ||
330 | for( j=0; j<components_nmol[i]; j++ ){ | |
331 | ||
332 | < | if( mol2proc[j] == worldRank ){ |
332 | > | if( mol2proc[allMol] == worldRank ){ |
333 | ||
334 | local_atoms += comp_stamps[i]->getNAtoms(); | |
335 | local_bonds += comp_stamps[i]->getNBonds(); | |
# | Line 336 | Line 337 | void SimSetup::createSim( void ){ | |
337 | local_torsions += comp_stamps[i]->getNTorsions(); | |
338 | localMol++; | |
339 | } | |
340 | < | allMol++; |
340 | > | for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) { |
341 | > | simnfo->molMembershipArray[globalAtomIndex] = allMol; |
342 | > | globalAtomIndex++; |
343 | > | } |
344 | > | |
345 | > | allMol++; |
346 | } | |
347 | } | |
348 | local_SRI = local_bonds + local_bends + local_torsions; | |
349 | ||
350 | + | if (worldRank != 0) { |
351 | + | for (i =0; i < tot_atoms; i++){ |
352 | + | std::cerr << "i = " << i << " molMembershipArray[i] = " << simnfo->molMembershipArray[i] << "\n"; |
353 | + | } |
354 | + | } |
355 | ||
356 | simnfo->n_atoms = mpiSim->getMyNlocal(); | |
357 | ||
# | Line 385 | Line 396 | void SimSetup::createSim( void ){ | |
396 | if(mol2proc[i] == worldRank ){ | |
397 | the_molecules[molIndex].setStampID( molCompType[i] ); | |
398 | the_molecules[molIndex].setMyIndex( molIndex ); | |
399 | + | the_molecules[molIndex].setGlobalIndex( i ); |
400 | molIndex++; | |
401 | } | |
402 | } | |
# | Line 392 | Line 404 | void SimSetup::createSim( void ){ | |
404 | #else // is_mpi | |
405 | ||
406 | molIndex = 0; | |
407 | + | globalAtomIndex = 0; |
408 | for(i=0; i<n_components; i++){ | |
409 | for(j=0; j<components_nmol[i]; j++ ){ | |
410 | the_molecules[molIndex].setStampID( i ); | |
411 | the_molecules[molIndex].setMyIndex( molIndex ); | |
412 | + | the_molecules[molIndex].setGlobalIndex( molIndex ); |
413 | + | for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) { |
414 | + | simnfo->molMembershipArray[globalAtomIndex] = molIndex; |
415 | + | globalAtomIndex++; |
416 | + | } |
417 | molIndex++; | |
418 | } | |
419 | } | |
# | Line 728 | Line 746 | void SimSetup::createSim( void ){ | |
746 | ||
747 | if( !strcmp( force_field, "TraPPE_Ex" ) ){ | |
748 | new Symplectic(simnfo, the_ff, the_extendedsystem); | |
731 | – | std::cerr << "called new Symplecic\n"; |
732 | – | fprintf( stderr, "called new Symplectic. stderr\n" ); |
749 | } | |
750 | else if( !strcmp( force_field, "LJ" ) ){ | |
751 | new Verlet( *simnfo, the_ff, the_extendedsystem ); | |
736 | – | std::cerr << "called new Verlet\n"; |
737 | – | fprintf( stderr, "called new Verlet. stderr\n" ); |
752 | } | |
753 | else { | |
754 | std::cerr << "I'm a bug.\n"; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |