PSCF v1.4.0
rpg/scft/sweep/SweepFactory.h
1#ifndef RPG_SWEEP_FACTORY_H
2#define RPG_SWEEP_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 "Sweep.h"
13
14#include <string>
15
16namespace Pscf {
17namespace Rpg {
18
19 using namespace Util;
20 using namespace Prdc;
21
27 template <int D>
28 class SweepFactory : public Factory< Sweep<D> >
29 {
30
31 public:
32
38 SweepFactory(System<D>& system);
39
46 Sweep<D>* factory(std::string const & className) const;
47
50
51 private:
52
53 // Pointer to parent system.
54 System<D>* systemPtr_;
55
56 };
57
58 // Explicit instantiation declarations
59 extern template class SweepFactory<1>;
60 extern template class SweepFactory<2>;
61 extern template class SweepFactory<3>;
62
63}
64}
65#endif
Default Factory for subclasses of Sweep.
Sweep< D > * factory(std::string const &className) const
Method to create any Sweep subclass.
SweepFactory(System< D > &system)
Constructor.
Solve a sequence of SCFT problems along a line in parameter space.
Main class, representing a complete physical system.
Sweep< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
Sweep< D > * readObjectOptional(std::istream &in, ParamComposite &parent, std::string &className, bool &isEnd)
Definition Factory.h:378
Periodic fields and crystallography.
Definition complex.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.