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

BlanketReprocessing allows Fuel reprocessing in Core and in Blanket during Evolution. More...

#include <BlanketReprocessing.hxx>

Inheritance diagram for BlanketReprocessing:
FuelReprocessing

Public Member Functions

 BlanketReprocessing ()
 Default Constructor.
 
 BlanketReprocessing (const BlanketReprocessing &m)
 copy Constructor.
 
FuelReprocessingClone () override
 
void SetBlanketCell (Cell *blanket, double CoolingTime)
 Define the Blanket Cell.
 
void SetBlanketFreshFuel (Material *BlanketFreshFuel, Material *EquiliBriumMat=nullptr, double EquilibriumTime=- 1)
 Set Blanket Fresh Fuel.
 
void SetBlanketFuelFabricationTime (double Time=2 *365.25 *24 *3600)
 Set the blanket fuel fabrication time.
 
double GetBlanketFuelFabricationTime ()
 
void SetBlanketRefuellingTime (vector< double > Time)
 Blanket Refuelling Time.
 
int GetBlanketReprocessingIndex ()
 
double GetCurentBlanketRefuellingTime ()
 Current Blanket refuelling time.
 
void DepletedFuelExtractor () override
 Extract depleted fuel from CORE cells to CORE I.S.
 
void BlanketDepletedFuelExtractor ()
 Extract depleted fuel from BLANKET cells to BLANKET I.S.
 
void ReprocessInterimStorage () override
 Reprocess CORE I.S.
 
void BlanketReprocessInterimStorage ()
 Reprocess BLANKET I.S.
 
void AddFreshFuel () override
 Add fresh fuel in "Fresh" CORE cells.
 
void AddFreshBlanketFuel ()
 Add fresh fuel in "Fresh" Blanket cell.
 
void SetExtractionFractionFromBlkRP (int N, int *Zarray, double *Efficiency)
 Set the Depleted Fuel extraction fraction from blanket RP.
 
void SetBlanketFuelForm (int Z, int A, double MolarProp)
 Set the chemical form of the blanket fuel.
 
void BuildStorages () override
 Build Interim &Waste Storage.
 
void PrintStorageMass () override
 print storage masses
 
void InitIndexes () override
 Init storage indexes when starting an evolution from T>0.
 
void PrintIndexes () override
 Print storage indexes (debug method)
 
- Public Member Functions inherited from FuelReprocessing
 FuelReprocessing ()
 Default Constructor.
 
 FuelReprocessing (const FuelReprocessing &m)
 Copy constructor.
 
virtual FuelReprocessingClone ()
 
virtual ~FuelReprocessing ()=default
 Destructor.
 
void AddReprocessing (Material *InMat, Cell *ToCell, Material *EquiliBriumMat=nullptr, double EquilibriumTime=- 1)
 Add Fresh Fuel to a Cell.
 
void EmptyCell (Cell *DepletedCell, double CoolingTime, bool NewInterimStorage=true)
 Extract Depleted Fuel from a Cell.
 
void AddReprocessing (Cell *FromCell, Cell *ToCell, int level=0)
 Replace Fuel from a Cell.
 
virtual void CoreRefuel ()
 Put new fuel in the core.
 
virtual void ContinuousCoreRefuel ()
 Put new fuel in the core continuoulsy. NOT DONE.
 
virtual void StepCoreRefuel ()
 Put new fuel in the core at time step of fReprocessingTime.
 
void SetFissileFertile (int N, int *Zarray)
 Set the Fissile/Fertile elements.
 
void SetExtractionFractionFromReprocessingPlant (int N, int *Zarray, double *Efficiency)
 Set the Depleted Fuel extraction fraction.
 
void SetExtractionFractionFromFuel (int N, int *Zarray, double *Efficiency)
 Set the Fuel extraction fraction.
 
void UseReprocessedStorage ()
 
int GetNumberOfReprocessedStorage ()
 
void SetFreshCellinReprocessedStorageLink (vector< int > Link)
 Set the links between Fresh Cells and Reprocessed Storages.
 
void SetReprocessedStorage2FreshCellLink (vector< int > Link)
 Set the links between Reprocessed Storages and Fresh Cells.
 
void SetRefuellingTime (vector< double > Time)
 Refuelling Time.
 
int GetReprocessingIndex ()
 
double GetCurentRefuellingTime ()
 Current refuelling time if it is discret.
 
void SetFuelFabricationTime (double Time=2 *365.25 *24 *3600)
 Set the fuel fabrication time.
 
double GetFuelFabricationTime ()
 
void SetContinuousReprocessing (bool flag=true)
 Reprocessing is continuous.
 
