PSCF v1.1
pspc/iterator/IteratorFactory.h
1#ifndef PSPC_ITERATOR_FACTORY_H
2#define PSPC_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 <pspc/iterator/Iterator.h>
13#include <pspc/System.h>
14
15#include <string>
16
17namespace Pscf {
18namespace Pspc {
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 PSPC_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 for SCFT simulation of one system.
Definition: pspc/System.h:76
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