CLASS  5.1
Fuel Cycle Simulator
IrradiationModel.hxx
Go to the documentation of this file.
1 #ifndef _IRRADIATIONMODEL_
2 #define _IRRADIATIONMODEL_
3 
4 
16 #include "CLASSObject.hxx"
17 
18 #include "IsotopicVector.hxx"
19 #include "CLASSNucleiFiliation.hxx"
20 #include "EvolutionData.hxx"
21 
22 #include "TMatrix.h"
23 
24 
25 #include <map>
26 #include <vector>
27 
28 
29 using namespace std;
30 typedef long long int cSecond;
31 
32 class ZAI;
33 class CLASSLogger;
34 //-----------------------------------------------------------------------------//
36 
52 //________________________________________________________________________
53 
55 {
56 
57  public :
63 
65 
67 
68  //{
70 
77  virtual EvolutionData GenerateEvolutionData(IsotopicVector IV, EvolutionData XSSet, double Power, double cycletime) {return EvolutionData();}
78  //}
79 
80 
81 
82 
83  //********* Get Method *********//
88  string GetDataFileName() const { return fDataFileName; } // File name where decay constants and branching ratios are written.
89  string GetDataDirectoryName() const { return fDataDirectoryName; }
90 
91  double GetShorstestHalflife() const { return fShorstestHalflife; }
92 
93 
94  void GetNuclearProcessMatrix(TMatrixT<double> &myMatrix, ZAI Mother, IsotopicVector ProductedIV, double XSValue = 1);
95 
96  void BuildReactionFiliation();
97 
98  string GetSpectrumType(){return fSpectrumType;}
99 
100  IsotopicVector GetDecayConstant() const {return fDecayConstante;}
101  double GetDecayConstant(const ZAI& zai) const;
102 
103 
105 
106 
107 
108 
109  //********* Set Method *********//
110 
115 
116 
117  //{
119 
124  void SetFissionEnergy(string FissionEnergyFile);
125  //}
126 
127  //{
129 
134  void SetFissionEnergy(ZAI zai, double E);
135  //}
136 
137  //{
139 
146  void SetFissionEnergy(int Z, int A, int I, double E ) { SetFissionEnergy(ZAI(Z,A,I), E);}
147  //}
148 
149  void SetShortestHalfLife(double halflife) { fShorstestHalflife = halflife;}
150  void SetZAIThreshold(double zaithreshold) { fZAIThreshold = zaithreshold;}
151 
152  void LoadFPYield(string SponfaneusYield, string ReactionYield);
153 
154  void SetSpectrumType(string type);
155 
157 
158 
159 
160  //********* Evolution Method *********//
165 
166 
167  void BuildDecayMatrix();
168  virtual void LoadDecay();
169 
170  virtual void NuclearDataInitialization();
171 
172 
173 
174  //********* Other Method *********//
179  void Print() const;
180 
181  int GetZAIThreshold(){return fZAIThreshold;}
182 
183 
184  //{
186 
192  string GetDecay(string DecayModes, double &BR,int &Iso, int &StartPos);
193  //}
194 
195 
196  protected :
197 
200  string fDataFileName;
202 
203  map<ZAI, double > fFissionEnergy;
204 
205  map<ZAI, int> fMatrixIndex;
206  vector<ZAI> fReverseMatrixIndex;
207 
208  TMatrixT<double> fDecayMatrix;
209 
213 
216 
219 
222 
223  string fSpectrumType;
224 
225  //{
227 
232  TMatrixT<double> GetFissionXsMatrix(EvolutionData EvolutionDataStep,double TStep);
233  //}
234 
235  //{
237 
242  TMatrixT<double> GetCaptureXsMatrix(EvolutionData EvolutionDataStep,double TStep);
243  //}
244 
245  //{
247 
252  TMatrixT<double> Getn2nXsMatrix(EvolutionData EvolutionDataStep,double TStep);
253  //}
254 
255 
256 
257  CLASSNucleiFiliation ReadFPYield(string Yield);
258 
259  private :
260 
261 };
262 
263 #endif
264 
vector< ZAI > fReverseMatrixIndex
correspondance matrix from the column (or line) of the different Reaction/Decay matrix to the ZAI ...
Definition: IrradiationModel.hxx:206
Header file for EvolutionData class.
string fDataDirectoryName
Path to the decay list file.
Definition: IrradiationModel.hxx:201
CLASSNucleiFiliation fn2nReaction
Store the reaction n,2n Filiation.
Definition: IrradiationModel.hxx:218
IsotopicVector GetDecayConstant() const
Get the decay constants.
Definition: IrradiationModel.hxx:100
map< ZAI, double > fFissionEnergy
Store the Energy per fission use for the flux normalisation.
Definition: IrradiationModel.hxx:203
void SetShortestHalfLife(double halflife)
Set the Half Life cut.
Definition: IrradiationModel.hxx:149
virtual EvolutionData GenerateEvolutionData(IsotopicVector IV, EvolutionData XSSet, double Power, double cycletime)
virtual method called to perform the irradiation calculation using a set of cross section...
Definition: IrradiationModel.hxx:77
Allows to store & operate on radioactive sample.
Definition: IsotopicVector.hxx:37
string fReactionYieldFile
Store the name of the reaction fission yield file.
Definition: IrradiationModel.hxx:221
double GetShorstestHalflife() const
Nuclei with HL below fShorstestHalflife are cut (replaced by their daughter(s))
Definition: IrradiationModel.hxx:91
string fSpontaneusYieldFile
Store the name of the spontaneus fission yield file.
Definition: IrradiationModel.hxx:220
int fZAIThreshold
Lowest Mass deal by the evolution (default 90)
Definition: IrradiationModel.hxx:199
Definition: CLASSBackEndDict.cxx:37
void SetFissionEnergy(int Z, int A, int I, double E)
set Fission Energy for a ZAI using the Z, A, I
Definition: IrradiationModel.hxx:146
Defines a nucleus.
Definition: ZAI.hxx:33
CLASSNucleiFiliation fReactionYield
Store the reaction fission yield.
Definition: IrradiationModel.hxx:215
Header file for CLASSNucleiFiliation classes.
string GetDataFileName() const
Definition: IrradiationModel.hxx:88
Stores fuel inventory evolution , mean cross sections evolution, flux evolution, power ...
Definition: EvolutionData.hxx:54
string GetSpectrumType()
Get the type of neutron spectrum (thermal or fast)
Definition: IrradiationModel.hxx:98
long long int cSecond
Definition: IrradiationModel.hxx:30
CLASSNucleiFiliation fFastDecay
Store the nuclei being cut (HL threshold)
Definition: IrradiationModel.hxx:210
Handles connection between nuclei (decay/reaction)
Definition: CLASSNucleiFiliation.hxx:32
string fDataFileName
Name of the decay list.
Definition: IrradiationModel.hxx:200
CLASSNucleiFiliation fCaptureReaction
Store the reaction capture Filiation.
Definition: IrradiationModel.hxx:217
IsotopicVector fDecayConstante
List of decay constants.
Definition: IrradiationModel.hxx:212
The Bateman equation solver.
Definition: IrradiationModel.hxx:54
double fShorstestHalflife
Limit on the half life of nuclei to take it into account.
Definition: IrradiationModel.hxx:198
string fSpectrumType
Type of the spectrum : thermal or fast. (needed for Isomeric branching ratios)
Definition: IrradiationModel.hxx:223
Header file for IsotopicVector class.
Object to handle output messages.
Definition: CLASSLogger.hxx:144
TMatrixT< double > fDecayMatrix
Matrix with half life for each nuclei.
Definition: IrradiationModel.hxx:208
void SetZAIThreshold(double zaithreshold)
Set the zai threshold.
Definition: IrradiationModel.hxx:150
CLASSNucleiFiliation fSpontaneusYield
Store the spontaneus fission yield.
Definition: IrradiationModel.hxx:214
int GetZAIThreshold()
Gives the threshold (in charge number Z). The nuclei below this threshold are not managed...
Definition: IrradiationModel.hxx:181
Define common proporties of all objects.
Definition: CLASSObject.hxx:39
string GetDataDirectoryName() const
Path to fDataFileName.
Definition: IrradiationModel.hxx:89
CLASSNucleiFiliation fNormalDecay
Store the uncut nuclei.
Definition: IrradiationModel.hxx:211
map< ZAI, int > fMatrixIndex
correspondance matrix from ZAI to the column (or line) of the different Reaction/Decay matrix ...
Definition: IrradiationModel.hxx:205
Header file for CLASSObject class.