bool IsContinuousReprocessing ()
 
void SetContinuousReprocessingTimeVector (vector< vector< double > > ContinuousTime)
 set the continuous reprocessing time vector
 
vector< vector< double > > & GetContinuousReprocessingTimeVector ()
 
void SetStorageEvolution (bool flag=true)
 Force the storage evolution.
 
bool IsStorageEvolution ()
 
void SetBuildMCFileBeforeReprocessing (bool build=true)
 Builds MC file just before each refuelling.
 
bool GetBuildMCFileBeforeReprocessing ()
 
void SetMCInputFileNameBeforeReprocessing (string name="post")
 Set the name of post evolution MC file.
 
string GetMCInputFileNameBeforeReprocessing ()
 
void SetFuelForm (int Z, int A, double MolarProp)
 Set the chemical form of the fuel.
 
string PrintMass (double m)
 return a string of mass value+unit
 

Private Attributes

vector< double > fBlkRefuellingTime
 vector of blanket refuelling time
 
int fBlkRefuellingIndex
 The current reprocessing index in the fBlkRefuellingTime vector.
 
vector< int > fZtoExtractFromBlkRP
 vector of Z of nuclei to extract from blanket reprocessed Storage
 
vector< double > fZEfficiencyExtractionFromBlkRP
 vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
 
MaterialfBlkFreshFuel
 the fresh fuel to add to the blanket
 
CellfBlkCell
 The blanket cell.
 
MaterialfBlkEquilibriumFreshFuel
 Fresh fuel material used when T>fBlkEquilibriumTime.
 
double fBlkEquilibriumTime
 Time from which fBlkEquilibriumFreshFuel is used instead of fBlkFreshFuel.
 
TemporalStoragefBlkInterimStorage
 Interim blanket Storage vector.
 
TemporalStoragefFissileFertileRS
 Fissile &Fertile blanket Storage vector.
 
TemporalStoragefMARS
 Minor Act. Reprocessed Storage vector.
 
double fBlkFuelFabricationTime
 time to wait before doing something with blanket MARS
 
ZAIfBlkFuelFormZAI
 The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...)
 
double fBlkFuelFormMolProp
 Molar proportion of the fBlkFuelFormZAI (2 for O2, 1 for C, ...)
 
double fTmpCoolingTime
 This the cooling time of fBlkInterimStorage.
 
double fLastMassExtractedfromBlk
 Last mass extracted from blanket (used only for print)
 
double fLastMassExtractedfromBlkRP
 Last mass extracted from Blanket Reprocessed Storage (used only for print)
 
double fLastMassPutinWasteBlk
 Last mass put in Waste Storage (used only for print)
 
double fInitExtractedAtomsBlk
 The initial number of atoms of the first extracted blanket.
 

Additional Inherited Members

- Protected Attributes inherited from FuelReprocessing
vector< double > fRefuellingTime
 vector of refuelling time
 
int fRefuellingIndex
 The current reprocessing index in the fReprocessingTime vector.
 
vector< Material * > fFreshFuel
 the fresh fuel to add
 
vector< Cell * > fFreshCell
 The cell vector that receive fresh fuel.
 
vector< vector< Cell * > > fChainCell
 The cell vector that exchange fuel.
 
vector< Cell * > fDepletedCell
 The cell vector that will be discharged.
 
vector< Material * > fEquilibriumFreshFuel
 Fresh fuel material used when T>fEquilibriumTime.
 
vector< double > fEquilibriumTime
 Time from which fEquilibriumFreshFueln is used instead of fFreshFuel.
 
vector< TemporalStorage * > fInterimStorage
 Interim Storage vector.
 
vector< TemporalStorage * > fReprocessedStorage
 Reprocessed Storage vector.
 
TemporalStoragefCoreMARS
 Minor Act. Reprocessed Storage from the core.
 
StoragefWasteStorage
 Waste Storage.
 
bool fUseReprocessedStorage
 True to build Reprocessed Storages.
 
bool fEvolvingStorage
 true if the outcore storage (interim &waste) are evolving
 
vector< int > fDP_2_IS
 vector linking Depleted Cell to Interim Storage
 
vector< int > fFC_in_RS
 vector linking Reprocessed Storage to Fresh Cells
 
vector< int > fRS_2_FC
 vector linking Reprocessed Storage to Fresh Cells
 
vector< vector< double > > fContinuousReprocessingTimeVector
 vector of Z and EvolutiveSystem dependant reprocessing time in case of continuous reprocessing
 
bool fContinuousReprocessing
 true for continuous reprocessing
 
bool fBuildMCFileBeforeReprocessing
 must be true if you want to generate the MC file describing your system just before the reprocessing
 
