PSCF v1.2
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 using namespace Util;
10
11 template <int D> class Simulator;
12
18 template <int D>
19 class Ramp : public ParamComposite
20 {
21
22 public:
23
29 Ramp(Simulator<D>& simulator);
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 #ifndef RPG_RAMP_TPP
107 // Suppress implicit instantiation
108 extern template class Ramp<1>;
109 extern template class Ramp<2>;
110 extern template class Ramp<3>;
111 #endif
112
113}
114}
115#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).
Definition rpg/System.h:41
An object that can read multiple parameters from file.
PSCF package top-level namespace.
Definition param_pc.dox:1
Utility classes for scientific computation.