PSCF v1.4.0
rpc/fts/brownian/BdStepFactory.h
1#ifndef RPC_BD_STEP_FACTORY_H
2#define RPC_BD_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 <rpc/fts/brownian/BdStep.h>
13
14#include <string>
15
16namespace Pscf {
17namespace Rpc {
18
19 // Forward declaration
20 template <int D> class BdSimulator;
21
22 using namespace Util;
23
29 template <int D>
30 class BdStepFactory : public Factory< BdStep<D> >
31 {
32
33 public:
34
40 BdStepFactory(BdSimulator<D>& simulator);
41
48 BdStep<D>* factory(const std::string &className) const;
49
51
52 private:
53
55 BdSimulator<D>* simulatorPtr_;
56
57 };
58
59 // Explicit instantiation declarations
60 extern template class BdStepFactory<1>;
61 extern template class BdStepFactory<2>;
62 extern template class BdStepFactory<3>;
63
64}
65}
66#endif
Brownian dynamics simulator for PS-FTS.
Factory for subclasses of BdStep.
BdStepFactory(BdSimulator< D > &simulator)
Constructor.
BdStep< D > * factory(const std::string &className) const
Method to create any BdStep supplied with PSCF.
BdStep is an abstract base class for Brownian dynamics steps.
BdStep< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.