CLASS  5.1
Fuel Cycle Simulator
ReactorScheduler.hxx
Go to the documentation of this file.
1 
2 #ifndef _REACTORSCHEDULER_HXX
3 #define _REACTORSCHEDULER_HXX
4 
5 
15 #include <string>
16 #include <fstream>
17 #include <map>
18 #include "EvolutionData.hxx"
19 #include "PhysicsModels.hxx"
20 
21 #include "CLASSObject.hxx"
22 
23 using namespace std;
24 typedef long long int cSecond;
25 
26 //-----------------------------------------------------------------------------//
28 
37 //________________________________________________________________________
38 class ReactorModel : public CLASSObject
39 {
40  public :
45 
46  //{
48 
53  //}
54 
55  //{
57 
62  //}
64 
65 
66  virtual ReactorModel* Clone() { return new ReactorModel(*this); }
67 
68 
69  EvolutionData* GetEvolutionData() {return fEvolutionData;}
70  PhysicsModels* GetPhysicsModels() {return fPhysicsModels;}
71 
72  using CLASSObject::SetName;
73  using CLASSObject::GetName;
74 
75  protected :
76 
77  private :
78 
79  EvolutionData* fEvolutionData;
80  PhysicsModels* fPhysicsModels;
81 
82 };
83 //----------------------------------------------------------------------------//
93 //________________________________________________________________________
94 class ScheduleEntry : public CLASSObject
95 {
96  public:
101  ScheduleEntry(ReactorModel* ED_Or_PhysMod, double BurnUp, double Power, double HMMass );
103 
108  ReactorModel* GetReactorModel(){return fReactorModel;}
109  double GetBurnUp(){return fBurnUp;}
110  double GetPower(){return fPower;}
111  double GetHeavyMetalMass(){return fHeavyMetalMass;}
112 
113 
114  private:
115 
116  ReactorModel* fReactorModel ;
117  double fBurnUp;
118  double fPower;
119  double fHeavyMetalMass;
120 
121 };
122 
123 //----------------------------------------------------------------------------//
125 
134 //________________________________________________________________________
135 
137 {
138  public :
143 
144  //{
146 
150  //}
151 
152  //{
154 
159  //}
161 
166 
167  void AddEntry(cSecond time, ReactorModel* Model, double BurnUp, double Power, double HMMass);
168 
170 
175  ScheduleEntry* GetEntryAt(cSecond t);
176 
177 
178  using CLASSObject::SetName;
179  using CLASSObject::GetName;
180 
181  protected :
182 
183 
184  private :
185 
186  map< cSecond, ScheduleEntry* > fReactorSchedulerMap;
187 
188 };
189 
190 #endif
191 
Container object of XSModel, EquivalenceModel and IrradiationModel.
Definition: PhysicsModels.hxx:48
Header file for EvolutionData class.
EvolutionData * GetEvolutionData()
Return the EvolutionData (NULL if PhysicsModels)
Definition: ReactorScheduler.hxx:69
Definition: CLASSBackEndDict.cxx:37
PhysicsModels * GetPhysicsModels()
Return the PhysicsModels (NULL if EvolutionData)
Definition: ReactorScheduler.hxx:70
Allows a Reactor to change its ED_Or_PhysMod, BurnUp, Power, HMMass.
Definition: ReactorScheduler.hxx:136
Stores fuel inventory evolution , mean cross sections evolution, flux evolution, power ...
Definition: EvolutionData.hxx:54
double GetBurnUp()
Return the Reactor BurnUp.
Definition: ReactorScheduler.hxx:109
virtual ReactorModel * Clone()
Correct way to copy a ReactorModel in case of derivation.
Definition: ReactorScheduler.hxx:66
Header file for XS_INTERPOLATOR class.
Allows to define PhysicsModels & EvolutionData as a ReactorModel.
Definition: ReactorScheduler.hxx:38
long long int cSecond
Definition: CLASSConstante.hxx:10
Object to handle output messages.
Definition: CLASSLogger.hxx:144
ReactorModel * GetReactorModel()
Return the Reactor Model.
Definition: ReactorScheduler.hxx:108
double GetHeavyMetalMass()
Return the Reactor Heavy Metal Mass.
Definition: ReactorScheduler.hxx:111
long long int cSecond
Definition: ReactorScheduler.hxx:24
double GetPower()
Return the Reactor Power.
Definition: ReactorScheduler.hxx:110
Define common proporties of all objects.
Definition: CLASSObject.hxx:39
Definition: ReactorScheduler.hxx:94
Header file for CLASSObject class.