PSCF v1.4.0
fts/analyzer/AnalyzerManager.h
1#ifndef RP_ANALYZER_MANAGER_H
2#define RP_ANALYZER_MANAGER_H
3
4#include <util/param/Manager.h> // base class template
5
6// Forward declaration
7namespace Util {
8 template <class T> class Factory;
9}
10
11namespace Pscf {
12namespace Rp {
13
14 using namespace Util;
15
31 template <int D, class T>
32 class AnalyzerManager : public Manager< typename T::Analyzer >
33 {
34
35 public:
36
37 // Protected constructor and destructor (see below).
38
44 void readParameters(std::istream &in) override;
45
54 void setup();
55
64 void sample(long iStep);
65
73 void output();
74
75 protected:
76
83 AnalyzerManager(typename T::Simulator& simulator,
84 typename T::System& system);
85
89 ~AnalyzerManager() = default;
90
91 private:
92
93 using AnalyzerT = typename T::Analyzer;
94 using AnalyzerFactoryT = typename T::AnalyzerFactory;
95 using Base = Manager< AnalyzerT >;
96
100 typename T::Simulator* simulatorPtr_;
101
105 typename T::System* systemPtr_;
106
110 Factory<AnalyzerT>* newDefaultFactory() const override;
111
112 };
113
114}
115}
116#endif
void sample(long iStep)
Call the sample function of each Analyzer.
AnalyzerManager(typename T::Simulator &simulator, typename T::System &system)
Constructor.
~AnalyzerManager()=default
Destructor.
void readParameters(std::istream &in) override
Read body of parameter file block.
void setup()
Call the setup function of each Analyzer.
void output()
Call the output function of each analyzer.
Factory template.
Definition Factory.h:34
virtual Factory< T::Analyzer > * newDefaultFactory() const
Definition Manager.h:541
Manager(bool uniqueNames=false)
Definition Manager.h:232
Class templates for real-valued periodic fields.
PSCF package top-level namespace.
Utility classes for scientific computation.