string fMCInputFileNameBeforeReprocessing
 the MC file generated just before the reprocessing will have this name, followed by the last MC run number
 
vector< int > fZFissileFertile
 vector of Z of fissile or fertile nuclei
 
vector< int > fZtoExtractFromFuel
 vector of Z of nuclei to extract when fuel is reprocessed
 
vector< double > fZEfficiencyExtractionFromFuel
 vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
 
vector< int > fZtoExtractFromRP
 vector of Z of nuclei to extract from depleted fuel to reprocess
 
vector< double > fZEfficiencyExtractionFromRP
 vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
 
double fFuelFabricationTime
 time to wait before doing something with reprocessed storage
 
ZAIfFuelFormZAI
 The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...)
 
double fFuelFormMolProp
 Molar proportion of the FuelFormZAI (2 for O2, 1 for C, ...)
 
double fLastMassExtractedfromCore
 Last mass extracted from core (used only for print)
 
double fLastMassExtractedfromRP
 Last mass extracted from Reprocessed Storage (used only for print)
 
double fLastMassPutinWaste
 Last mass put in Waste Storage (used only for print)
 
vector< double > fInitExtractedAtoms
 The initial number of atoms of the first extracted assemblies.
 

Detailed Description

BlanketReprocessing allows Fuel reprocessing in Core and in Blanket during Evolution.

Warning
NOTHING IS DONE FOR CONTINUOUS REPROCESSING.
Remarks
This class is very similar to FuelReprocessing class. Please read its documentation before.

This class is an example of how to used inheritance of FuelReprocessing class ; it is used to reprocess reactor blanket. Only one blanket can be retreated. As in FuelReprocessing, the removed blanket is put in its Interim Storage (I.S.) (in fact, 1 I.S. per blanket refuelling time) for a Cooling period. Then, the content of the Interim storage is sent to either a Waste Storage, to (at least a part) to a Fissile/Fertile storage (which is not used but evolves) and to Minor Actinide Blanket Storage (MARS) that will be recyled. If MA Core storages exist, they will be used as soon as possible, togather with MA Blanket Storage to form the new fresh blanket fuel (and completing with fresh blanket fuel). The extra separation of MA versus Fissile/Fertile is done via FuelReprocessing::SetFissileFertile() method

reprocess_wo_blk.png

Only after a Refabrication period (BlanketReprocessing::SetBlanketFuelFabricationTime()) the MA Blanket storage may be used (recycling).

Remarks
  • Using MureGui, if a long term evolution is done, you may have some memory problems due to large number of storages. To special falg of MureGui can be used to avoid such problem "-skipstorage" which read all in flux cells and the Waste Storage but skip other storage, and a "-start XXX" flag that allows to read [B]DATA_xxx files only from the run number XXX.

See examples/Evolution/Reprocess_blanket.cxx for more detail.

See also
User Guide
Author
PTO
Version
1.0

Constructor & Destructor Documentation

◆ BlanketReprocessing() [1/2]

BlanketReprocessing::BlanketReprocessing ( )

Default Constructor.

◆ BlanketReprocessing() [2/2]

BlanketReprocessing::BlanketReprocessing ( const BlanketReprocessing m)

copy Constructor.

Member Function Documentation

◆ AddFreshBlanketFuel()

void BlanketReprocessing::AddFreshBlanketFuel ( )

Add fresh fuel in "Fresh" Blanket cell.

◆ AddFreshFuel()

void BlanketReprocessing::AddFreshFuel ( )
overridevirtual

Add fresh fuel in "Fresh" CORE cells.

Reimplemented from FuelReprocessing.

◆ BlanketDepletedFuelExtractor()

void BlanketReprocessing::BlanketDepletedFuelExtractor ( )

Extract depleted fuel from BLANKET cells to BLANKET I.S.

◆ BlanketReprocessInterimStorage()

void BlanketReprocessing::BlanketReprocessInterimStorage ( )

Reprocess BLANKET I.S.

◆ BuildStorages()

void BlanketReprocessing::BuildStorages ( )
overridevirtual

Build Interim &Waste Storage.

Build necessary materials &cells for waste storage (call in MURE::Evolution)

Reimplemented from FuelReprocessing.

◆ Clone()

FuelReprocessing * BlanketReprocessing::Clone ( )
inlineoverridevirtual

< Correct way to copy a BlanketReprocessing in case of derivation

Reimplemented from FuelReprocessing.

◆ DepletedFuelExtractor()

void BlanketReprocessing::DepletedFuelExtractor ( )
overridevirtual

Extract depleted fuel from CORE cells to CORE I.S.

