BlanketReprocessing allows Fuel reprocessing in Core and in Blanket during Evolution. More...
#include <BlanketReprocessing.hxx>
Public Member Functions | |
BlanketReprocessing () | |
Default Constructor. More... | |
BlanketReprocessing (const BlanketReprocessing &m) | |
copy Constructor. More... | |
virtual FuelReprocessing * | Clone () |
Correct way to copy a BlanketReprocessing in case of derivation. More... | |
void | SetBlanketCell (Cell *blanket, double CoolingTime) |
Define the Blanket Cell. More... | |
void | SetBlanketFreshFuel (Material *BlanketFreshFuel, Material *EquiliBriumMat=0, double EquilibriumTime=-1) |
Set Blanket Fresh Fuel. More... | |
void | SetBlanketFuelFabricationTime (double Time=2 *365.25 *24 *3600) |
Set the blanket fuel fabrication time. More... | |
double | GetBlanketFuelFabricationTime () |
return blanket refabrication time in second! More... | |
void | SetBlanketRefuellingTime (vector< double > Time) |
Blanket Refuelling Time. More... | |
int | GetBlanketReprocessingIndex () |
The current index in the fBlkRefuellingTime vector. More... | |
double | GetCurentBlanketRefuellingTime () |
Current Blanket refuelling time. More... | |
void | DepletedFuelExtractor () |
Extract depleted fuel from CORE cells to CORE I.S. More... | |
void | BlanketDepletedFuelExtractor () |
Extract depleted fuel from BLANKET cells to BLANKET I.S. More... | |
void | ReprocessInterimStorage () |
Reprocess CORE I.S. More... | |
void | BlanketReprocessInterimStorage () |
Reprocess BLANKET I.S. More... | |
void | AddFreshFuel () |
Add fresh fuel in "Fresh" CORE cells. More... | |
void | AddFreshBlanketFuel () |
Add fresh fuel in "Fresh" Blanket cell. More... | |
void | SetExtractionFractionFromBlkRP (int N, int *Zarray, double *Efficiency) |
Set the Depleted Fuel extraction fraction from blanket RP. More... | |
void | SetBlanketFuelForm (int Z, int A, double MolarProp) |
Set the chemical form of the blanket fuel. More... | |
void | BuildStorages () |
Build Interim & Waste Storage. More... | |
void | PrintStorageMass () |
print storage masses More... | |
void | InitIndexes () |
Init storage indexes when starting an evolution from T>0. More... | |
void | PrintIndexes () |
Print storage indexes (debug method) More... | |
Public Member Functions inherited from FuelReprocessing | |
FuelReprocessing () | |
Default Constructor. More... | |
FuelReprocessing (const FuelReprocessing &m) | |
Copy constructor. More... | |
virtual | ~FuelReprocessing () |
Destructor. More... | |
void | AddReprocessing (Material *InMat, Cell *ToCell, Material *EquiliBriumMat=0, double EquilibriumTime=-1) |
Add Fresh Fuel to a Cell. More... | |
void | EmptyCell (Cell *DepletedCell, double CoolingTime, bool NewInterimStorage=true) |
Extract Depleted Fuel from a Cell. More... | |
void | AddReprocessing (Cell *FromCell, Cell *ToCell, int level=0) |
Replace Fuel from a Cell. More... | |
virtual void | CoreRefuel () |
Put new fuel in the core. More... | |
virtual void | ContinuousCoreRefuel () |
Put new fuel in the core continuoulsy. NOT DONE. More... | |
virtual void | StepCoreRefuel () |
Put new fuel in the core at time step of fReprocessingTime. More... | |
void | SetFissileFertile (int N, int *Zarray) |
Set the Fissile/Fertile elements. More... | |
void | SetExtractionFractionFromReprocessingPlant (int N, int *Zarray, double *Efficiency) |
Set the Depleted Fuel extraction fraction. More... | |
void | SetExtractionFractionFromFuel (int N, int *Zarray, double *Efficiency) |
Set the Fuel extraction fraction. More... | |
void | UseReprocessedStorage () |
Build n Reprocessed Storage. More... | |
int | GetNumberOfReprocessedStorage () |
return the number of Reprocessed Storage More... | |
void | SetFreshCellinReprocessedStorageLink (vector< int > Link) |
Set the links between Fresh Cells and Reprocessed Storages. More... | |
void | SetReprocessedStorage2FreshCellLink (vector< int > Link) |
Set the links between Reprocessed Storages and Fresh Cells. More... | |
void | SetRefuellingTime (vector< double > Time) |
Refuelling Time. More... | |
int | GetReprocessingIndex () |
The current index in the fRefuellingTime vector. More... | |
double | GetCurentRefuellingTime () |
Current refuelling time if it is discret. More... | |
void | SetFuelFabricationTime (double Time=2 *365.25 *24 *3600) |
Set the fuel fabrication time. More... | |
double | GetFuelFabricationTime () |
void | SetContinuousReprocessing (bool flag=true) |
Reprocessing is continuous. More... | |
bool | IsContinuousReprocessing () |
true for continuous reprocessing More... | |
void | SetContinuousReprocessingTimeVector (vector< vector< double > > ContinuousTime) |
set the continuous reprocessing time vector More... | |
vector< vector< double > > & | GetContinuousReprocessingTimeVector () |
return the continuous reprocessing time vector More... | |
void | SetStorageEvolution (bool flag=true) |
Force the storage evolution. More... | |
bool | IsStorageEvolution () |
return true when storages evolved More... | |
void | SetBuildMCNPFileBeforeReprocessing (bool build=true) |
Builds MCNP file just before each refuelling. More... | |
bool | GetBuildMCNPFileBeforeReprocessing () |
void | SetMCNPInputFileNameBeforeReprocessing (string name="post") |
Set the name of post evolution MCNP file. More... | |
string | GetMCNPInputFileNameBeforeReprocessing () |
return the name of post evolution MCNP file. More... | |
void | SetFuelForm (int Z, int A, double MolarProp) |
Set the chemical form of the fuel. More... | |
string | PrintMass (double m) |
return a string of mass value+unit More... | |
Private Attributes | |
vector< double > | fBlkRefuellingTime |
vector of blanket refuelling time More... | |
int | fBlkRefuellingIndex |
The current reprocessing index in the fBlkRefuellingTime vector. More... | |
vector< int > | fZtoExtractFromBlkRP |
vector of Z of nuclei to extract from blanket reprocessed Storage More... | |
vector< double > | fZEfficiencyExtractionFromBlkRP |
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0% More... | |
Material * | fBlkFreshFuel |
the fresh fuel to add to the blanket More... | |
Cell * | fBlkCell |
The blanket cell. More... | |
Material * | fBlkEquilibriumFreshFuel |
Fresh fuel material used when T>fBlkEquilibriumTime. More... | |
double | fBlkEquilibriumTime |
Time from which fBlkEquilibriumFreshFuel is used instead of fBlkFreshFuel. More... | |
TemporalStorage * | fBlkInterimStorage |
Interim blanket Storage vector. More... | |
TemporalStorage * | fFissileFertileRS |
Fissile & Fertile blanket Storage vector. More... | |
TemporalStorage * | fMARS |
Minor Act. Reprocessed Storage vector. More... | |
double | fBlkFuelFabricationTime |
time to wait before doing something with blanket MARS More... | |
ZAI * | fBlkFuelFormZAI |
The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...) More... | |
double | fBlkFuelFormMolProp |
Molar proportion of the fBlkFuelFormZAI (2 for O2, 1 for C, ...) More... | |
double | fTmpCoolingTime |
This the cooling time of fBlkInterimStorage. More... | |
double | fLastMassExtractedfromBlk |
Last mass extracted from blanket (used only for print) More... | |
double | fLastMassExtractedfromBlkRP |
Last mass extracted from Blanket Reprocessed Storage (used only for print) More... | |
double | fLastMassPutinWasteBlk |
Last mass put in Waste Storage (used only for print) More... | |
double | fInitExtractedAtomsBlk |
The initial number of atoms of the first extracted blanket. More... | |
Additional Inherited Members | |
Protected Attributes inherited from FuelReprocessing | |
vector< double > | fRefuellingTime |
vector of refuelling time More... | |
int | fRefuellingIndex |
The current reprocessing index in the fReprocessingTime vector. More... | |
vector< Material * > | fFreshFuel |
the fresh fuel to add More... | |
vector< Cell * > | fFreshCell |
The cell vector that receive fresh fuel. More... | |
vector< vector< Cell * > > | fChainCell |
The cell vector that exchange fuel. More... | |
vector< Cell * > | fDepletedCell |
The cell vector that will be discharged. More... | |
vector< Material * > | fEquilibriumFreshFuel |
Fresh fuel material used when T>fEquilibriumTime. More... | |
vector< double > | fEquilibriumTime |
Time from which fEquilibriumFreshFueln is used instead of fFreshFuel. More... | |
vector< TemporalStorage * > | fInterimStorage |
Interim Storage vector. More... | |
vector< TemporalStorage * > | fReprocessedStorage |
Reprocessed Storage vector. More... | |
TemporalStorage * | fCoreMARS |
Minor Act. Reprocessed Storage from the core. More... | |
Storage * | fWasteStorage |
Waste Storage. More... | |
vector< int > | fDP_2_IS |
vector linking Depleted Cell to Interim Storage More... | |
vector< int > | fFC_in_RS |
vector linking Reprocessed Storage to Fresh Cells More... | |
vector< int > | fRS_2_FC |
vector linking Reprocessed Storage to Fresh Cells More... | |
bool | fUseReprocessedStorage |
True to build Reprocessed Storages. More... | |
vector< vector< double > > | fContinuousReprocessingTimeVector |
vector of Z and EvolutiveSystem dependant reprocessing time in case of continuous reprocessing More... | |
bool | fContinuousReprocessing |
true for continuous reprocessing More... | |
bool | fBuildMCNPFileBeforeReprocessing |
must be true if you want to generate the MCNP file describing your system just before the reprocessing More... | |
string | fMCNPInputFileNameBeforeReprocessing |
the MCNP file generated just before the reprocessing will have this name, followed by the last MCNP run number More... | |
vector< int > | fZFissileFertile |
vector of Z of fissile or fertile nuclei More... | |
vector< int > | fZtoExtractFromFuel |
vector of Z of nuclei to extract when fuel is reprocessed More... | |
vector< double > | fZEfficiencyExtractionFromFuel |
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0% More... | |
vector< int > | fZtoExtractFromRP |
vector of Z of nuclei to extract from depleted fuel to reprocess More... | |
vector< double > | fZEfficiencyExtractionFromRP |
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0% More... | |
double | fFuelFabricationTime |
time to wait before doing something with reprocessed storage More... | |
bool | fEvolvingStorage |
true if the outcore storage (interim & waste) are evolving More... | |
ZAI * | fFuelFormZAI |
The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...) More... | |
double | fFuelFormMolProp |
Molar proportion of the FuelFormZAI (2 for O2, 1 for C, ...) More... | |
double | fLastMassExtractedfromCore |
Last mass extracted from core (used only for print) More... | |
double | fLastMassExtractedfromRP |
Last mass extracted from Reprocessed Storage (used only for print) More... | |
double | fLastMassPutinWaste |
Last mass put in Waste Storage (used only for print) More... | |
vector< double > | fInitExtractedAtoms |
The initial number of atoms of the first extracted assemblies. More... | |
BlanketReprocessing allows Fuel reprocessing in Core and in Blanket during Evolution.
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
Only after a Refabrication period (BlanketReprocessing::SetBlanketFuelFabricationTime()) the MA Blanket storage may be used (recycling).
See examples/Evolution/Reprocess_blanket.cxx for more detail.
BlanketReprocessing::BlanketReprocessing | ( | ) |
Default Constructor.
BlanketReprocessing::BlanketReprocessing | ( | const BlanketReprocessing & | m | ) |
copy Constructor.
void BlanketReprocessing::AddFreshBlanketFuel | ( | ) |
Add fresh fuel in "Fresh" Blanket cell.
|
virtual |
Add fresh fuel in "Fresh" CORE cells.
Reimplemented from FuelReprocessing.
void BlanketReprocessing::BlanketDepletedFuelExtractor | ( | ) |
Extract depleted fuel from BLANKET cells to BLANKET I.S.
void BlanketReprocessing::BlanketReprocessInterimStorage | ( | ) |
Reprocess BLANKET I.S.
|
virtual |
Build Interim & Waste Storage.
Build necessary materials & cells for waste storage (call in MURE::Evolution)
Reimplemented from FuelReprocessing.
|
inlinevirtual |
Correct way to copy a BlanketReprocessing in case of derivation.
Reimplemented from FuelReprocessing.
|
virtual |
Extract depleted fuel from CORE cells to CORE I.S.
Reimplemented from FuelReprocessing.
|
inline |
return blanket refabrication time in second!
|
inline |
The current index in the fBlkRefuellingTime vector.
double BlanketReprocessing::GetCurentBlanketRefuellingTime | ( | ) |
Current Blanket refuelling time.
|
virtual |
Init storage indexes when starting an evolution from T>0.
Reimplemented from FuelReprocessing.
|
virtual |
Print storage indexes (debug method)
Reimplemented from FuelReprocessing.
|
virtual |
print storage masses
Reimplemented from FuelReprocessing.
|
virtual |
Reprocess CORE I.S.
Reimplemented from FuelReprocessing.
void BlanketReprocessing::SetBlanketCell | ( | Cell * | blanket, |
double | CoolingTime | ||
) |
void BlanketReprocessing::SetBlanketFreshFuel | ( | Material * | BlanketFreshFuel, |
Material * | EquiliBriumMat = 0 , |
||
double | EquilibriumTime = -1 |
||
) |
Set Blanket Fresh Fuel.
EquiliBriumMat
and EquilibriumTime
are not defined, the blanket is filled at each reprocessing time with BlanketFreshFuel
material.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.BlanketFreshFuel | : The fresh fuel to add. |
EquiliBriumMat | : The fresh fuel to add if T>=EquilibriumTime. |
EquilibriumTime | : The time from which EquiliBriumMat will be used. |
|
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
Time | : refabrication time in second [default= 2years]. |
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.
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). |
|
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.
Time | : vector of reprocessing time. |
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:
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.
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%). |
|
private |
The blanket cell.
|
private |
Fresh fuel material used when T>fBlkEquilibriumTime.
|
private |
Time from which fBlkEquilibriumFreshFuel is used instead of fBlkFreshFuel.
|
private |
the fresh fuel to add to the blanket
|
private |
time to wait before doing something with blanket MARS
|
private |
Molar proportion of the fBlkFuelFormZAI (2 for O2, 1 for C, ...)
|
private |
The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...)
|
private |
Interim blanket Storage vector.
|
private |
The current reprocessing index in the fBlkRefuellingTime vector.
|
private |
vector of blanket refuelling time
|
private |
Fissile & Fertile blanket Storage vector.
|
private |
The initial number of atoms of the first extracted blanket.
|
private |
Last mass extracted from blanket (used only for print)
|
private |
Last mass extracted from Blanket Reprocessed Storage (used only for print)
|
private |
Last mass put in Waste Storage (used only for print)
|
private |
Minor Act. Reprocessed Storage vector.
|
private |
This the cooling time of fBlkInterimStorage.
|
private |
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
|
private |
vector of Z of nuclei to extract from blanket reprocessed Storage