1#ifndef RP_MC_MOVE_MANAGER_H
2#define RP_MC_MOVE_MANAGER_H
11#include <util/param/Manager.h>
12#include <util/containers/DArray.h>
37 template <
int D,
class T>
110 typename T::System& system);
119 using McMoveT =
typename T::McMove;
132 typename T::McSimulator* simulatorPtr_;
137 typename T::System* systemPtr_;
158 template <
int D,
class T>
inline
163 return probabilities_[i];
void outputTimers(std::ostream &out) const
Write timing results to an output stream.
void output() const
Output statistics for all moves.
bool needsCc()
Decide whether any move needs to store cc fields.
double probability(int i) const
Return probability of move i.
virtual void readParameters(std::istream &in)
Read instructions for creating McMove objects.
~McMoveManager()=default
Destructor.
McMoveManager(typename T::McSimulator &simulator, typename T::System &system)
Constructor.
void clearTimers()
Clear timers.
void setup()
Initialize at beginning of system run.
bool needsDc()
Decide whether any move needs to store dc fields.
T::McMove & chooseMove()
Choose an McMove at random, using specified probabilities.
Dynamically allocatable contiguous array template.
virtual Factory< T::McMove > * newDefaultFactory() const
Manager(bool uniqueNames=false)
Class templates for real-valued periodic fields.
PSCF package top-level namespace.
Utility classes for scientific computation.