PSCF v1.2
rpc/fts/ramp/Ramp.h
1#ifndef RPC_RAMP_H
2#define RPC_RAMP_H
3
4#include <util/param/ParamComposite.h> // base class
5
6namespace Pscf {
7namespace Rpc {
8
9 using namespace Util;
10
11 template <int D> class Simulator;
12
20 template <int D>
21 class Ramp : public ParamComposite
22 {
23
24 public:
25
31 Ramp(Simulator<D>& simulator);
32
36 virtual ~Ramp();
37
51 virtual void setup(int nStep);
52
58 virtual void setParameters(int iStep) = 0;
59
65 virtual void output()
66 {}
67
71 Simulator<D> const & simulator() const;
72
73 protected:
74
79
81 int nStep_;
82
83 private:
84
86 Simulator<D>* simulatorPtr_;
87
88 };
89
90 // Inline methods
91
92 // Return parent simulator by const reference.
93 template <int D>
94 inline Simulator<D> const & Ramp<D>::simulator() const
95 {
96 assert(simulatorPtr_);
97 return *simulatorPtr_;
98 }
99
100 // Return parent simulator by non-const reference.
101 template <int D>
103 {
104 assert(simulatorPtr_);
105 return *simulatorPtr_;
106 }
107
108 #ifndef RPC_RAMP_TPP
109 // Suppress implicit instantiation
110 extern template class Ramp<1>;
111 extern template class Ramp<2>;
112 extern template class Ramp<3>;
113 #endif
114
115}
116}
117#endif
Class that varies parameters during a simulation (abstract).
virtual ~Ramp()
Destructor.
int nStep_
Number of steps planned for this simulation (set in setup).
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 void setup(int nStep)
Final setup before simulation loop, set value of nStep.
Field theoretic simulator (base class).
Definition rpc/System.h:38
An object that can read multiple parameters from file.
PSCF package top-level namespace.
Definition param_pc.dox:1
Utility classes for scientific computation.