Reimplemented from FuelReprocessing.

◆ GetBlanketFuelFabricationTime()

double BlanketReprocessing::GetBlanketFuelFabricationTime ( )
inline

< return blanket refabrication time in second!

◆ GetBlanketReprocessingIndex()

int BlanketReprocessing::GetBlanketReprocessingIndex ( )
inline

< The current index in the fBlkRefuellingTime vector

◆ GetCurentBlanketRefuellingTime()

double BlanketReprocessing::GetCurentBlanketRefuellingTime ( )

Current Blanket refuelling time.

◆ InitIndexes()

void BlanketReprocessing::InitIndexes ( )
overridevirtual

Init storage indexes when starting an evolution from T>0.

Reimplemented from FuelReprocessing.

◆ PrintIndexes()

void BlanketReprocessing::PrintIndexes ( )
overridevirtual

Print storage indexes (debug method)

Reimplemented from FuelReprocessing.

◆ PrintStorageMass()

void BlanketReprocessing::PrintStorageMass ( )
overridevirtual

print storage masses

Reimplemented from FuelReprocessing.

◆ ReprocessInterimStorage()

void BlanketReprocessing::ReprocessInterimStorage ( )
overridevirtual

Reprocess CORE I.S.

Reimplemented from FuelReprocessing.

◆ SetBlanketCell()

void BlanketReprocessing::SetBlanketCell ( Cell blanket,
double  CoolingTime 
)

Define the Blanket Cell.

The depleted fuel of the blanket will be extracted to a Blanket I.S. after a Cooling period.

Parameters
blanket: The cell that will be discharged of old fuel.
CoolingTime: The cooling time before retreating or discharging the Interim Storage.

◆ SetBlanketFreshFuel()

void BlanketReprocessing::SetBlanketFreshFuel ( Material BlanketFreshFuel,
Material EquiliBriumMat = nullptr,
double  EquilibriumTime = - 1 
)

Set Blanket Fresh Fuel.

  • If EquiliBriumMat and EquilibriumTime are not defined, the blanket is filled at each reprocessing time with BlanketFreshFuel material.
  • If EquiliBriumMat and EquilibriumTime are defined, then the blanket cell is filled with BlanketFreshFuel material until reprocessing time > EquilibriumTime ; then, the EquiliBriumMat material is used as fresh fuel.
Parameters
BlanketFreshFuel: The fresh fuel to add.
EquiliBriumMat: The fresh fuel to add if T>=EquilibriumTime.
EquilibriumTime: The time from which EquiliBriumMat will be used.

◆ SetBlanketFuelFabricationTime()

void BlanketReprocessing::SetBlanketFuelFabricationTime ( double  Time = 2 * 365.25 * 24 * 3600)
inline

Set the blanket fuel fabrication time.

The fuel fabrication time is the time to wait before doing something with a Processed Storage. Depleted fuel goes to Interim Storage for a Cooling Time, then it is extract to either Waste Storage, and/or to a Reprocessed Storage ; then one waits a fabrication time before reusing this "new" fuel

Parameters
Time: refabrication time in second [default= 2years].

◆ SetBlanketFuelForm()

void BlanketReprocessing::SetBlanketFuelForm ( int  Z,
int  A,
double  MolarProp 
)

Set the chemical form of the blanket fuel.

When using Reprocessed Storage for refuelling the blanket, one has to know the "chemical" form of the fuel: indeed, if one reprocess MA for example from the depleted fuel, the new fuel made from that must be of the same form than the initial one. If fuel is oxide such as AmO2/NpO2, for each mole of Am, one has to add 2 (the MolarProp param) mol of O (Z=8, A=16).

REM: For metallic fuel, this method has not to be used.

Parameters
Z: Z of the annex chemical element (Z of O for UO2 fuel).
A: A of the annex chemical element (A of O for UO2 fuel).
MolarProp: Molar proportion of the annex chemical element (2 for UO2 fuel).

◆ SetBlanketRefuellingTime()

void BlanketReprocessing::SetBlanketRefuellingTime ( vector< double >  Time)
inline

Blanket Refuelling Time.

Set the time vector at which the blanket refuelling is done. In fact, the real refuelling time Tr will be done just before a MCNP step (at t=T_MCNP[j]); thus the ith refuelling is done at Tr=T_MCNP[j], if T_MCNP[j-1]<fRefuellingTime[i]<=T_MCNP[j] ; defining this refuelling time as a multiple of T_MCNP will assure that Tr is exactly one of the given value of the Time vector parameter.

Parameters
Time: vector of reprocessing time.

◆ SetExtractionFractionFromBlkRP()

