PSCF v1.3.1
rpg/scft/iterator/IteratorFactory.h
1#ifndef RPG_ITERATOR_FACTORY_H
2#define RPG_ITERATOR_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 <rpg/scft/iterator/Iterator.h>
12#include <rpg/system/System.h>
13#include <util/param/Factory.h>
14
15#include <string>
16
17namespace Pscf {
18namespace Rpg {
19
20 using namespace Util;
21 using namespace Pscf::Prdc;
22 using namespace Pscf::Prdc::Cuda;
23
29
30 template <int D>
31 class IteratorFactory : public Factory< Iterator<D> >
32 {
33
34 public:
35
42
49 Iterator<D>* factory(const std::string &className) const;
50
51 // Inherited member functions
54
55 private:
56
58 System<D>* sysPtr_;
59
60 };
61
62 // Explicit instantiation declarations
63 extern template class IteratorFactory<1>;
64 extern template class IteratorFactory<2>;
65 extern template class IteratorFactory<3>;
66
67}
68}
69#endif
Factory for subclasses of Iterator.
Iterator< D > * factory(const std::string &className) const
Method to create any Iterator supplied with PSCF.
IteratorFactory(System< D > &system)
Constructor.
Base class for iterative solvers for SCF equations.
Main class, representing a complete physical system.
Iterator< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
Iterator< D > * readObjectOptional(std::istream &in, ParamComposite &parent, std::string &className, bool &isEnd)
Definition Factory.h:378
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Definition Reduce.cpp:14
Periodic fields and crystallography.
Definition CField.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1