MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
InLineReprocessingEvolutionControl.hxx
Go to the documentation of this file.
1 #ifndef _INLINEREPROCESSINGEVOLUTIONCONTROL_HXX_
2 #define _INLINEREPROCESSINGEVOLUTIONCONTROL_HXX_
3 
4 #include <iostream>
5 #include <vector>
6 #include <string>
7 
12 #include "MureHeaders.hxx"
13 
14 
15 using namespace std;
16 
18 
25 {
26  public:
38  StoredXSforZAI(int Z, int A, int I,double XSfission=0,double XSng=0,double XSn2n=0,double XSn3n=0);
39  StoredXSforZAI();
40  StoredXSforZAI(const StoredXSforZAI &storedxsforzai);
41  ~StoredXSforZAI();
42 
43  int Z(){return fZ;}
44  int A(){return fA;}
45  int I(){return fI;}
46  int N(){return fA-fZ;}
47  double XSfission() {return fXSfission;}
48  double XSng() {return fXSng;}
49  double XSn2n() {return fXSn2n;}
50  double XSn3n() {return fXSn3n;}
51 
52 
53  private:
54  int fZ;
55  int fA;
56  int fI;
57  double fXSfission;
58  double fXSng;
59  double fXSn2n;
60  double fXSn3n;
61 
62 };
63 
65 
75 {
76  public:
85  InLineReprocessing* Clone(){return new InLineReprocessing(*this);} //@- Correct way to copy a InLineReprocessing in case of derivation
86  ~InLineReprocessing(){}// Desctructor
87 
88  //Standard function for evolution controls
89  void ControlAtEachMCNPStep(); //@- control at each MCNP step (just after a MCNP run)
90  void ControlAtEachRKStep(); //@- control at each RK step (just before a RK step)
91  void ControlAfterEndOfRKIntegration(); //@- control at the end of the RK integration, just before an other MCNP run.
92 
93  //Initialisation of time parameters
94 
103  void AddInLineReprocessingTimeSchema(double BurnUp, double CoolingTime, double FabricationTime, double InitialHNMass);
104 
112  void AddInLineReprocessingTimeSchema(double IrradiationTime, double CoolingTime, double FabricationTime);
113 
114 
115 
116 
117  // Affect value to the parameters
118  void SetReprocessingIrradiationTime(double Time){fIrradiationTime=Time;}
119  void SetReprocessingCoolingTime(double Time){fCoolingTime=Time;}
120  void SetReprocessingFabricationTime(double Time){fFabricationTime=Time;}
121  void SetReprocessingKeptZ(vector<int> KeptZ){fKept_Z=KeptZ;}
122  void SetReprocessingEfficience(vector<double> Efficience){fEfficience=Efficience;}
123  void SetReprocessingFreshFissiles(vector<Material*> FreshFissiles){fFreshFissiles=FreshFissiles;}
124  void SetReprocessingFreshFertiles(vector<Material*> FreshFertiles){fFreshFertiles=FreshFertiles;}
125  void SetReprocessedCells(vector<Cell*> ReprocessedCells);
126  void SetReprocessingFissilFertilProportion(vector<double> FissileFertileProportion){fFissileFertileProportion=FissileFertileProportion;}
127  void SetReprocessingWantedBU(double WantedBU){WantedBU=fwantedBU;}
128  void SetOxQuantity(double OxQuantity){fOxQuantity=OxQuantity;}
129  void SetFissileFertileProportionfromsigma(){fIsFissileFertileProportionfromsigma=true;}
130  void UnsetFissileFertileProportionfromsigma(){fIsFissileFertileProportionfromsigma=false;}
131  void SetFissileFertileProportionExtrapolated(){fIsFissileFertileProportionExtrapolated=true;}
132  void UnsetFissileFertileProportionExtrapolated(){fIsFissileFertileProportionExtrapolated=false;}
133 
134  //acces to the value of the parameters
135  double ReprocessingIrradiationTime(){return fIrradiationTime;}
136  double ReprocessingCoolingTime(){return fCoolingTime;}
137  double ReprocessingFabricationTime(){return fFabricationTime;}
138  vector<Material*> ReprocessingFreshFissiles(){return fFreshFissiles;}
139  vector<Material*> ReprocessingFreshFertiles(){return fFreshFertiles;}
140  vector<double> ReprocessingFissileFertileProportion(){return fFissileFertileProportion;}
141  vector<Cell*> ReprocessingReprocessedCells(){return fReprocessedCells;}
142  vector<int> ReprocessingKeptZ(){return fKept_Z;}
143  vector<double> ReprocessingEfficience(){return fEfficience;}
144  double OxQuantity(){return fOxQuantity;}
145 
146 
147  private:
148  void StoreBOC_XS(int CellNumber);
149  void Reprocess(int CellNumber);
150  double CalculKHIfromSigma(int CellNumber,double AtomsKept, double AtomsToAdd);
151  double ExtrapolateKHI(int CellNumber);
152 
153  //void BuildStorage();//!< For future developpement, tu facilitate acces to the wastes produced in a cycle
154 
155 
158  double fCoolingTime;
160  double fkBOC;
161  double fOxQuantity;
162  vector<double> fkVector;
163  vector<double> ftVector;
166  vector<StoredXSforZAI*> fBOC_XS;
167  vector<Material*> fFreshFissiles;
168  vector<Material*> fFreshFertiles;
169  vector<double> fFissileFertileProportion;
170  double fwantedBU;
171  double fdoneBU;
172  // if the proportion btw fissil and fertil isn't defined, it's calculated at each reprocessing step
173  vector<Cell*> fReprocessedCells;
174  vector<int> fKept_Z;
175  vector<double> fEfficience;
178 
179  double CalculateActualTimeLimit(vector<double> kVector,vector<double> tVector,int N_rechargement, double k_threshold);
180 };
181 
182 
183 #endif
double fCoolingTime
time of cooling before reprocessing
Definition: InLineReprocessingEvolutionControl.hxx:158
void UnsetFissileFertileProportionExtrapolated()
Forbid the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up...
Definition: InLineReprocessingEvolutionControl.hxx:132
double fIrradiationPower
power during the irradiation
Definition: InLineReprocessingEvolutionControl.hxx:157
double ReprocessingCoolingTime()
Return the cooling time before reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:136
double ReprocessingIrradiationTime()
Return the irradiation time.
Definition: InLineReprocessingEvolutionControl.hxx:135
void SetReprocessingFissilFertilProportion(vector< double > FissileFertileProportion)
Set the proportion between fissile and fertile material in fresh material used during reprocessing...
Definition: InLineReprocessingEvolutionControl.hxx:126
vector< Material * > fFreshFissiles
the materials used as fissiles materials during reprocessing
Definition: InLineReprocessingEvolutionControl.hxx:167
vector< double > fEfficience
efficience for each kept Z, so with 1 all the Z&#39;s atom are kept
Definition: InLineReprocessingEvolutionControl.hxx:175
int I()
returns the Isomeric state (Ground State, ith excited)
Definition: InLineReprocessingEvolutionControl.hxx:45
vector< Cell * > ReprocessingReprocessedCells()
Return the cell where the reprocessing will take place.
Definition: InLineReprocessingEvolutionControl.hxx:141
vector< double > ReprocessingFissileFertileProportion()
Return the proportion between fissile and fertile material in fresh material used during reprocessing...
Definition: InLineReprocessingEvolutionControl.hxx:140
void SetReprocessingWantedBU(double WantedBU)
Set the goal for the achived Burn-Up (only useful, with multiple reprocessing and no irradiation time...
Definition: InLineReprocessingEvolutionControl.hxx:127
double fOxQuantity
Number of oxygen atoms in the reprocessed material.
Definition: InLineReprocessingEvolutionControl.hxx:161
int fA
number of nucleons (A=0 means natural isotopes)
Definition: InLineReprocessingEvolutionControl.hxx:55
int Z()
returns the number of protons
Definition: InLineReprocessingEvolutionControl.hxx:43
bool fIsFissileFertileProportionExtrapolated
if true the proportion between fissile and fertile in fresh added fuel is modified at each cycle to c...
Definition: InLineReprocessingEvolutionControl.hxx:177
int fZ
number of protons
Definition: InLineReprocessingEvolutionControl.hxx:54
vector< int > fKept_Z
Z from the isotopes which should be kept.
Definition: InLineReprocessingEvolutionControl.hxx:174
double fIrradiationTime
time of core irradiation
Definition: InLineReprocessingEvolutionControl.hxx:156
double fXSfission
Definition: InLineReprocessingEvolutionControl.hxx:57
int fPositionInCycle
Numerical value which say in which part the the cycle we are 1==first step of irradiation; 2==irradia...
Definition: InLineReprocessingEvolutionControl.hxx:165
double XSn3n()
Definition: InLineReprocessingEvolutionControl.hxx:50
InLineReprocessing * Clone()
Correct way to copy a EvolutionControl in case of derivation.
Definition: InLineReprocessingEvolutionControl.hxx:85
StoredXSforZAI is a class for storing some XS and use them later in the cycle.
Definition: InLineReprocessingEvolutionControl.hxx:24
void SetReprocessingKeptZ(vector< int > KeptZ)
Set the Z of the elements you want to keep during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:121
double fXSn2n
Definition: InLineReprocessingEvolutionControl.hxx:59
void UnsetFissileFertileProportionfromsigma()
Forbid the FissileFertileProportion to be recalculated at each cycle form the cross section...
Definition: InLineReprocessingEvolutionControl.hxx:130
double XSfission()
Definition: InLineReprocessingEvolutionControl.hxx:47
vector< StoredXSforZAI * > fBOC_XS
A personnal way to store the XS of utile isotope for future utilisation.
Definition: InLineReprocessingEvolutionControl.hxx:166
void SetReprocessingCoolingTime(double Time)
Set the cooling time before reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:119
InLineReprocessing is an EvolutionControl class for reprocessing without moving material.
Definition: InLineReprocessingEvolutionControl.hxx:74
double ReprocessingFabricationTime()
Return the time between reprocessing and the beginning of next irradiation.
Definition: InLineReprocessingEvolutionControl.hxx:137
double fkBOC
k at the beginning of the cycle, used when Khi is calculated from Sigma
Definition: InLineReprocessingEvolutionControl.hxx:160
vector< double > fkVector
vector of k value during last/actual irradiation
Definition: InLineReprocessingEvolutionControl.hxx:162
vector< Material * > ReprocessingFreshFertiles()
Return the material used as fertile material during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:139
int fI
Isomeric state (Ground State, ith excited)
Definition: InLineReprocessingEvolutionControl.hxx:56
vector< double > fFissileFertileProportion
proportion of fissile in fresh fuel added during reprocessing
Definition: InLineReprocessingEvolutionControl.hxx:169
void SetFissileFertileProportionfromsigma()
Allow the FissileFertileProportion to be recalculated at each cycle form the cross section...
Definition: InLineReprocessingEvolutionControl.hxx:129
int N()
returns the number of neutrons
Definition: InLineReprocessingEvolutionControl.hxx:46
double fXSng
Definition: InLineReprocessingEvolutionControl.hxx:58
File including all headers.
bool fIsFissileFertileProportionfromsigma
if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS ...
Definition: InLineReprocessingEvolutionControl.hxx:176
double fwantedBU
the burn-up the utilisator wanted to be achieved
Definition: InLineReprocessingEvolutionControl.hxx:170
double OxQuantity()
Return the number of oxygen atoms in the reprocessed material.
Definition: InLineReprocessingEvolutionControl.hxx:144
void SetOxQuantity(double OxQuantity)
Set the number of oxygen atoms in the reprocessed material (warning must be consistant with the real ...
Definition: InLineReprocessingEvolutionControl.hxx:128
void SetReprocessingFabricationTime(double Time)
Set the time between reprocessing and the beginning of next irradiation.
Definition: InLineReprocessingEvolutionControl.hxx:120
double XSng()
Definition: InLineReprocessingEvolutionControl.hxx:48
void SetReprocessingFreshFissiles(vector< Material * > FreshFissiles)
Set the material used as fissile material during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:123
double XSn2n()
Definition: InLineReprocessingEvolutionControl.hxx:49
void SetFissileFertileProportionExtrapolated()
Allow the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up...
Definition: InLineReprocessingEvolutionControl.hxx:131
void SetReprocessingEfficience(vector< double > Efficience)
Set the percentage of the kept isotopes that stay in the fuel during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:122
vector< double > ftVector
vector of time step when k was added to the fkVector
Definition: InLineReprocessingEvolutionControl.hxx:163
vector< double > ReprocessingEfficience()
Return the percentage of the kept isotopes that stay in the fuel during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:143
~InLineReprocessing()
Definition: InLineReprocessingEvolutionControl.hxx:86
void SetReprocessingFreshFertiles(vector< Material * > FreshFertiles)
Set the material used as fertile material during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:124
vector< int > ReprocessingKeptZ()
Return the Z of the elements kept during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:142
double fXSn3n
Definition: InLineReprocessingEvolutionControl.hxx:60
double fdoneBU
real Burn-Up that has been achieved during last irradiation
Definition: InLineReprocessingEvolutionControl.hxx:171
vector< Material * > ReprocessingFreshFissiles()
Return the material used as fissile material during reprocessing.
Definition: InLineReprocessingEvolutionControl.hxx:138
double fFabricationTime
time of wainting after reprocessing
Definition: InLineReprocessingEvolutionControl.hxx:159
double fBeginningTimeOfLastPhase
time when the last phase of the cycle began
Definition: InLineReprocessingEvolutionControl.hxx:164
void SetReprocessingIrradiationTime(double Time)
Set the irradiation time.
Definition: InLineReprocessingEvolutionControl.hxx:118
int A()
returns the number of nucleons
Definition: InLineReprocessingEvolutionControl.hxx:44
vector< Material * > fFreshFertiles
the materials used as fertiles materials during reprocessing
Definition: InLineReprocessingEvolutionControl.hxx:168
vector< Cell * > fReprocessedCells
The cells in which the reprocessing will take place.
Definition: InLineReprocessingEvolutionControl.hxx:173
EvolutionControl allows interactions with the evolution.
Definition: EvolutionControl.hxx:35

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014