MURE
Loading...
Searching...
No Matches
InLineReprocessing.hxx
Go to the documentation of this file.
1/*
2 This file is part of MURE,
3 Copyright (C) 2007-2021 MURE developers.
4
5 MURE is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 MURE is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with MURE. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef _INLINEREPROCESSING_HXX_
20#define _INLINEREPROCESSING_HXX_
21
22#include <iostream>
23#include <vector>
24#include <string>
25#include <algorithm>
26
31#include "Cell.hxx"
32#include "Material.hxx"
33#include "EvolutionControl.hxx"
34
35class Cell;
36class Material;
37
38
39using namespace std;
40
42
49{
50 public:
62 StoredXSforZAI(int aZ, int aA, int aI, double aXSfission = 0, double aXSng = 0, double aXSn2n = 0, double aXSn3n = 0);
64 StoredXSforZAI(const StoredXSforZAI &storedxsforzai);
66
67 int Z()
68 {
69 return fZ;
70 }
71 int A()
72 {
73 return fA;
74 }
75 int I()
76 {
77 return fI;
78 }
79 int N()
80 {
81 return fA - fZ;
82 }
83 double XSfission()
84 {
85 return fXSfission;
86 }
87 double XSng()
88 {
89 return fXSng;
90 }
91 double XSn2n()
92 {
93 return fXSn2n;
94 }
95 double XSn3n()
96 {
97 return fXSn3n;
98 }
99
100
101 private:
102 int fZ;
103 int fA;
104 int fI;
106 double fXSng;
107 double fXSn2n;
108 double fXSn3n;
109
110};
111
113
123{
124 public:
134 {
135 return new InLineReprocessing(*this);
136 }
137 ~InLineReprocessing() override; //<! Desctructor
138
139 //Standard function for evolution controls
140 void ControlAfterEachMCRun() override;
141 void ControlBeforeEachSubStep() override;
142 void ControlAfterEachEvolutionStep() override;
143 //Initialisation of time parameters
144
153 void AddInLineReprocessingTimeSchema(double BurnUp, double CoolingTime, double FabricationTime, double InitialHNMass);
154
162 void AddInLineReprocessingTimeSchema(double IrradiationTime, double CoolingTime, double FabricationTime);
163
164
165
166
167 // Affect value to the parameters
169 {
170 fIrradiationTime = Time;
171 }
173 {
174 fCoolingTime = Time;
175 }
177 {
178 fFabricationTime = Time;
179 }
180 void SetReprocessingKeptZ(vector < int > KeptZ)
181 {
182 fKept_Z = KeptZ;
183 }
184 void SetReprocessingEfficience(vector < double > Efficience)
185 {
186 fEfficience = Efficience;
187 }
188 void SetReprocessingFreshFissiles(vector < Material *> FreshFissiles)
189 {
190 fFreshFissiles = FreshFissiles;
191 }
192 void SetReprocessingFreshFertiles(vector < Material *> FreshFertiles)
193 {
194 fFreshFertiles = FreshFertiles;
195 }
196 void SetReprocessedCells(vector < Cell *> ReprocessedCells);
197 void SetReprocessingFissilFertilProportion(vector < double > FissileFertileProportion)
198 {
199 fFissileFertileProportion = FissileFertileProportion;
200 }
201 void SetReprocessingWantedBU(double WantedBU)
202 {
203 fwantedBU = WantedBU;
204 }
205 void SetOxQuantity(double aOxQuantity)
206 {
207 fOxQuantity = aOxQuantity;
208 }
210 {
212 }
214 {
216 }
218 {
220 }
222 {
224 }
225
226 //acces to the value of the parameters
228 {
229 return fIrradiationTime;
230 }
232 {
233 return fCoolingTime;
234 }
236 {
237 return fFabricationTime;
238 }
239 vector < Material *> ReprocessingFreshFissiles()
240 {
241 return fFreshFissiles;
242 }
243 vector < Material *> ReprocessingFreshFertiles()
244 {
245 return fFreshFertiles;
246 }
248 {
250 }
252 {
253 return fReprocessedCells;
254 }
255 vector < int > ReprocessingKeptZ()
256 {
257 return fKept_Z;
258 }
259 vector < double > ReprocessingEfficience()
260 {
261 return fEfficience;
262 }
263 double OxQuantity()
264 {
265 return fOxQuantity;
266 }
267
268
269 private:
270 void StoreBOC_XS(int CellNumber);
271 void Reprocess(int CellNumber);
272 double CalculKHIfromSigma(int CellNumber, double AtomsKept, double AtomsToAdd);
273 double ExtrapolateKHI(int CellNumber);
274
275 //void BuildStorage();//!< For future developpement, tu facilitate acces to the wastes produced in a cycle
276
277
282
283 double fkBOC;
285 vector < double > fkVector;
286 vector < double > ftVector;
289 vector < StoredXSforZAI *> fBOC_XS;
290 vector < Material *> fFreshFissiles;
291 vector < Material *> fFreshFertiles;
292 vector < double > fFissileFertileProportion;
293 double fwantedBU;
294 double fdoneBU;
295 // if the proportion btw fissil and fertil isn't defined, it's calculated at each reprocessing step
296 vector < Cell *> fReprocessedCells;
297 vector < int > fKept_Z;
298 vector < double > fEfficience;
301
302 double CalculateActualTimeLimit(vector < double > kVector, vector < double > tVector, int N_rechargement, double k_threshold);
303};
304
305
306#endif
Header file for Cell class.
Header file for EvolutionControl class.
Header file for Material class.
A Cell is composed from a Shape and a Material.
Definition Cell.hxx:84
EvolutionControl allows interactions with the evolution.
Definition EvolutionControl.hxx:60
InLineReprocessing is an EvolutionControl class for reprocessing without moving material.
Definition InLineReprocessing.hxx:123
vector< Cell * > ReprocessingReprocessedCells()
Definition InLineReprocessing.hxx:251
double ReprocessingCoolingTime()
Definition InLineReprocessing.hxx:231
double ReprocessingIrradiationTime()
Definition InLineReprocessing.hxx:227
vector< double > ReprocessingEfficience()
Definition InLineReprocessing.hxx:259
void AddInLineReprocessingTimeSchema(double BurnUp, double CoolingTime, double FabricationTime, double InitialHNMass)
Definition InLineReprocessing.cxx:133
double fBeginningTimeOfLastPhase
time when the last phase of the cycle began
Definition InLineReprocessing.hxx:287
void Reprocess(int CellNumber)
Reprocess the fuel : suppress the unwanted isotopes and add somme fresh fertile and some fresh fissil...
Definition InLineReprocessing.cxx:449
void ControlAfterEachMCRun() override
control at each MC step (just after a MC run)
Definition InLineReprocessing.cxx:167
InLineReprocessing * Clone() override
Definition InLineReprocessing.hxx:133
vector< double > ftVector
vector of time step when k was added to the fkVector
Definition InLineReprocessing.hxx:286
void UnsetFissileFertileProportionExtrapolated()
Definition InLineReprocessing.hxx:221
double CalculKHIfromSigma(int CellNumber, double AtomsKept, double AtomsToAdd)
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) using the cross sectio...
Definition InLineReprocessing.cxx:657
double ReprocessingFabricationTime()
Definition InLineReprocessing.hxx:235
vector< Material * > fFreshFissiles
the materials used as fissiles materials during reprocessing
Definition InLineReprocessing.hxx:290
void SetReprocessingWantedBU(double WantedBU)
Definition InLineReprocessing.hxx:201
void StoreBOC_XS(int CellNumber)
Store the XS of kept isotopes to be used later.
Definition InLineReprocessing.cxx:791
void ControlBeforeEachSubStep() override
control at each CRAM/RK step (just before a CRAM/RK sub step)
Definition InLineReprocessing.cxx:201
void SetReprocessedCells(vector< Cell * > ReprocessedCells)
Set the cell where the reprocessing will take place.
Definition InLineReprocessing.cxx:190
void ControlAfterEachEvolutionStep() override
control just before a new MC run
Definition InLineReprocessing.cxx:321
vector< StoredXSforZAI * > fBOC_XS
A personnal way to store the XS of utile isotope for future utilisation.
Definition InLineReprocessing.hxx:289
double fCoolingTime
time of cooling before reprocessing
Definition InLineReprocessing.hxx:280
vector< int > ReprocessingKeptZ()
Definition InLineReprocessing.hxx:255
vector< Material * > fFreshFertiles
the materials used as fertiles materials during reprocessing
Definition InLineReprocessing.hxx:291
double fIrradiationPower
power during the irradiation
Definition InLineReprocessing.hxx:279
void SetReprocessingFabricationTime(double Time)
Definition InLineReprocessing.hxx:176
void SetOxQuantity(double aOxQuantity)
Definition InLineReprocessing.hxx:205
vector< int > fKept_Z
Z from the isotopes which should be kept.
Definition InLineReprocessing.hxx:297
void SetReprocessingFreshFissiles(vector< Material * > FreshFissiles)
Definition InLineReprocessing.hxx:188
bool fIsFissileFertileProportionExtrapolated
if true the proportion between fissile and fertile in fresh added fuel is modified at each cycle to c...
Definition InLineReprocessing.hxx:300
void UnsetFissileFertileProportionfromsigma()
Definition InLineReprocessing.hxx:213
double fIrradiationTime
time of core irradiation
Definition InLineReprocessing.hxx:278
InLineReprocessing()
Definition InLineReprocessing.cxx:42
double fkBOC
k at the beginning of the cycle, used when Khi is calculated from Sigma
Definition InLineReprocessing.hxx:283
void SetReprocessingFreshFertiles(vector< Material * > FreshFertiles)
Definition InLineReprocessing.hxx:192
void SetFissileFertileProportionfromsigma()
Definition InLineReprocessing.hxx:209
int fPositionInCycle
Numerical value which say in which part the the cycle we are 1==first step of irradiation; 2==irradia...
Definition InLineReprocessing.hxx:288
vector< double > ReprocessingFissileFertileProportion()
Definition InLineReprocessing.hxx:247
double fFabricationTime
time of wainting after reprocessing
Definition InLineReprocessing.hxx:281
double CalculateActualTimeLimit(vector< double > kVector, vector< double > tVector, int N_rechargement, double k_threshold)
Allow calculation of the time when criticality will be to low using acutal data for k and t.
Definition InLineReprocessing.cxx:921
double fwantedBU
the burn-up the utilisator wanted to be achieved
Definition InLineReprocessing.hxx:293
vector< double > fEfficience
efficience for each kept Z, so with 1 all the Z's atom are kept
Definition InLineReprocessing.hxx:298
vector< double > fkVector
vector of k value during last/actual irradiation
Definition InLineReprocessing.hxx:285
void SetReprocessingIrradiationTime(double Time)
Definition InLineReprocessing.hxx:168
bool fIsFissileFertileProportionfromsigma
if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS
Definition InLineReprocessing.hxx:299
double OxQuantity()
Definition InLineReprocessing.hxx:263
vector< Material * > ReprocessingFreshFissiles()
Definition InLineReprocessing.hxx:239
double fdoneBU
real Burn-Up that has been achieved during last irradiation
Definition InLineReprocessing.hxx:294
vector< Material * > ReprocessingFreshFertiles()
Definition InLineReprocessing.hxx:243
void SetReprocessingCoolingTime(double Time)
Definition InLineReprocessing.hxx:172
double fOxQuantity
Number of oxygen atoms in the reprocessed material.
Definition InLineReprocessing.hxx:284
void SetFissileFertileProportionExtrapolated()
Definition InLineReprocessing.hxx:217
vector< double > fFissileFertileProportion
proportion of fissile in fresh fuel added during reprocessing
Definition InLineReprocessing.hxx:292
double ExtrapolateKHI(int CellNumber)
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) by modifying KHI form ...
Definition InLineReprocessing.cxx:619
void SetReprocessingFissilFertilProportion(vector< double > FissileFertileProportion)
Definition InLineReprocessing.hxx:197
void SetReprocessingEfficience(vector< double > Efficience)
Definition InLineReprocessing.hxx:184
vector< Cell * > fReprocessedCells
The cells in which the reprocessing will take place.
Definition InLineReprocessing.hxx:296
~InLineReprocessing() override
Definition InLineReprocessing.cxx:123
void SetReprocessingKeptZ(vector< int > KeptZ)
Definition InLineReprocessing.hxx:180
A Material constituing a Cell.
Definition Material.hxx:83
StoredXSforZAI is a class for storing some XS and use them later in the cycle.
Definition InLineReprocessing.hxx:49
int I()
Definition InLineReprocessing.hxx:75
double fXSfission
Definition InLineReprocessing.hxx:105
double XSn2n()
Definition InLineReprocessing.hxx:91
int Z()
Definition InLineReprocessing.hxx:67
~StoredXSforZAI()
Destructor.
int fZ
number of protons
Definition InLineReprocessing.hxx:102
double fXSn2n
Definition InLineReprocessing.hxx:107
int A()
Definition InLineReprocessing.hxx:71
double fXSng
Definition InLineReprocessing.hxx:106
int fI
Isomeric state (Ground State, ith excited)
Definition InLineReprocessing.hxx:104
int fA
number of nucleons (A=0 means natural isotopes)
Definition InLineReprocessing.hxx:103
double XSfission()
Definition InLineReprocessing.hxx:83
double fXSn3n
Definition InLineReprocessing.hxx:108
int N()
Definition InLineReprocessing.hxx:79
StoredXSforZAI()
Default constructor.
double XSn3n()
Definition InLineReprocessing.hxx:95
double XSng()
Definition InLineReprocessing.hxx:87
the namespace of the Standard C++

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024