Simpatico  v1.10
McAnalyzerFactory.h
1 #ifndef MCMD_MC_ANALYZER_FACTORY_H
2 #define MCMD_MC_ANALYZER_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> // base class template
12 #include <mcMd/analyzers/Analyzer.h> // base class template parameter
13 #include <mcMd/analyzers/system/SystemAnalyzerFactory.h> // member
14 
15 namespace McMd
16 {
17 
18  using namespace Util;
19 
20  class McSimulation;
21  class McSystem;
22 
29  class McAnalyzerFactory : public Factory<Analyzer>
30  {
31 
32  public:
33 
40  McAnalyzerFactory(McSimulation& simulation, McSystem& system);
41 
48  virtual Analyzer* factory(const std::string& className) const;
49 
50  protected:
51 
55  McSystem& system() const
56  { return *systemPtr_; }
57 
62  { return *simulationPtr_; }
63 
64  private:
65 
66  // Factory for analyzers for any System
67  SystemAnalyzerFactory systemFactory_;
68 
69  // Pointer to parent Simulation
70  McSimulation *simulationPtr_;
71 
72  // Pointer to parent System
73  McSystem *systemPtr_;
74 
75  };
76 
77 }
78 #endif
A System for use in a Markov chain Monte Carlo simulation.
Definition: McSystem.h:52
A Monte-Carlo simulation of one McSystem.
Definition: McSimulation.h:32
Abstract base for periodic output and/or analysis actions.
AnalyzerFactory for any System (for mc or md).
McSystem & system() const
Return reference to parent McSystem.
Utility classes for scientific computation.
Definition: accumulators.mod:1
McSimulation & simulation() const
Return reference to parent McSimulation.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
AnalyzerFactory for an McSimulation.
Factory template.
Definition: Factory.h:32