InLineReprocessing is an EvolutionControl class for reprocessing without moving material. More...
#include <InLineReprocessingEvolutionControl.hxx>
Public Member Functions | |
InLineReprocessing () | |
InLineReprocessing (const InLineReprocessing &ev) | |
Copy constructor. More... | |
InLineReprocessing * | Clone () |
Correct way to copy a EvolutionControl in case of derivation. More... | |
~InLineReprocessing () | |
void | ControlAtEachMCNPStep () |
control at each MCNP step (just after a MCNP run) More... | |
void | ControlAtEachRKStep () |
control at each RK step (just before a RK step) More... | |
void | ControlAfterEndOfRKIntegration () |
control at the end of the RK integration, just before an other MCNP run. More... | |
void | AddInLineReprocessingTimeSchema (double BurnUp, double CoolingTime, double FabricationTime, double InitialHNMass) |
void | AddInLineReprocessingTimeSchema (double IrradiationTime, double CoolingTime, double FabricationTime) |
void | SetReprocessingIrradiationTime (double Time) |
Set the irradiation time. More... | |
void | SetReprocessingCoolingTime (double Time) |
Set the cooling time before reprocessing. More... | |
void | SetReprocessingFabricationTime (double Time) |
Set the time between reprocessing and the beginning of next irradiation. More... | |
void | SetReprocessingKeptZ (vector< int > KeptZ) |
Set the Z of the elements you want to keep during reprocessing. More... | |
void | SetReprocessingEfficience (vector< double > Efficience) |
Set the percentage of the kept isotopes that stay in the fuel during reprocessing. More... | |
void | SetReprocessingFreshFissiles (vector< Material * > FreshFissiles) |
Set the material used as fissile material during reprocessing. More... | |
void | SetReprocessingFreshFertiles (vector< Material * > FreshFertiles) |
Set the material used as fertile material during reprocessing. More... | |
void | SetReprocessedCells (vector< Cell * > ReprocessedCells) |
Set the cell where the reprocessing will take place. More... | |
void | SetReprocessingFissilFertilProportion (vector< double > FissileFertileProportion) |
Set the proportion between fissile and fertile material in fresh material used during reprocessing. More... | |
void | SetReprocessingWantedBU (double WantedBU) |
Set the goal for the achived Burn-Up (only useful, with multiple reprocessing and no irradiation time fixed) More... | |
void | SetOxQuantity (double OxQuantity) |
Set the number of oxygen atoms in the reprocessed material (warning must be consistant with the real material), not necessary. More... | |
void | SetFissileFertileProportionfromsigma () |
Allow the FissileFertileProportion to be recalculated at each cycle form the cross section. More... | |
void | UnsetFissileFertileProportionfromsigma () |
Forbid the FissileFertileProportion to be recalculated at each cycle form the cross section. More... | |
void | SetFissileFertileProportionExtrapolated () |
Allow the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up. More... | |
void | UnsetFissileFertileProportionExtrapolated () |
Forbid the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up. More... | |
double | ReprocessingIrradiationTime () |
Return the irradiation time. More... | |
double | ReprocessingCoolingTime () |
Return the cooling time before reprocessing. More... | |
double | ReprocessingFabricationTime () |
Return the time between reprocessing and the beginning of next irradiation. More... | |
vector< Material * > | ReprocessingFreshFissiles () |
Return the material used as fissile material during reprocessing. More... | |
vector< Material * > | ReprocessingFreshFertiles () |
Return the material used as fertile material during reprocessing. More... | |
vector< double > | ReprocessingFissileFertileProportion () |
Return the proportion between fissile and fertile material in fresh material used during reprocessing. More... | |
vector< Cell * > | ReprocessingReprocessedCells () |
Return the cell where the reprocessing will take place. More... | |
vector< int > | ReprocessingKeptZ () |
Return the Z of the elements kept during reprocessing. More... | |
vector< double > | ReprocessingEfficience () |
Return the percentage of the kept isotopes that stay in the fuel during reprocessing. More... | |
double | OxQuantity () |
Return the number of oxygen atoms in the reprocessed material. More... | |
Public Member Functions inherited from EvolutionControl | |
EvolutionControl () | |
Default Constructor. More... | |
EvolutionControl (const EvolutionControl &ev) | |
Copy constructor. More... | |
virtual | ~EvolutionControl () |
destructor More... | |
virtual void | ControlBeforeMCNPStep () |
control at each MCNP step (just before a MCNP run) More... | |
void | SetTimeCutting (vector< double >T) |
Set Time at which MCNP run is performed. More... | |
vector< double > & | GetMCNPRunTimes () |
returns Time at which MCNP run is performed More... | |
void | SetWantedKeff (double keff=1.) |
set the wanted keff value More... | |
void | SetWantedHNProportion (double HNproportion=0.01) |
set the wanted Heavy Nucleus proportion More... | |
double | GetWantedHNProportion () |
return the wanted Heavy Nucleus proportion More... | |
void | SetLockToInitialKeff (bool flag=true) |
set keff control to keep keff at its initial value. (tang) More... | |
void | SetConstantPower (bool flag=true) |
say whether the power is kept constant or not More... | |
bool | IsConstantPower () |
return whether the power is kept constant or not More... | |
void | SetFuelReprocessing (FuelReprocessing *processing) |
add the FuelReprocessing More... | |
FuelReprocessing * | GetFuelReprocessing () |
get the FuelReprocessing More... | |
virtual void | CalculateCoeffsAtStep (int s) |
Abstract method ; to be overlaoded. More... | |
virtual void | SetRunFuelTemperatureCoeff (bool flag=true) |
Abstract method ; to be overlaoded. More... | |
virtual void | SetRunVoidCoeff (bool flag=true) |
Abstract method ; to be overlaoded. More... | |
virtual void | SetRunModeratorTemperatureCoeff (bool flag=true) |
Abstract method ; to be overlaoded. More... | |
virtual void | SetRunPoisonReactivityWorth (bool flag=true) |
Abstract method ; to be overlaoded. More... | |
virtual void | SetCriticalitySource (MCNPSource *s) |
Abstract method ; to be overlaoded. More... | |
virtual void | LaunchReactivityCoeffsCalculations () |
Abstract method ; to be overlaoded. More... | |
virtual void | ControlKeff (double Time) |
Abstract method ; to be overlaoded. More... | |
void | RunMCNPCriticality (string FileName) |
Run MCNP only for a Kcode (no tally) More... | |
virtual double | EstimatedKeff () |
Extrapolation of Keff on the next step from a linear fit. More... | |
virtual void | FindKeffSlope () |
Find the slope of Keff base on previous run (fit) More... | |
virtual void | FindAbsorptionSlope () |
Find the slope of Aborption base on previous run (fit) More... | |
virtual void | FindFissionSlope () |
Find the slope of Fission base on previous run (fit) More... | |
virtual void | FindNuFissionSlope () |
Find the slope of Fission*nu base on previous run (fit) More... | |
virtual void | ExtrapolateRates () |
Extrapolation of reaction rates on the next step from a linear fit. More... | |
virtual void | WriteControlParameters () |
Write poison/fissile proportions etc. More... | |
virtual void | WriteCurrentRates () |
Write absorpstion, fission, ... rates in ABS, FISS, ... files. More... | |
void | PrintKeffWarning () |
Print Keff estimation warnings. More... | |
void | FindNextCoefs (double value, vector< double > &V, double &Slope, double &Intersept, int &LastMCNPRunNumber) |
Fit a vector and return the fitted parameters. More... | |
Private Member Functions | |
void | StoreBOC_XS (int CellNumber) |
Store the XS of kept isotopes to be used later. More... | |
void | Reprocess (int CellNumber) |
Reprocess the fuel : suppress the unwanted isotopes and add somme fresh fertile and some fresh fissile. More... | |
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. More... | |
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. More... | |
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. More... | |
Private Attributes | |
double | fIrradiationTime |
time of core irradiation More... | |
double | fIrradiationPower |
power during the irradiation More... | |
double | fCoolingTime |
time of cooling before reprocessing More... | |
double | fFabricationTime |
time of wainting after reprocessing More... | |
double | fkBOC |
k at the beginning of the cycle, used when Khi is calculated from Sigma More... | |
double | fOxQuantity |
Number of oxygen atoms in the reprocessed material. More... | |
vector< double > | fkVector |
vector of k value during last/actual irradiation More... | |
vector< double > | ftVector |
vector of time step when k was added to the fkVector More... | |
double | fBeginningTimeOfLastPhase |
time when the last phase of the cycle began More... | |
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. More... | |
vector< StoredXSforZAI * > | fBOC_XS |
A personnal way to store the XS of utile isotope for future utilisation. More... | |
vector< Material * > | fFreshFissiles |
the materials used as fissiles materials during reprocessing More... | |
vector< Material * > | fFreshFertiles |
the materials used as fertiles materials during reprocessing More... | |
vector< double > | fFissileFertileProportion |
proportion of fissile in fresh fuel added during reprocessing More... | |
double | fwantedBU |
the burn-up the utilisator wanted to be achieved More... | |
double | fdoneBU |
real Burn-Up that has been achieved during last irradiation More... | |
vector< Cell * > | fReprocessedCells |
The cells in which the reprocessing will take place. More... | |
vector< int > | fKept_Z |
Z from the isotopes which should be kept. More... | |
vector< double > | fEfficience |
efficience for each kept Z, so with 1 all the Z's atom are kept More... | |
bool | fIsFissileFertileProportionfromsigma |
if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS More... | |
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 More... | |
Additional Inherited Members | |
Protected Member Functions inherited from EvolutionControl | |
virtual void | InitVector () |
build vector used in fits full of 0. More... | |
Protected Attributes inherited from EvolutionControl | |
vector< double > | fMCNPRunTimes |
Time at which MCNP run is performed. More... | |
bool | fConstantPower |
whether or not keep a constant power More... | |
double | fWantedKeff |
The wanted Keff of the problem. More... | |
double | fWantedHNProportion |
The wanted heavy nuclide proportion. More... | |
vector< double > | fMCNPTime |
vector of last MCNP run time (for fits) More... | |
vector< double > | fMCNPKeff |
vector of last MCNP run Keff More... | |
vector< double > | fMCNPDeltaKeff |
vector of last MCNP run Keff error More... | |
vector< double > | fKeffWarningTime |
Times at which estimate keff differs from MCNP keff at 3sigma. More... | |
vector< double > | fKeffWarningGap |
|Estimate keff - Mcnp Keff| More... | |
vector< double > | fKeffWarning3sigma |
3sigma on MCNP keff More... | |
vector< int > | fKeffWarningMCNPNum |
The MCNP run number of the warning. More... | |
double | fFitKeffSlope |
slope to find the Keff extrapolation More... | |
double | fFitKeffIntersept |
intersept to find the Keff extrapolation More... | |
vector< double > | fMCNPAbs |
vector of last MCNP run's global total absorption rate. More... | |
vector< double > | fMCNPDeltaAbs |
vector of last MCNP run global Absorption rate (-2) error More... | |
double | fFitAbsSlope |
slope to find extrapolated Absorption value. More... | |
double | fFitAbsIntercept |
Absorption intercept for the extrapolation. More... | |
vector< double > | fMCNPFiss |
vector of last MCNP run's global fission rate. More... | |
vector< double > | fMCNPDeltaFiss |
vector of last MCNP run's global fission rate error. More... | |
double | fFitFissSlope |
slope of linear fit of the fission rate. More... | |
double | fFitFissIntercept |
intersept of linear fit of the fission rate. More... | |
vector< double > | fMCNPNuFiss |
vector of last MCNP run's global nu*fission rate. More... | |
vector< double > | fMCNPDeltaNuFiss |
vector of last MCNP run's global nu*fission rate error More... | |
double | fFitNuFissSlope |
slope of linear fit of the nu*fission rate. More... | |
double | fFitNuFissIntercept |
intersept of linear fit of the nu*fission rate. More... | |
double | fOldKeff |
The previous MCNP keff result. More... | |
bool | fLockToInitialKeff |
for keff control. More... | |
double | fSumOfFission |
sum of all (n,fission) reaction in a cell More... | |
double | fSumOfCapture |
sum of all (n,gamma) reaction in a cell More... | |
double | fSumOfN2N |
sum of all (n,2n) reaction in a cell More... | |
double | fTNF |
the Tally normalization Factor More... | |
FuelReprocessing * | fFuelReprocessing |
the FuelReprocessing More... | |
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.
|
inline |
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.
|
inlinevirtual |
Correct way to copy a EvolutionControl in case of derivation.
Reimplemented from EvolutionControl.
|
virtual |
control at the end of the RK integration, just before an other MCNP run.
Reimplemented from EvolutionControl.
|
virtual |
control at each MCNP step (just after a MCNP run)
Reimplemented from EvolutionControl.
|
virtual |
control at each RK step (just before a RK 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