PSCF v1.3.1
rpg/fts/analyzer/AnalyzerFactory.h
1#ifndef RPG_ANALYZER_FACTORY_H
2#define RPG_ANALYZER_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 <rpg/fts/analyzer/Analyzer.h>
13#include <string>
14
15namespace Pscf {
16namespace Rpg {
17
18 template <int D> class System;
19 template <int D> class Simulator;
20
21 using namespace Util;
22
28 template <int D>
29 class AnalyzerFactory : public Factory< Analyzer<D> >
30 {
31
32 public:
33
40 AnalyzerFactory(Simulator<D>& simulator, System<D>& system);
41
48 Analyzer<D>* factory(const std::string &className) const;
49
51
52 private:
53
55 System<D>* sysPtr_;
56
58 Simulator<D>* simulatorPtr_;
59
60 };
61
62 // Explicit instantiation declarations
63 extern template class AnalyzerFactory<1>;
64 extern template class AnalyzerFactory<2>;
65 extern template class AnalyzerFactory<3>;
66
67}
68}
69#endif
Factory for subclasses of Analyzer.
Analyzer< D > * factory(const std::string &className) const
Method to create any Analyzer supplied with PSCF.
AnalyzerFactory(Simulator< D > &simulator, System< D > &system)
Constructor.
Abstract base for periodic output and/or analysis actions.
Field theoretic simulator (base class).
Main class, representing a complete physical system.
Analyzer< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1