PSCF v1.1
pspg/iterator/IteratorFactory.h
1#ifndef PSPG_ITERATOR_FACTORY_H
2#define PSPG_ITERATOR_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 <pspg/iterator/Iterator.h>
13#include <pspg/System.h>
14
15#include <string>
16
17namespace Pscf {
18namespace Pspg {
19
20 using namespace Util;
21
28 template <int D>
29 class IteratorFactory : public Factory< Iterator<D> >
30 {
31
32 public:
33
36
43 Iterator<D>* factory(const std::string &className) const;
44
46
47 private:
48
50 System<D>* sysPtr_;
51
52 };
53
54 #ifndef PSPG_ITERATOR_FACTORY_TPP
55 // Suppress implicit instantiation
56 extern template class IteratorFactory<1>;
57 extern template class IteratorFactory<2>;
58 extern template class IteratorFactory<3>;
59 #endif
60
61}
62}
63#endif
Factory for subclasses of Iterator.
Iterator< D > * factory(const std::string &className) const
Method to create any Iterator supplied with PSCF.
Base class for iterative solvers for SCF equations.
Main class in SCFT simulation of one system.
Definition: pspg/System.h:71
Factory template.
Definition: Factory.h:34
Iterator< 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