PSCF v1.4.0
StepFactory.h
1#ifndef CPC_STEP_FACTORY_H
2#define CPC_STEP_FACTORY_H
3
4/*
5* PSCF - Polymer Self-Consistent Field
6*
7* Copyright 2015 - 2025, 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 <cpc/fts/step/Step.h>
13
14#include <string>
15
16namespace Pscf {
17namespace Cpc {
18
19 template <int D> class Simulator;
20
21 using namespace Util;
22
28 template <int D>
29 class StepFactory : public Factory< Step<D> >
30 {
31
32 public:
33
39 StepFactory(Simulator<D>& simulator);
40
47 Step<D>* factory(const std::string &className) const;
48
50
51 private:
52
54 Simulator<D>* simulatorPtr_;
55
56 };
57
58 // Explicit instantiation declarations
59 extern template class StepFactory<1>;
60 extern template class StepFactory<2>;
61 extern template class StepFactory<3>;
62
63}
64}
65#endif
Simulator for complex Langevin field theoretic simulation.
Factory for subclasses of Step.
Definition StepFactory.h:30
StepFactory(Simulator< D > &simulator)
Constructor.
Step< D > * factory(const std::string &className) const
Method to create any Step supplied with PSCF.
Step is an abstract base class for Brownian dynamics steps.
Definition Step.h:33
Step< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
Complex periodic fields, CL-FTS (CPU).
Definition cpc.mod:6
PSCF package top-level namespace.