| 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: |