SSAGES  0.1
A MetaDynamics Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Swarm.h
1 
20 #include "StringMethod.h"
21 #include <fstream>
22 #include <iostream>
23 
24 namespace SSAGES
25 {
27 
32  class Swarm : public StringMethod //Calls Method constructor first, then Swarm constructor
33  {
34  private:
35 
37  std::vector<double> cv_drift_;
38 
40  unsigned int initialize_steps_;
41 
43  unsigned int harvest_length_;
44 
46  unsigned int restrained_steps_;
47 
49  unsigned int number_trajectories_;
50 
52  unsigned int swarm_length_;
53 
55  unsigned int unrestrained_steps_;
56 
58  unsigned int index_;
59 
61  std::vector<Label> traj_atomids_;
62 
64  void StringUpdate();
65 
67  bool CVInitialized(const CVList& cvs);
68 
71 
74 
77 
80 
81  public:
82 
84 
98  Swarm(const MPI_Comm& world,
99  const MPI_Comm& comm,
100  const std::vector<double>& centers,
101  unsigned int maxiterations,
102  const std::vector<double> cvspring,
103  unsigned int frequency,
104  unsigned int InitialSteps,
105  unsigned int HarvestLength,
106  unsigned int NumberTrajectories,
107  unsigned int SwarmLength) :
108  StringMethod(world, comm, centers, maxiterations, cvspring, frequency),
109  cv_drift_(),
110  initialize_steps_(InitialSteps),
111  harvest_length_(HarvestLength),
112  number_trajectories_(NumberTrajectories),
113  swarm_length_(SwarmLength)
114  {
115  cv_drift_.resize(centers_.size(), 0);
119  //Additional initializing
120 
121  index_ = 0;
124  sampling_started = false;
125  snapshot_stored = false;
126 
127  iterator_ = 0; //Override default StringMethod.h initializing
128  }
129 
131  void PostIntegration(Snapshot* snapshot, const class CVManager& cvmanager) override;
132 
135  {
136  }
137  };
138 }
139 
Collective variable manager.
Definition: CVManager.h:40
unsigned int initialize_steps_
Total number of MD steps for initialization for one iteration.
Definition: Swarm.h:40
bool original_initialized
Flag for whether a system was initialized before it checked whether other systems were...
Definition: Swarm.h:79
bool CVInitialized(const CVList &cvs)
Helper function check if CVs are initialized correctly.
Definition: Swarm.cpp:35
std::vector< CollectiveVariable * > CVList
List of Collective Variables.
Definition: types.h:51
String base class for FTS, Swarm, and elastic band.
Definition: StringMethod.h:38
std::vector< std::vector< double > > prev_velocities_
Store velocities for starting trajectories.
Definition: StringMethod.h:88
int initialized
Flag for whether a system is initialized at a given iteration.
Definition: Swarm.h:76
~Swarm()
Destructor.
Definition: Swarm.h:134
Class containing a snapshot of the current simulation in time.
Definition: Snapshot.h:43
std::vector< double > centers_
CV starting location values.
Definition: StringMethod.h:43
std::vector< double > cv_drift_
Drift of CVs for one iteration.
Definition: Swarm.h:37
unsigned int swarm_length_
Length of unrestrained trajectories.
Definition: Swarm.h:52
bool sampling_started
Flag for determing whether to perform initialization or not.
Definition: Swarm.h:70
Swarm of Trajectories String Method.
Definition: Swarm.h:32
void PostIntegration(Snapshot *snapshot, const class CVManager &cvmanager) override
Post-integration hook.
Definition: Swarm.cpp:60
Swarm(const MPI_Comm &world, const MPI_Comm &comm, const std::vector< double > &centers, unsigned int maxiterations, const std::vector< double > cvspring, unsigned int frequency, unsigned int InitialSteps, unsigned int HarvestLength, unsigned int NumberTrajectories, unsigned int SwarmLength)
Constructor.
Definition: Swarm.h:98
bool snapshot_stored
Flag for whether a snapshot was stored in the umbrella sampling.
Definition: Swarm.h:73
std::vector< std::vector< int > > prev_IDs_
Store atom IDs for starting trajectories.
Definition: StringMethod.h:91
unsigned int number_trajectories_
Number of trajectories per swarm.
Definition: Swarm.h:49
unsigned int harvest_length_
Length to run before harvesting a trajectory for unrestrained sampling.
Definition: Swarm.h:43
unsigned int restrained_steps_
Total number of restrained MD steps for one iteration.
Definition: Swarm.h:46
std::vector< Label > traj_atomids_
Store atom IDs for starting trajecotires.
Definition: Swarm.h:61
unsigned int iterator_
The local method iterator.
Definition: StringMethod.h:70
unsigned int unrestrained_steps_
Total number of unrestrained MD steps for one iteration.
Definition: Swarm.h:55
unsigned int index_
For indexing trajectory vectors.
Definition: Swarm.h:58
std::vector< std::vector< double > > prev_positions_
Store positions for starting trajectories.
Definition: StringMethod.h:85
void StringUpdate()
Updates the positions of the string.
Definition: Swarm.cpp:266