MURE
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
InLineReprocessing Class Reference

InLineReprocessing is an EvolutionControl class for reprocessing without moving material. More...

#include <InLineReprocessing.hxx>

Inheritance diagram for InLineReprocessing:
EvolutionControl

Public Member Functions

 InLineReprocessing ()
 
 InLineReprocessing (const InLineReprocessing &ev)
 Copy constructor.
 
InLineReprocessingClone () 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 EvolutionControlClone ()
 
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)
 
FuelReprocessingGetFuelReprocessing ()
 
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
 
FuelReprocessingfFuelReprocessing
 the FuelReprocessing
 

Detailed Description

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

Author
X-Man
Version
1.0

Constructor & Destructor Documentation

◆ InLineReprocessing() [1/2]

InLineReprocessing::InLineReprocessing ( )

Constructor of a InLineReprocessing object.

This constructor doesn't initialise the parameters, specific function need to be used

◆ InLineReprocessing() [2/2]

InLineReprocessing::InLineReprocessing ( const InLineReprocessing ev)

Copy constructor.

◆ ~InLineReprocessing()

InLineReprocessing::~InLineReprocessing ( )
override

Member Function Documentation

◆ AddInLineReprocessingTimeSchema() [1/2]

void InLineReprocessing::AddInLineReprocessingTimeSchema ( double  BurnUp,
double  CoolingTime,
double  FabricationTime,
double  InitialHNMass 
)

Define the time schema of a InLineReprocessing object.

Parameters
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

◆ AddInLineReprocessingTimeSchema() [2/2]

void InLineReprocessing::AddInLineReprocessingTimeSchema ( double  IrradiationTime,
double  CoolingTime,
double  FabricationTime 
)

Define the time schema of a InLineReprocessing object.

Parameters
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

◆ CalculateActualTimeLimit()

double InLineReprocessing::CalculateActualTimeLimit ( vector< double >  kVector,
vector< double >  tVector,
int  N_rechargement,
double  k_threshold 
)
private

Allow calculation of the time when criticality will be to low using acutal data for k and t.

◆ CalculKHIfromSigma()

double InLineReprocessing::CalculKHIfromSigma ( int  CellNumber,
double  AtomsKept,
double  AtomsToAdd 
)
private

Calculate KHI (the proportion between fertile and fissile in fresh fuel added) using the cross sections stored before for predicting the criticality.

◆ Clone()

InLineReprocessing * InLineReprocessing::Clone ( )
inlineoverridevirtual

< Correct way to copy a InLineReprocessing in case of derivation

Reimplemented from EvolutionControl.

◆ ControlAfterEachEvolutionStep()

void InLineReprocessing::ControlAfterEachEvolutionStep ( )
overridevirtual

control just before a new MC run

Reimplemented from EvolutionControl.

◆ ControlAfterEachMCRun()

void InLineReprocessing::ControlAfterEachMCRun ( )
overridevirtual

control at each MC step (just after a MC run)

Reimplemented from EvolutionControl.

◆ ControlBeforeEachSubStep()

void InLineReprocessing::ControlBeforeEachSubStep ( )
overridevirtual

control at each CRAM/RK step (just before a CRAM/RK sub step)

Reimplemented from EvolutionControl.

◆ ExtrapolateKHI()

double InLineReprocessing::ExtrapolateKHI ( int  CellNumber)
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.

◆ OxQuantity()

double InLineReprocessing::OxQuantity ( )
inline

< Return the number of oxygen atoms in the reprocessed material

◆ Reprocess()

void InLineReprocessing::Reprocess ( int  CellNumber)
private

Reprocess the fuel : suppress the unwanted isotopes and add somme fresh fertile and some fresh fissile.

◆ ReprocessingCoolingTime()

double InLineReprocessing::ReprocessingCoolingTime ( )
inline

< Return the cooling time before reprocessing

◆ ReprocessingEfficience()

vector< double > InLineReprocessing::ReprocessingEfficience ( )
inline

< Return the percentage of the kept isotopes that stay in the fuel during reprocessing

◆ ReprocessingFabricationTime()

double InLineReprocessing::ReprocessingFabricationTime ( )
inline

< Return the time between reprocessing and the beginning of next irradiation

◆ ReprocessingFissileFertileProportion()

vector< double > InLineReprocessing::ReprocessingFissileFertileProportion ( )
inline

< Return the proportion between fissile and fertile material in fresh material used during reprocessing

◆ ReprocessingFreshFertiles()

vector< Material * > InLineReprocessing::ReprocessingFreshFertiles ( )
inline

< Return the material used as fertile material during reprocessing

◆ ReprocessingFreshFissiles()

vector< Material * > InLineReprocessing::ReprocessingFreshFissiles ( )
inline

< Return the material used as fissile material during reprocessing

◆ ReprocessingIrradiationTime()

double InLineReprocessing::ReprocessingIrradiationTime ( )
inline

< Return the irradiation time

◆ ReprocessingKeptZ()

vector< int > InLineReprocessing::ReprocessingKeptZ ( )
inline

< Return the Z of the elements kept during reprocessing

◆ ReprocessingReprocessedCells()

vector< Cell * > InLineReprocessing::ReprocessingReprocessedCells ( )
inline

< Return the cell where the reprocessing will take place

◆ SetFissileFertileProportionExtrapolated()

void InLineReprocessing::SetFissileFertileProportionExtrapolated ( )
inline

< Allow the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up

◆ SetFissileFertileProportionfromsigma()

void InLineReprocessing::SetFissileFertileProportionfromsigma ( )
inline

< Allow the FissileFertileProportion to be recalculated at each cycle form the cross section

◆ SetOxQuantity()

void InLineReprocessing::SetOxQuantity ( double  aOxQuantity)
inline

< Set the number of oxygen atoms in the reprocessed material (warning must be consistant with the real material), not necessary

◆ SetReprocessedCells()

void InLineReprocessing::SetReprocessedCells ( vector< Cell * >  ReprocessedCells)

Set the cell where the reprocessing will take place.

◆ SetReprocessingCoolingTime()

void InLineReprocessing::SetReprocessingCoolingTime ( double  Time)
inline

< Set the cooling time before reprocessing

◆ SetReprocessingEfficience()

void InLineReprocessing::SetReprocessingEfficience ( vector< double >  Efficience)
inline

< Set the percentage of the kept isotopes that stay in the fuel during reprocessing

◆ SetReprocessingFabricationTime()

void InLineReprocessing::SetReprocessingFabricationTime ( double  Time)
inline

< Set the time between reprocessing and the beginning of next irradiation

◆ SetReprocessingFissilFertilProportion()

void InLineReprocessing::SetReprocessingFissilFertilProportion ( vector< double >  FissileFertileProportion)
inline

< Set the proportion between fissile and fertile material in fresh material used during reprocessing

◆ SetReprocessingFreshFertiles()

void InLineReprocessing::SetReprocessingFreshFertiles ( vector< Material * >  FreshFertiles)
inline

< Set the material used as fertile material during reprocessing

◆ SetReprocessingFreshFissiles()

void InLineReprocessing::SetReprocessingFreshFissiles ( vector< Material * >  FreshFissiles)
inline

< Set the material used as fissile material during reprocessing

◆ SetReprocessingIrradiationTime()

void InLineReprocessing::SetReprocessingIrradiationTime ( double  Time)
inline

< Set the irradiation time

◆ SetReprocessingKeptZ()

void InLineReprocessing::SetReprocessingKeptZ ( vector< int >  KeptZ)
inline

< Set the Z of the elements you want to keep during reprocessing

◆ SetReprocessingWantedBU()

void InLineReprocessing::SetReprocessingWantedBU ( double  WantedBU)
inline

< Set the goal for the achived Burn-Up (only useful, with multiple reprocessing and no irradiation time fixed)

◆ StoreBOC_XS()

void InLineReprocessing::StoreBOC_XS ( int  CellNumber)
private

Store the XS of kept isotopes to be used later.

◆ UnsetFissileFertileProportionExtrapolated()

void InLineReprocessing::UnsetFissileFertileProportionExtrapolated ( )
inline

< Forbid the FissileFertileProportion to be modified at each cycle to achieve the goal for burn-up

◆ UnsetFissileFertileProportionfromsigma()

void InLineReprocessing::UnsetFissileFertileProportionfromsigma ( )
inline

< Forbid the FissileFertileProportion to be recalculated at each cycle form the cross section

Member Data Documentation

◆ fBeginningTimeOfLastPhase

double InLineReprocessing::fBeginningTimeOfLastPhase
private

time when the last phase of the cycle began

◆ fBOC_XS

vector< StoredXSforZAI *> InLineReprocessing::fBOC_XS
private

A personnal way to store the XS of utile isotope for future utilisation.

◆ fCoolingTime

double InLineReprocessing::fCoolingTime
private

time of cooling before reprocessing

◆ fdoneBU

double InLineReprocessing::fdoneBU
private

real Burn-Up that has been achieved during last irradiation

◆ fEfficience

vector< double > InLineReprocessing::fEfficience
private

efficience for each kept Z, so with 1 all the Z's atom are kept

◆ fFabricationTime

double InLineReprocessing::fFabricationTime
private

time of wainting after reprocessing

◆ fFissileFertileProportion

vector< double > InLineReprocessing::fFissileFertileProportion
private

proportion of fissile in fresh fuel added during reprocessing

◆ fFreshFertiles

vector< Material *> InLineReprocessing::fFreshFertiles
private

the materials used as fertiles materials during reprocessing

◆ fFreshFissiles

vector< Material *> InLineReprocessing::fFreshFissiles
private

the materials used as fissiles materials during reprocessing

◆ fIrradiationPower

double InLineReprocessing::fIrradiationPower
private

power during the irradiation

◆ fIrradiationTime

double InLineReprocessing::fIrradiationTime
private

time of core irradiation

◆ fIsFissileFertileProportionExtrapolated

bool InLineReprocessing::fIsFissileFertileProportionExtrapolated
private

if true the proportion between fissile and fertile in fresh added fuel is modified at each cycle to converge to the wanted BU

◆ fIsFissileFertileProportionfromsigma

bool InLineReprocessing::fIsFissileFertileProportionfromsigma
private

if true the proportion between fissile and fertile in fresh added fuel is calculated from stored XS

◆ fkBOC

double InLineReprocessing::fkBOC
private

k at the beginning of the cycle, used when Khi is calculated from Sigma

◆ fKept_Z

vector< int > InLineReprocessing::fKept_Z
private

Z from the isotopes which should be kept.

◆ fkVector

vector< double > InLineReprocessing::fkVector
private

vector of k value during last/actual irradiation

◆ fOxQuantity

double InLineReprocessing::fOxQuantity
private

Number of oxygen atoms in the reprocessed material.

◆ fPositionInCycle

int InLineReprocessing::fPositionInCycle
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.

◆ fReprocessedCells

vector< Cell *> InLineReprocessing::fReprocessedCells
private

The cells in which the reprocessing will take place.

◆ ftVector

vector< double > InLineReprocessing::ftVector
private

vector of time step when k was added to the fkVector

◆ fwantedBU

double InLineReprocessing::fwantedBU
private

the burn-up the utilisator wanted to be achieved


The documentation for this class was generated from the following files:

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