71 |
|
//forward decalration |
72 |
|
class SnapshotManager; |
73 |
|
class Molecule; |
74 |
< |
|
74 |
> |
class SelectionManager; |
75 |
|
/** |
76 |
|
* @class SimInfo SimInfo.hpp "brains/SimInfo.hpp" |
77 |
|
* @brief As one of the heavy weight class of OOPSE, SimInfo |
94 |
|
* @param simParams |
95 |
|
* @note |
96 |
|
*/ |
97 |
< |
SimInfo(std::vector<std::pair<MoleculeStamp*, int> >& molStampPairs, ForceField* ff, Globals* simParams); |
97 |
> |
SimInfo(MakeStamps* stamps, std::vector<std::pair<MoleculeStamp*, int> >& molStampPairs, ForceField* ff, Globals* simParams); |
98 |
|
virtual ~SimInfo(); |
99 |
|
|
100 |
|
/** |
255 |
|
|
256 |
|
/** Returns the center of the mass of the whole system.*/ |
257 |
|
Vector3d getCom(); |
258 |
– |
|
259 |
– |
/** Returns the seed (used for random number generator) */ |
260 |
– |
int getSeed() { |
261 |
– |
return seed_; |
262 |
– |
} |
263 |
– |
|
264 |
– |
/** Sets the seed*/ |
265 |
– |
void setSeed(int seed) { |
266 |
– |
seed_ = seed; |
267 |
– |
} |
258 |
|
|
259 |
|
/** main driver function to interact with fortran during the initialization and molecule migration */ |
260 |
|
void update(); |
324 |
|
void setStatFileName(const std::string& fileName) { |
325 |
|
statFileName_ = fileName; |
326 |
|
} |
327 |
+ |
|
328 |
+ |
std::string getRestFileName() { |
329 |
+ |
return restFileName_; |
330 |
+ |
} |
331 |
+ |
|
332 |
+ |
void setRestFileName(const std::string& fileName) { |
333 |
+ |
restFileName_ = fileName; |
334 |
+ |
} |
335 |
|
|
336 |
|
/** |
337 |
|
* Sets GlobalGroupMembership |
406 |
|
*/ |
407 |
|
|
408 |
|
void removeExcludePairs(Molecule* mol); |
411 |
– |
|
412 |
– |
friend std::ostream& operator <<(std::ostream& o, SimInfo& info); |
413 |
– |
|
414 |
– |
private: |
409 |
|
|
410 |
< |
|
410 |
> |
|
411 |
|
/** Returns the unique atom types of local processor in an array */ |
412 |
|
std::set<AtomType*> getUniqueAtomTypes(); |
413 |
+ |
|
414 |
+ |
friend std::ostream& operator <<(std::ostream& o, SimInfo& info); |
415 |
|
|
416 |
+ |
void getCutoff(double& rcut, double& rsw); |
417 |
+ |
|
418 |
+ |
private: |
419 |
+ |
|
420 |
|
/** fill up the simtype struct*/ |
421 |
|
void setupSimType(); |
422 |
|
|
440 |
|
*/ |
441 |
|
void addMoleculeStamp(MoleculeStamp* molStamp, int nmol); |
442 |
|
|
443 |
+ |
MakeStamps* stamps_; |
444 |
|
ForceField* forceField_; |
445 |
|
Globals* simParams_; |
446 |
|
|
491 |
|
PropertyMap properties_; /**< Generic Property */ |
492 |
|
SnapshotManager* sman_; /**< SnapshotManager */ |
493 |
|
|
493 |
– |
int seed_; /**< seed for random number generator */ |
494 |
– |
|
494 |
|
/** |
495 |
|
* The reason to have a local index manager is that when molecule is migrating to other processors, |
496 |
|
* the atoms and the rigid-bodies will release their local indices to LocalIndexManager. Combining the |
503 |
|
std::string finalConfigFileName_; |
504 |
|
std::string dumpFileName_; |
505 |
|
std::string statFileName_; |
506 |
< |
|
506 |
> |
std::string restFileName_; |
507 |
> |
|
508 |
|
double rcut_; /**< cutoff radius*/ |
509 |
|
double rsw_; /**< radius of switching function*/ |
510 |
|
|
511 |
|
bool fortranInitialized_; /**< flag indicate whether fortran side is initialized */ |
512 |
< |
|
512 |
> |
|
513 |
|
#ifdef IS_MPI |
514 |
|
//in Parallel version, we need MolToProc |
515 |
|
public: |
542 |
|
* once. |
543 |
|
*/ |
544 |
|
std::vector<int> molToProcMap_; |
545 |
+ |
|
546 |
|
#endif |
547 |
|
|
548 |
|
}; |