1#ifndef RP_MC_SIMULATOR_H
2#define RP_MC_SIMULATOR_H
44 template <
int D,
class T>
86 virtual void analyze(
int min,
int max,
87 std::string classname,
88 std::string filename);
186 using SimulatorT::state;
189 using SimulatorT::iStep_;
190 using SimulatorT::iTotalStep_;
195 using AnalyzerT =
typename T::Analyzer;
200 typename T::McMoveManager* mcMoveManagerPtr_;
205 typename T::AnalyzerManager* analyzerManagerPtr_;
219 void setup(
int nStep);
226 template <
int D,
class T>
inline
230 return *mcMoveManagerPtr_;
234 template <
int D,
class T>
inline
238 return *mcMoveManagerPtr_;
242 template <
int D,
class T>
inline
247 return *analyzerManagerPtr_;
251 template <
int D,
class T>
inline
255 return *analyzerManagerPtr_;
259 template <
int D,
class T>
inline
264 return *trajectoryReaderFactoryPtr_;
268 template <
int D,
class T>
inline
273 template <
int D,
class T>
inline
275 {
return state().needsCc; }
278 template <
int D,
class T>
inline
280 {
return state().needsDc; }
T::AnalyzerManager const & analyzerManager() const
Get the AnalyzerManager (const).
McSimulator(SystemT &system, McSimulatorT &mcSimulator)
Constructor.
virtual void clearTimers()
Clear timers.
Factory< typename T::TrajectoryReader > & trajectoryReaderFactory()
Get the trajectory reader factory by reference.
T::McMoveManager const & mcMoveManager() const
Get the McMoveManager (const).
virtual void readParameters(std::istream &in)
Read parameter file block.
virtual void analyze(int min, int max, std::string classname, std::string filename)
Read and analyze a trajectory file.
bool hasMcMoves() const
Have any MC moves been defined?
bool needsCc()
Does the stored state need to include Cc fields?
bool needsDc()
Does the stored state need to include Dc fields?
typename T::System SystemT
Alias for System class in program-level namespace.
virtual void outputTimers(std::ostream &out) const
Output timing results.
~McSimulator()
Destructor.
typename T::Simulator SimulatorT
Alias for Simulator class in program-level namespace.
typename T::McSimulator McSimulatorT
Alias for McSimulator class in program-level namespace.
void simulate(int nStep)
Perform a field theoretic Monte-Carlo simulation.
File containing preprocessor macros for error handling.
#define UTIL_ASSERT(condition)
Assertion macro suitable for debugging serial or parallel code.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.
Utility classes for scientific computation.