void BlanketReprocessing::SetExtractionFractionFromBlkRP ( int  N,
int *  Zarray,
double *  Efficiency 
)

Set the Depleted Fuel extraction fraction from blanket RP.

Depleted Fuel Blanket is (entierely) put in the Blanket I.S. ; after a cooling period, this Blk I.S. is put into the Waste Storage, the Blanket Minor Actinides Storage (MARS), and the Fissile/Fertile Storage. This method allows to defined which elements (and which proportion of them) go to MA and Fis/Fert storage, others are sent to Waste storage. The MARS is used to refill the blanket (after a blanket fuel refabrication time, see the BlanketReprocessing::SetBlanketFuelFabricationTime() method). For example:

int Z[5]={92, 93, 94, 95, 96}; // Z of U, Np, Pu, Am and Cm
// efficiency for U, Np, Pu, Am and Cm
double Efficiency[5]={0.001, 0.01, 0.001, 0.01, 0.01};
MyBlkReprocessing->SetExtractionFractionFromBlkRP(5, Z, Efficiency);

will put 1% of MA and 1 per mille of U/Pu and all other elements in Waste Storage ; the remaining part of U, Pu and MA are sent to MA storage and Fissile/Fertile Storage, according to the FuelReprocessing::SetFissileFertile() method.

Remarks
If Zarray has only one dimension and Zarray[0]=0, then the constant value Efficiency[0] is used for all nuclei.
Parameters
N: size of the 2 following arrays.
Zarray: Array of Z to defined extraction efficiency for this Z isotope.
Efficiency: Array of Efficiency for the extraction (1=100%).

Member Data Documentation

◆ fBlkCell

Cell* BlanketReprocessing::fBlkCell
private

The blanket cell.

◆ fBlkEquilibriumFreshFuel

Material* BlanketReprocessing::fBlkEquilibriumFreshFuel
private

Fresh fuel material used when T>fBlkEquilibriumTime.

◆ fBlkEquilibriumTime

double BlanketReprocessing::fBlkEquilibriumTime
private

Time from which fBlkEquilibriumFreshFuel is used instead of fBlkFreshFuel.

◆ fBlkFreshFuel

Material* BlanketReprocessing::fBlkFreshFuel
private

the fresh fuel to add to the blanket

◆ fBlkFuelFabricationTime

double BlanketReprocessing::fBlkFuelFabricationTime
private

time to wait before doing something with blanket MARS

◆ fBlkFuelFormMolProp

double BlanketReprocessing::fBlkFuelFormMolProp
private

Molar proportion of the fBlkFuelFormZAI (2 for O2, 1 for C, ...)

◆ fBlkFuelFormZAI

ZAI* BlanketReprocessing::fBlkFuelFormZAI
private

The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...)

◆ fBlkInterimStorage

TemporalStorage* BlanketReprocessing::fBlkInterimStorage
private

Interim blanket Storage vector.

◆ fBlkRefuellingIndex

int BlanketReprocessing::fBlkRefuellingIndex
private

The current reprocessing index in the fBlkRefuellingTime vector.

◆ fBlkRefuellingTime

vector< double > BlanketReprocessing::fBlkRefuellingTime
private

vector of blanket refuelling time

◆ fFissileFertileRS

TemporalStorage* BlanketReprocessing::fFissileFertileRS
private

Fissile &Fertile blanket Storage vector.

◆ fInitExtractedAtomsBlk

double BlanketReprocessing::fInitExtractedAtomsBlk
private

The initial number of atoms of the first extracted blanket.

◆ fLastMassExtractedfromBlk

double BlanketReprocessing::fLastMassExtractedfromBlk
private

Last mass extracted from blanket (used only for print)

◆ fLastMassExtractedfromBlkRP

double BlanketReprocessing::fLastMassExtractedfromBlkRP
private

Last mass extracted from Blanket Reprocessed Storage (used only for print)

◆ fLastMassPutinWasteBlk

double BlanketReprocessing::fLastMassPutinWasteBlk
private

Last mass put in Waste Storage (used only for print)

◆ fMARS

TemporalStorage* BlanketReprocessing::fMARS
private

Minor Act. Reprocessed Storage vector.

◆ fTmpCoolingTime

double BlanketReprocessing::fTmpCoolingTime
private

This the cooling time of fBlkInterimStorage.

◆ fZEfficiencyExtractionFromBlkRP

vector< double > BlanketReprocessing::fZEfficiencyExtractionFromBlkRP
private

vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%

◆ fZtoExtractFromBlkRP

vector< int > BlanketReprocessing::fZtoExtractFromBlkRP
private

vector of Z of nuclei to extract from blanket reprocessed Storage


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

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