# | Line 279 | Line 279 | Globals* SimCreator::parseFile(const std::string mdFil | |
---|---|---|
279 | //create SimInfo | |
280 | SimInfo * info = new SimInfo(ff, simParams); | |
281 | ||
282 | < | //gather parameters (SimCreator only retrieves part of the parameters) |
282 | > | //gather parameters (SimCreator only retrieves part of the |
283 | > | //parameters) |
284 | gatherParameters(info, mdFileName); | |
285 | ||
286 | //divide the molecules and determine the global index of molecules | |
# | Line 291 | Line 292 | Globals* SimCreator::parseFile(const std::string mdFil | |
292 | createMolecules(info); | |
293 | ||
294 | ||
295 | < | //allocate memory for DataStorage(circular reference, need to break it) |
295 | > | //allocate memory for DataStorage(circular reference, need to |
296 | > | //break it) |
297 | info->setSnapshotManager(new SimSnapshotManager(info)); | |
298 | ||
299 | < | //set the global index of atoms, rigidbodies and cutoffgroups (only need to be set once, the |
300 | < | //global index will never change again). Local indices of atoms and rigidbodies are already set by |
301 | < | //MoleculeCreator class which actually delegates the responsibility to LocalIndexManager. |
299 | > | //set the global index of atoms, rigidbodies and cutoffgroups |
300 | > | //(only need to be set once, the global index will never change |
301 | > | //again). Local indices of atoms and rigidbodies are already set |
302 | > | //by MoleculeCreator class which actually delegates the |
303 | > | //responsibility to LocalIndexManager. |
304 | setGlobalIndex(info); | |
305 | ||
306 | < | //Alought addExculdePairs is called inside SimInfo's addMolecule method, at that point |
307 | < | //atoms don't have the global index yet (their global index are all initialized to -1). |
308 | < | //Therefore we have to call addExcludePairs explicitly here. A way to work around is that |
309 | < | //we can determine the beginning global indices of atoms before they get created. |
306 | > | //Although addExcludePairs is called inside SimInfo's addMolecule |
307 | > | //method, at that point atoms don't have the global index yet |
308 | > | //(their global index are all initialized to -1). Therefore we |
309 | > | //have to call addExcludePairs explicitly here. A way to work |
310 | > | //around is that we can determine the beginning global indices of |
311 | > | //atoms before they get created. |
312 | SimInfo::MoleculeIterator mi; | |
313 | Molecule* mol; | |
314 | for (mol= info->beginMolecule(mi); mol != NULL; mol = info->nextMolecule(mi)) { | |
# | Line 346 | Line 352 | Globals* SimCreator::parseFile(const std::string mdFil | |
352 | ||
353 | #ifdef IS_MPI | |
354 | void SimCreator::divideMolecules(SimInfo *info) { | |
355 | < | double numerator; |
356 | < | double denominator; |
357 | < | double precast; |
358 | < | double x; |
359 | < | double y; |
360 | < | double a; |
355 | > | RealType numerator; |
356 | > | RealType denominator; |
357 | > | RealType precast; |
358 | > | RealType x; |
359 | > | RealType y; |
360 | > | RealType a; |
361 | int old_atoms; | |
362 | int add_atoms; | |
363 | int new_atoms; | |
# | Line 463 | Line 469 | Globals* SimCreator::parseFile(const std::string mdFil | |
469 | // Pacc(x) = exp(- a * x) | |
470 | // where a = penalty / (average atoms per molecule) | |
471 | ||
472 | < | x = (double)(new_atoms - nTarget); |
472 | > | x = (RealType)(new_atoms - nTarget); |
473 | y = myRandom->rand(); | |
474 | ||
475 | if (y < exp(- a * x)) { |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |