MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
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 <InLineReprocessingEvolutionControl.hxx>

Inheritance diagram for InLineReprocessing:
EvolutionControl

Public Member Functions

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

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::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.

InLineReprocessing::~InLineReprocessing ( )
inline

Member Function Documentation

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
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
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.

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.

InLineReprocessing* InLineReprocessing::Clone ( )
inlinevirtual

Correct way to copy a EvolutionControl in case of derivation.

Reimplemented from EvolutionControl.

void InLineReprocessing::ControlAfterEndOfRKIntegration ( )
virtual

control at the end of the RK integration, just before an other MCNP run.

Reimplemented from EvolutionControl.

void InLineReprocessing::ControlAtEachMCNPStep ( )
virtual

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

Reimplemented from EvolutionControl.

void InLineReprocessing::ControlAtEachRKStep ( )
virtual

control at each RK step (just before a RK step)

Reimplemented from EvolutionControl.

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.

double InLineReprocessing::OxQuantity ( )
inline

Return the number of oxygen atoms in the reprocessed material.

void InLineReprocessing::Reprocess ( int  CellNumber)
private

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

double InLineReprocessing::ReprocessingCoolingTime ( )
inline

Return the cooling time before reprocessing.

vector<double> InLineReprocessing::ReprocessingEfficience ( )
inline

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

double InLineReprocessing::ReprocessingFabricationTime ( )
inline

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

vector<double> InLineReprocessing::ReprocessingFissileFertileProportion ( )
inline

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

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

Return the material used as fertile material during reprocessing.

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

Return the material used as fissile material during reprocessing.

double InLineReprocessing::ReprocessingIrradiationTime ( )
inline

Return the irradiation time.

vector<int> InLineReprocessing::ReprocessingKeptZ ( )
inline

Return the Z of the elements kept during reprocessing.

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

Return the cell where the reprocessing will take place.

void InLineReprocessing::SetFissileFertileProportionExtrapolated ( )
inline

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

void InLineReprocessing::SetFissileFertileProportionfromsigma ( )
inline

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

void InLineReprocessing::SetOxQuantity ( double  OxQuantity)
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.

void InLineReprocessing::SetReprocessingCoolingTime ( double  Time)
inline

Set the cooling time before reprocessing.

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

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

void InLineReprocessing::SetReprocessingFabricationTime ( double  Time)
inline

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

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

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

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

Set the material used as fertile material during reprocessing.

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

Set the material used as fissile material during reprocessing.

void InLineReprocessing::SetReprocessingIrradiationTime ( double  Time)
inline

Set the irradiation time.

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

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

void InLineReprocessing::SetReprocessingWantedBU ( double  WantedBU)
inline

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

void InLineReprocessing::StoreBOC_XS ( int  CellNumber)
private

Store the XS of kept isotopes to be used later.

void InLineReprocessing::UnsetFissileFertileProportionExtrapolated ( )
inline

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

void InLineReprocessing::UnsetFissileFertileProportionfromsigma ( )
inline

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

Member Data Documentation

double InLineReprocessing::fBeginningTimeOfLastPhase
private

time when the last phase of the cycle began

vector<StoredXSforZAI*> InLineReprocessing::fBOC_XS
private

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

double InLineReprocessing::fCoolingTime
private

time of cooling before reprocessing

double InLineReprocessing::fdoneBU
private

real Burn-Up that has been achieved during last irradiation

vector<double> InLineReprocessing::fEfficience
private

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

double InLineReprocessing::fFabricationTime
private

time of wainting after reprocessing

vector<double> InLineReprocessing::fFissileFertileProportion
private

proportion of fissile in fresh fuel added during reprocessing

vector<Material*> InLineReprocessing::fFreshFertiles
private

the materials used as fertiles materials during reprocessing

vector<Material*> InLineReprocessing::fFreshFissiles
private

the materials used as fissiles materials during reprocessing

double InLineReprocessing::fIrradiationPower
private

power during the irradiation

double InLineReprocessing::fIrradiationTime
private

time of core irradiation

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

bool InLineReprocessing::fIsFissileFertileProportionfromsigma
private

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

double InLineReprocessing::fkBOC
private

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

vector<int> InLineReprocessing::fKept_Z
private

Z from the isotopes which should be kept.

vector<double> InLineReprocessing::fkVector
private

vector of k value during last/actual irradiation

double InLineReprocessing::fOxQuantity
private

Number of oxygen atoms in the reprocessed material.

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.

vector<Cell*> InLineReprocessing::fReprocessedCells
private

The cells in which the reprocessing will take place.

vector<double> InLineReprocessing::ftVector
private

vector of time step when k was added to the fkVector

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.8.5 - Mon Nov 17 2014