| 61 |
|
#include "UseTheForce/ForceField.hpp" |
| 62 |
|
#include "utils/PropertyMap.hpp" |
| 63 |
|
#include "utils/LocalIndexManager.hpp" |
| 64 |
< |
#include "selection/SelectionManager.hpp" |
| 64 |
> |
|
| 65 |
|
//another nonsense macro declaration |
| 66 |
|
#define __C |
| 67 |
|
#include "brains/fSimulation.h" |
| 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 |
| 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 |
– |
} |
| 268 |
– |
|
| 259 |
|
/** main driver function to interact with fortran during the initialization and molecule migration */ |
| 260 |
|
void update(); |
| 261 |
|
|
| 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 |
| 408 |
|
void removeExcludePairs(Molecule* mol); |
| 409 |
|
|
| 410 |
|
|
| 411 |
< |
SelectionManager* getSelectionManager() { |
| 412 |
< |
return selectMan_; |
| 415 |
< |
} |
| 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 |
|
|
| 421 |
– |
|
| 422 |
– |
/** Returns the unique atom types of local processor in an array */ |
| 423 |
– |
std::set<AtomType*> getUniqueAtomTypes(); |
| 424 |
– |
|
| 420 |
|
/** fill up the simtype struct*/ |
| 421 |
|
void setupSimType(); |
| 422 |
|
|
| 490 |
|
PropertyMap properties_; /**< Generic Property */ |
| 491 |
|
SnapshotManager* sman_; /**< SnapshotManager */ |
| 492 |
|
|
| 498 |
– |
int seed_; /**< seed for random number generator */ |
| 499 |
– |
|
| 493 |
|
/** |
| 494 |
|
* The reason to have a local index manager is that when molecule is migrating to other processors, |
| 495 |
|
* the atoms and the rigid-bodies will release their local indices to LocalIndexManager. Combining the |
| 502 |
|
std::string finalConfigFileName_; |
| 503 |
|
std::string dumpFileName_; |
| 504 |
|
std::string statFileName_; |
| 505 |
< |
|
| 505 |
> |
std::string restFileName_; |
| 506 |
> |
|
| 507 |
|
double rcut_; /**< cutoff radius*/ |
| 508 |
|
double rsw_; /**< radius of switching function*/ |
| 509 |
|
|
| 510 |
|
bool fortranInitialized_; /**< flag indicate whether fortran side is initialized */ |
| 511 |
|
|
| 518 |
– |
SelectionManager* selectMan_; |
| 512 |
|
#ifdef IS_MPI |
| 513 |
|
//in Parallel version, we need MolToProc |
| 514 |
|
public: |