Simpatico  v1.10
McMoveFactory.h
1 #ifndef MCMD_MC_MOVE_FACTORY_H
2 #define MCMD_MC_MOVE_FACTORY_H
3 
4 /*
5 * Simpatico - Simulation Package for Polymeric and Molecular Liquids
6 *
7 * Copyright 2010 - 2017, The Regents of the University of Minnesota
8 * Distributed under the terms of the GNU General Public License.
9 */
10 
11 #include <util/param/Factory.h>
12 #include <mcMd/mcMoves/McMove.h>
13 
14 namespace McMd
15 {
16 
17  using namespace Util;
18 
19  class McSimulation;
20  class McSystem;
21 
28  class McMoveFactory : public Factory<McMove>
29  {
30 
31  public:
32 
39  McMoveFactory(McSimulation& simulation, McSystem& system)
40  : simulationPtr_(&simulation),
41  systemPtr_(&system)
42  {}
43 
50  virtual McMove* factory(const std::string& className) const;
51 
52  protected:
53 
58  { return *simulationPtr_; }
59 
63  McSystem& system() const
64  { return *systemPtr_; }
65 
66  private:
67 
68  McSimulation *simulationPtr_;
69  McSystem *systemPtr_;
70 
71  };
72 
73 }
74 #endif
A System for use in a Markov chain Monte Carlo simulation.
Definition: McSystem.h:52
McMove is an abstract base class for Monte Carlo moves.
Definition: McMove.h:31
A Monte-Carlo simulation of one McSystem.
Definition: McSimulation.h:32
Utility classes for scientific computation.
Definition: accumulators.mod:1
McMoveFactory(McSimulation &simulation, McSystem &system)
Constructor.
Definition: McMoveFactory.h:39
McMoveFactory for an McSimulation.
Definition: McMoveFactory.h:28
McSimulation & simulation() const
Return reference to parent Simulation.
Definition: McMoveFactory.h:57
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
Factory template.
Definition: Factory.h:32
McSystem & system() const
Return reference to parent McSystem.
Definition: McMoveFactory.h:63