MURE
|
InLineReprocessing is an EvolutionControl class for reprocessing without moving material. More...
#include <InLineReprocessing.hxx>
Public Member Functions | |
InLineReprocessing () | |
InLineReprocessing (const InLineReprocessing &ev) | |
Copy constructor. | |
InLineReprocessing * | Clone () override |
~InLineReprocessing () override | |
void | ControlAfterEachMCRun () override |
control at each MC step (just after a MC run) | |
void | ControlBeforeEachSubStep () override |
control at each CRAM/RK step (just before a CRAM/RK sub step) | |
void | ControlAfterEachEvolutionStep () override |
control just before a new MC run | |
void | AddInLineReprocessingTimeSchema (double BurnUp, double CoolingTime, double FabricationTime, double InitialHNMass) |
void | AddInLineReprocessingTimeSchema (double IrradiationTime, double CoolingTime, double FabricationTime) |
void | SetReprocessingIrradiationTime (double Time) |
void | SetReprocessingCoolingTime (double Time) |
void | SetReprocessingFabricationTime (double Time) |
void | SetReprocessingKeptZ (vector< int > KeptZ) |
void | SetReprocessingEfficience (vector< double > Efficience) |
void | SetReprocessingFreshFissiles (vector< Material * > FreshFissiles) |
void | SetReprocessingFreshFertiles (vector< Material * > FreshFertiles) |
void | SetReprocessedCells (vector< Cell * > ReprocessedCells) |
Set the cell where the reprocessing will take place. | |
void | SetReprocessingFissilFertilProportion (vector< double > FissileFertileProportion) |
void | SetReprocessingWantedBU (double WantedBU) |
void | SetOxQuantity (double aOxQuantity) |
void | SetFissileFertileProportionfromsigma () |
void | UnsetFissileFertileProportionfromsigma () |
void | SetFissileFertileProportionExtrapolated () |
void | UnsetFissileFertileProportionExtrapolated () |
double | ReprocessingIrradiationTime () |
double | ReprocessingCoolingTime () |
double | ReprocessingFabricationTime () |
vector< Material * > | ReprocessingFreshFissiles () |
vector< Material * > | ReprocessingFreshFertiles () |
vector< double > | ReprocessingFissileFertileProportion () |
vector< Cell * > | ReprocessingReprocessedCells () |
vector< int > | ReprocessingKeptZ () |
vector< double > | ReprocessingEfficience () |
double | OxQuantity () |
Public Member Functions inherited from EvolutionControl | |
EvolutionControl () | |
Default Constructor. | |
EvolutionControl (const EvolutionControl &ev) | |
Copy constructor. | |
virtual EvolutionControl * | Clone () |
virtual | ~EvolutionControl () |
destructor | |
virtual void | ControlBeforeFirstMCRun () |
virtual void | ControlAfterRestart (int RestartRun) |
control at the very beginning of the evolution, before any MC run | |
virtual void | ControlAfterLastMCRun () |
void | SetMCRunTime (vector< double > T) |
Control at the end of evolution, after the last Evolution Step (or MC run if evolution end on a MC run) | |
vector< double > & | GetMCRunTimes () |
void | SetWantedKeff (double keff=1.) |
void | SetWantedHNProportion (double HNproportion=0.01) |
double | GetWantedHNProportion () |
void | SetLockToInitialKeff (bool flag=true) |
void | SetConstantPower (bool flag=true) |
bool | IsConstantPower () |
void | SetFuelReprocessing (FuelReprocessing *processing) |
FuelReprocessing * | GetFuelReprocessing () |
virtual void | CalculateCoeffsAtStep (int s) |
Abstract method ; to be overloaded. | |
virtual void | SetRunFuelTemperatureCoeff (bool flag=true) |
Abstract method ; to be overloaded. | |
virtual void | SetRunVoidCoeff (bool flag=true) |
Abstract method ; to be overloaded. | |
virtual void | SetRunModeratorTemperatureCoeff (bool flag=true) |
Abstract method ; to be overloaded. | |
virtual void | SetRunPoisonReactivityWorth (bool flag=true) |
Abstract method ; to be overloaded. | |
virtual void | SetCriticalitySource (MCSource *s) |
Abstract method ; to be overloaded. | |
virtual void | LaunchReactivityCoeffsCalculations () |
Abstract method ; to be overloaded. | |
virtual void | ControlKeff (double Time) |
Abstract method ; to be overloaded. | |
void | RunMCCriticality (string FileName) |
Run MC only for a Kcode (no tally) | |
virtual double | EstimatedKeff () |
Extrapolation of Keff on the next step from a linear fit. | |
virtual void | FindKeffSlope () |
Find the slope of Keff base on previous run (fit) | |
virtual void | FindAbsorptionSlope () |
Find the slope of Aborption base on previous run (fit) | |
virtual void | FindFissionSlope () |
Find the slope of Fission base on previous run (fit) | |
virtual void | FindNuFissionSlope () |
Find the slope of Fission*nu base on previous run (fit) | |
virtual void | ExtrapolateRates () |
Extrapolation of reaction rates on the next step from a linear fit. | |
virtual void | WriteControlParameters () |
Write poison/fissile proportions etc. | |
virtual void | WriteCurrentRates () |
Write absorpstion, fission, ... rates in ABS, FISS, ... files. | |
void | PrintKeffWarning () |
Print Keff estimation warnings. | |
void | FindNextCoefs (double value, vector< double > &V, double &Slope, double &Intersept, int &LastMCRunNumber) |
Fit a vector and return the fitted parameters. | |
Private Member Functions | |
void | StoreBOC_XS (int CellNumber) |
Store the XS of kept isotopes to be used later. | |
void | Reprocess (int CellNumber) |
Reprocess the fuel : suppress the unwanted isotopes and add somme fresh fertile and some fresh fissile. | |
double | CalculKHIfromSigma (int CellNumber, double AtomsKept, double AtomsToAdd) |
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) using the cross sections stored before for predicting the criticality. | |
double | ExtrapolateKHI (int CellNumber) |
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) by modifying KHI form last cycle in order to reduce the discrepancy between fwantedBU and fdoneBU. | |
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. | |
Private Attributes | |
double | fIrradiationTime |
time of core irradiation | |
double | fIrradiationPower |
power during the irradiation | |
double | fCoolingTime |
time of cooling before reprocessing | |
double | fFabricationTime |
time of wainting after reprocessing | |
double | fkBOC |
k at the beginning of the cycle, used when Khi is calculated from Sigma | |
double | fOxQuantity |
Number of oxygen atoms in the reprocessed material. | |
vector< double > | fkVector |
vector of k value during last/actual irradiation | |
vector< double > | ftVector |
vector of time step when k was added to the fkVector | |
double | fBeginningTimeOfLastPhase |
time when the last phase of the cycle began | |
int | fPositionInCycle |
Numerical value which say in which part the the cycle we are 1==first step of irradiation; 2==irradiation; 3==Cooling; 4==Reprocess;5==CoolingAfterReprocess. | |
vector< StoredXSforZAI * > | fBOC_XS |
A personnal way to store the XS of utile isotope for future utilisation. | |
vector< Material * > | fFreshFissiles |
the materials used as fissiles materials during reprocessing | |
vector< Material * > | fFreshFertiles |
the materials used as fertiles materials during reprocessing | |
vector< double > | fFissileFertileProportion |
proportion of fissile in fresh fuel added during reprocessing | |
double | fwantedBU |
the burn-up the utilisator wanted to be achieved | |
double | fdoneBU |
real Burn-Up that has been achieved during last irradiation | |
vector< Cell * > | fReprocessedCells |
The cells in which the reprocessing will take place. | |
vector< int > | fKept_Z |
Z from the isotopes which should be kept. | |
vector< double > | fEfficience |
efficience for each kept Z, so with 1 all the Z's atom are kept | |
bool | fIsFissileFertileProportionfromsigma |
if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS | |
bool | fIsFissileFertileProportionExtrapolated |
if true the proportion between fissile and fertile in fresh added fuel is modified at each cycle to converge to the wanted BU | |
Additional Inherited Members | |
Protected Member Functions inherited from EvolutionControl | |
virtual void | InitVector () |
build vector used in fits full of 0. | |
Protected Attributes inherited from EvolutionControl | |
vector< double > | fMCRunTimes |
Time at which MC run is performed. | |
bool | fConstantPower |
whether or not keep a constant power | |
double | fWantedKeff |
The wanted Keff of the problem. | |
double | fWantedHNProportion |
The wanted heavy nuclide proportion. | |
vector< double > | fMCTime |
vector of last MC run time (for fits) | |
vector< double > | fMCKeff |
vector of last MC run Keff | |
vector< double > | fMCDeltaKeff |
vector of last MC run Keff error | |
double | fOldKeff |
The previous MC keff result. | |
bool | fLockToInitialKeff |
for keff control. | |
vector< double > | fKeffWarningTime |
Times at which estimate keff differs from MC keff at 3sigma. | |
vector< double > | fKeffWarningGap |
|Estimate keff - Mcnp Keff| | |
vector< double > | fKeffWarning3sigma |
3sigma on MC keff | |
vector< int > | fKeffWarningMCNum |
The MC run number of the warning. | |
double | fFitKeffSlope |
slope to find the Keff extrapolation | |
double | fFitKeffIntersept |
intersept to find the Keff extrapolation | |
vector< double > | fMCAbs |
vector of last MC run's global total absorption rate. | |
vector< double > | fMCDeltaAbs |
vector of last MC run global Absorption rate (-2) error | |
double | fFitAbsSlope |
slope to find extrapolated Absorption value. | |
double | fFitAbsIntercept |
Absorption intercept for the extrapolation. | |
vector< double > | fMCFiss |
vector of last MC run's global fission rate. | |
vector< double > | fMCDeltaFiss |
vector of last MC run's global fission rate error. | |
double | fFitFissSlope |
slope of linear fit of the fission rate. | |
double | fFitFissIntercept |
intersept of linear fit of the fission rate. | |
vector< double > | fMCNuFiss |
vector of last MC run's global nu*fission rate. | |
vector< double > | fMCDeltaNuFiss |
vector of last MC run's global nu*fission rate error | |
double | fFitNuFissSlope |
slope of linear fit of the nu*fission rate. | |
double | fFitNuFissIntercept |
intersept of linear fit of the nu*fission rate. | |
double | fSumOfFission |
sum of all (n, fission) reaction in a cell | |
double | fSumOfCapture |
sum of all (n, gamma) reaction in a cell | |
double | fSumOfN2N |
sum of all (n, 2n) reaction in a cell | |
double | fTNF |
the Tally normalization Factor | |
FuelReprocessing * | fFuelReprocessing |
the FuelReprocessing | |
InLineReprocessing is an EvolutionControl class for reprocessing without moving material.
In Line reprocessing allows fuel reprocessing during evolution and is design to follow the atoms. The evolving material is modified in order to represent the reprocessing action (FP send to waste...) but is never moved. so during the cooling time, nothing is irradiated With no cooling time and in line reprocessing on each step, it can be use for continuous reprocessing
InLineReprocessing::InLineReprocessing | ( | ) |
Constructor of a InLineReprocessing object.
This constructor doesn't initialise the parameters, specific function need to be used
InLineReprocessing::InLineReprocessing | ( | const InLineReprocessing & | ev | ) |
Copy constructor.
|
override |
void InLineReprocessing::AddInLineReprocessingTimeSchema | ( | double | BurnUp, |
double | CoolingTime, | ||
double | FabricationTime, | ||
double | InitialHNMass | ||
) |
Define the time schema of a InLineReprocessing object.
BurnUp | : (in Wd/tHN) burn-up achieve dirung each irradiation |
CoolingTime | : Time (in seconds) between the end of irradiation and the reprocessing |
FabricationTime | : Time (in seconds) between the reprocessing and the beginning of the next irradiation |
InitialHNMass | : Mass of Heavy Nucleus in the evolving cells |
void InLineReprocessing::AddInLineReprocessingTimeSchema | ( | double | IrradiationTime, |
double | CoolingTime, | ||
double | FabricationTime | ||
) |
Define the time schema of a InLineReprocessing object.
IrradiationTime | : Time (in seconds) of the irradiation. If -1 is used, the time of irradiation is not fixed and is rule by the evolution of the criticality (cf CalculateActualTimeLimit) |
CoolingTime | : Time (in seconds) between the end of irradiation and the reprocessing |
FabricationTime | : Time (in seconds) between the reprocessing and the beginning of the next irradiation |
|
private |
Allow calculation of the time when criticality will be to low using acutal data for k and t.
|
private |
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) using the cross sections stored before for predicting the criticality.
|
inlineoverridevirtual |
< Correct way to copy a InLineReprocessing in case of derivation
Reimplemented from EvolutionControl.
|
overridevirtual |
control just before a new MC run
Reimplemented from EvolutionControl.
|
overridevirtual |
control at each MC step (just after a MC run)
Reimplemented from EvolutionControl.
|
overridevirtual |
control at each CRAM/RK step (just before a CRAM/RK sub step)
Reimplemented from EvolutionControl.
|
private |
Calculate KHI (the proportion between fertile and fissile in fresh fuel added) by modifying KHI form last cycle in order to reduce the discrepancy between fwantedBU and fdoneBU.
|
inline |
< Return the number of oxygen atoms in the reprocessed material
|
private |
Reprocess the fuel : suppress the unwanted isotopes and add somme fresh fertile and some fresh fissile.
|
inline |
< Return the cooling time before reprocessing
|
inline |
< Return the percentage of the kept isotopes that stay in the fuel during reprocessing
|
inline |
< Return the time between reprocessing and the beginning of next irradiation
|
inline |
< Return the proportion between fissile and fertile material in fresh material used during reprocessing
|
inline |
< Return the material used as fertile material during reprocessing
|
inline |
< Return the material used as fissile material during reprocessing
|
inline |
< Return the irradiation time
|
inline |
< Return the Z of the elements kept during reprocessing
|
inline |
< Return the cell where the reprocessing will take place
|
inline |
< Allow the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up
|
inline |
< Allow the FissileFertileProportion to be recalculated at each cycle form the cross section
|
inline |
< Set the number of oxygen atoms in the reprocessed material (warning must be consistant with the real material), not necessary
void InLineReprocessing::SetReprocessedCells | ( | vector< Cell * > | ReprocessedCells | ) |
Set the cell where the reprocessing will take place.
|
inline |
< Set the cooling time before reprocessing
|
inline |
< Set the percentage of the kept isotopes that stay in the fuel during reprocessing
|
inline |
< Set the time between reprocessing and the beginning of next irradiation
|
inline |
< Set the proportion between fissile and fertile material in fresh material used during reprocessing
|
inline |
< Set the material used as fertile material during reprocessing
|
inline |
< Set the material used as fissile material during reprocessing
|
inline |
< Set the irradiation time
|
inline |
< Set the Z of the elements you want to keep during reprocessing
|
inline |
< Set the goal for the achived Burn-Up (only useful, with multiple reprocessing and no irradiation time fixed)
|
private |
Store the XS of kept isotopes to be used later.
|
inline |
< Forbid the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up
|
inline |
< Forbid the FissileFertileProportion to be recalculated at each cycle form the cross section
|
private |
time when the last phase of the cycle began
|
private |
A personnal way to store the XS of utile isotope for future utilisation.
|
private |
time of cooling before reprocessing
|
private |
real Burn-Up that has been achieved during last irradiation
|
private |
efficience for each kept Z, so with 1 all the Z's atom are kept
|
private |
time of wainting after reprocessing
|
private |
proportion of fissile in fresh fuel added during reprocessing
|
private |
the materials used as fertiles materials during reprocessing
|
private |
the materials used as fissiles materials during reprocessing
|
private |
power during the irradiation
|
private |
time of core irradiation
|
private |
if true the proportion between fissile and fertile in fresh added fuel is modified at each cycle to converge to the wanted BU
|
private |
if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS
|
private |
k at the beginning of the cycle, used when Khi is calculated from Sigma
|
private |
Z from the isotopes which should be kept.
|
private |
vector of k value during last/actual irradiation
|
private |
Number of oxygen atoms in the reprocessed material.
|
private |
Numerical value which say in which part the the cycle we are 1==first step of irradiation; 2==irradiation; 3==Cooling; 4==Reprocess;5==CoolingAfterReprocess.
|
private |
The cells in which the reprocessing will take place.
|
private |
vector of time step when k was added to the fkVector
|
private |
the burn-up the utilisator wanted to be achieved