PSCF v1.1
pspg/sweep/SweepFactory.h
1#ifndef PSPG_SWEEP_FACTORY_H
2#define PSPG_SWEEP_FACTORY_H
3
4/*
5* PSCF - Polymer Self-Consistent Field Theory
6*
7* Copyright 2016 - 2022, 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 Pspg {
18
19 using namespace Util;
20
26 template <int D>
27 class SweepFactory : public Factory< Sweep<D> >
28 {
29
30 public:
31
37 SweepFactory(System<D>& system);
38
45 Sweep<D>* factory(std::string const & className) const;
46
48
49 private:
50
51 System<D>* systemPtr_;
52
53 };
54
55 #ifndef PSPG_SWEEP_FACTORY_TPP
56 // Suppress implicit instantiation
57 extern template class SweepFactory<1>;
58 extern template class SweepFactory<2>;
59 extern template class SweepFactory<3>;
60 #endif
61
62}
63}
64#endif
Default Factory for subclasses of Sweep.
Sweep< D > * factory(std::string const &className) const
Method to create any Sweep subclass.
Solve a sequence of problems along a line in parameter space.
Main class in SCFT simulation of one system.
Definition: pspg/System.h:71
Factory template.
Definition: Factory.h:34
Sweep< D > * trySubfactories(const std::string &className) const
Search through subfactories for match.
Definition: Factory.h:425
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.
Definition: accumulators.mod:1