PSCF v1.3.1
rpg/fts/ramp/Ramp.h
1#ifndef RPG_RAMP_H
2#define RPG_RAMP_H
3
4#include <util/param/ParamComposite.h> // base class
5
6namespace Pscf {
7namespace Rpg {
8
9 template <int D> class Simulator;
10
11 using namespace Util;
12
18 template <int D>
19 class Ramp : public ParamComposite
20 {
21
22 public:
23
30
34 virtual ~Ramp();
35
49 virtual void setup(int nStep);
50
56 virtual void setParameters(int iStep) = 0;
57
63 virtual void output()
64 {}
65
69 Simulator<D> const & simulator() const;
70
71 protected:
72
77
79 int nStep_;
80
81 private:
82
84 Simulator<D>* simulatorPtr_;
85
86 };
87
88 // Inline methods
89
90 // Return parent simulator by const reference.
91 template <int D>
92 inline Simulator<D> const & Ramp<D>::simulator() const
93 {
94 assert(simulatorPtr_);
95 return *simulatorPtr_;
96 }
97
98 // Return parent simulator by non-const reference.
99 template <int D>
101 {
102 assert(simulatorPtr_);
103 return *simulatorPtr_;
104 }
105
106 // Explicit instantiation declarations
107 extern template class Ramp<1>;
108 extern template class Ramp<2>;
109 extern template class Ramp<3>;
110
111}
112}
113#endif
Class that varies parameters during a simulation (abstract).
virtual void setup(int nStep)
Final setup before simulation loop, set value of nStep.
virtual void output()
Output any results at the end of the simulation.
virtual void setParameters(int iStep)=0
Set new parameters values in associated System and Simulator.
Simulator< D > const & simulator() const
Get parent Simulator<D> by const reference.
Ramp(Simulator< D > &simulator)
Constructor.
virtual ~Ramp()
Destructor.
int nStep_
Number of steps planned for this simulation (set in setup).
Field theoretic simulator (base class).
ParamComposite()
Constructor.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1