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 420 by mmeineke, Thu Mar 27 17:32:03 2003 UTC vs.
Revision 422 by mmeineke, Thu Mar 27 19:21:42 2003 UTC

# Line 248 | Line 248 | void SimSetup::createSim( void ){
248    
249    int localMol, allMol;
250    int local_atoms, local_bonds, local_bends, local_torsions, local_SRI;
251 +
252 +  int* mol2proc = mpiSim->getMolToProcMap();
253 +  int* molCompType = mpiSim->getMolComponentType();
254    
255    allMol = 0;
256    localMol = 0;
# Line 259 | Line 262 | void SimSetup::createSim( void ){
262  
263      for( j=0; j<components_nmol[i]; j++ ){
264        
265 <      if( mpiSim->getMyMolStart() <= allMol &&
263 <          allMol <= mpiSim->getMyMolEnd() ){
265 >      if( mol2proc[j] == worldRank ){
266          
267          local_atoms +=    comp_stamps[i]->getNAtoms();
268          local_bonds +=    comp_stamps[i]->getNBonds();
# Line 279 | Line 281 | void SimSetup::createSim( void ){
281    if( local_atoms != simnfo->n_atoms ){
282      sprintf( painCave.errMsg,
283               "SimSetup error: mpiSim's localAtom (%d) and SimSetup's"
284 <             " localAtom (%d) are note equal.\n",
284 >             " localAtom (%d) are not equal.\n",
285               simnfo->n_atoms,
286               local_atoms );
287      painCave.isFatal = 1;
# Line 304 | Line 306 | void SimSetup::createSim( void ){
306    Atom::createArrays(simnfo->n_atoms);
307    the_atoms = new Atom*[simnfo->n_atoms];
308    the_molecules = new Molecule[simnfo->n_mol];
309 +  int molIndex;
310 +
311 +  // initialize the molecule's stampID's
312 +
313 + #ifdef IS_MPI
314 +  
315 +
316 +  molIndex = 0;
317 +  for(i=0; i<mpiSim->getTotNmol(); i++){
318 +    
319 +    if(mol2proc[i] == worldRank ){
320 +      the_molecules[molIndex].setStampID( molCompType[i] );
321 +      molIndex++;
322 +    }
323 +  }
324 +
325 + #else // is_mpi
326 +  
327 +  molIndex = 0;
328 +  for(i=0; i<n_components; i++){
329 +    for(j=0; j<components_nmol[i]; j++ ){
330 +      the_molecules[molIndex].setStampID( i );
331 +      molIndex++;
332 +    }
333 +  }
334 +    
335  
336 + #endif // is_mpi
337  
338 +
339    if( simnfo->n_SRI ){
340      Exclude::createArray(simnfo->n_SRI);
341      the_excludes = new Exclude*[simnfo->n_SRI];
# Line 326 | Line 356 | void SimSetup::createSim( void ){
356    // set the arrays into the SimInfo object
357  
358    simnfo->atoms = the_atoms;
329  simnfo->sr_interactions = the_sris;
359    simnfo->nGlobalExcludes = 0;
360    simnfo->excludes = the_excludes;
361  
# Line 383 | Line 412 | void SimSetup::createSim( void ){
412  
413    the_ff->setSimInfo( simnfo );
414  
415 <  makeAtoms();
415 >  makeMolecules();
416    simnfo->identArray = new int[simnfo->n_atoms];
417    for(i=0; i<simnfo->n_atoms; i++){
418      simnfo->identArray[i] = the_atoms[i]->getIdent();
419    }
420    
392  if( tot_bonds ){
393    makeBonds();
394  }
395
396  if( tot_bends ){
397    makeBends();
398  }
399
400  if( tot_torsions ){
401    makeTorsions();
402  }
403
404
421    if (the_globals->getUseRF() ) {
422      simnfo->useReactionField = 1;
423    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines