voidSetDecayDataBank(DecayDataBank*decayDB){fDecayDataBase=decayDB;}//! Set the Decay DataBank
voidSetFiFo(boolbval=true){if(bval)fStorageManagement=kpFiFo;elsefStorageManagement=kpLiFo;}//!< Set the chronological priority (true for chronological, false instead).Equivalent to SetStorageManagement(kpFiFo) or SetStorageManagement(kpLiFo)
voidSetStorageManagement(StorageManagementSM){fStorageManagement=SM;}//!< The storage management : either kpFiFo, kpLiFo , kpMix or kpRand
voidSetFiFo(boolbval=true){if(bval)fStorageManagement=kpFiFo;elsefStorageManagement=kpLiFo;}//!< Set the chronological priority (true for chronological, false instead).Equivalent to SetStorageManagement(kpFiFo) or SetStorageManagement(kpLiFo)
voidSetStorageManagement(StorageManagementSM){fStorageManagement=SM;}//!< The storage management : either kpFiFo, kpLiFo , kpMix or kpRand
voidSetSubstitutionMaterialFromIV(stringkeyword,IsotopicVectorSubstitutionIV)//!< If the construction fails : it creates a substitution material according to the IV defined by the user
voidSetSubstitutionFuel(EvolutionDatafuel);//!< To use a substitution fuel if the fabrication fail (not enough material in stock)
voidSetSubstitutionFuel(EvolutionDatafuel,boolReplaceTheStock=false);//!< To use a substitution fuel if the fabrication fail (not enough material in stock)
voidSetSubstitutionFissile(IsotopicVectorIV);//!< To use a substitution fissile if the fabrication fail (not enough material in stock) the composition of the fissile is given normalize to 1 by IV.
voidSetSeparationManagement(boolbval=true){fIsSeparationManagement=bval;}//!< Set the separation managmeent for the fabrication plant
voidSetSeparationManagement(boolbval=true){fIsSeparationManagement=bval;}//!< Set the separation managmeent for the fabrication plant
voidAddReactor(intreactorid,doublecreationtime)
{fReactorNextStep.insert(pair<int,cSecond>(reactorid,(cSecond)creationtime-GetCycleTime()));}//!< Add a new reactor to be filled with the fresh fuel build by the FabricationPlant
{fReactorNextStep.insert(pair<int,cSecond>(reactorid,(cSecond)creationtime-GetCycleTime()));}//!< Add a new reactor to be filled with the fresh fuel build by the FabricationPlant
voidSetReUsableStorage(Storage*store){fReUsable=store;fIsReusable=true;}//!< Set the Storage where all the separated matetial not used in the fabrication process will be sent. (if not present it goes to WASTE)
#ifndef __CINT__
voidSetReUsableStorage(Storage*store){fReUsable=store;fIsReusable=true;}//!< Set the Storage where all the separated matetial not used in the fabrication process will be sent. (if not present it goes to WASTE)
#endif
usingCLASSFacility::SetName;
//@}
#ifndef __CINT__
voidAddStorage(stringkeyword,Storage*Stock){fStorage[keyword].push_back(Stock);};//!< Fill the storage vector for a list
voidAddInfiniteStorage(stringkeyword);//!< Creates an infinite stock of this material according to the list defined in the EqM
#endif
//********* Get Method *********//
/*!
...
...
@@ -137,25 +138,19 @@ public :
//@{
#ifndef __CINT__
vector<Storage*>GetFissileStorage(){returnfFissileStorage;}//!< Return the Pointer to the fissile Storage
vector<Storage*>GetFertileStorage(){returnfFertileStorage;}//!< Return the Pointer to the fertile Storage
map<string,vector<Storage*>>GetAllStorage(){returnfStorage;}//!< Return the map containing all the storage vectors (useful in CLASS Reactor to check list consistency)
vector<Storage*>GetStorage(stringkeyword){returnfStorage[keyword];}//!< Return the Pointer to Storage associated to a StreamList
EvolutionDataGetReactorEvolutionDB(intReactorId);//!< Return the EvolutionData of Reactor ReactorId
IsotopicVectorGetDecay(IsotopicVectorisotopicvector,cSecondt);//!< Get IsotopicVector Decay at time t
EvolutionDataGetReactorEvolutionDB(intReactorId);//!< Return the EvolutionData of Reactor ReactorId
#endif
IsotopicVectorGetDecay(IsotopicVectorisotopicvector,cSecondt);//!< Get IsotopicVector Decay at time t
voidSetSeparartionEfficiencyIV(ZAIzai,doublefactor);//!< Set the extraction efficiency of zai to factor (0<=factor<=1)
voidEvolution(cSecondt);//!< Perform the FabricationPlant evolution
voidDumpStock(map<string,vector<double>>LambdaArray);//!< Update the Stock status after building process
voidTakeReactorFuel(intReactorId);//!< Remove the fuel of reactor ReactorId from stock
voidUpdateInsideIV();
voidSetSeparartionEfficiencyIV(ZAIzai,doublefactor);//!< Set the extraction efficiency of zai to factor (0<= factor<= 1)
voidEvolution(cSecondt);//!< Perform the FabricationPlant evolution
voidDumpStock(vector<double>lambdaArray);//!< Update the Stock status after building process
voidTakeReactorFuel(intReactorId);//!< Remove the fuel of reactor ReactorId from stock
voidUpdateInsideIV();
IsotopicVectorBuildFuelFromEqModel(vector<double>LambdaArray);//!<Build the fresh fuel for the reactor according the results of the EquivalenceModel (@see EquivalenceModel)
voidBuildFissileArray();//!< virtualy extract fissile nuclei from Storage according EquivalenceModel fFissileList and make it virtually decay FabricationTime
voidBuildFertileArray();//!< virtualy extract fertile nuclei from Storage according EquivalenceModel fFertileList and make it virtually decay FabricationTime
IsotopicVectorBuildFuelFromEqModel(map<string,vector<double>>LambdaArray);//!<Build the fresh fuel for the reactor according the results of the EquivalenceModel (@see EquivalenceModel)
voidBuildArray(intReactorId);//!< virtualy extract fissile nuclei from Storage according EquivalenceModel fStreamList and make it virtually decay FabricationTime
#ifndef __CINT__
voidBuildFuelForReactor(intReactorId,cSecondt);//!< Build a fuel for the reactor ReactorId
...
...
@@ -207,40 +198,38 @@ protected:
StorageManagementfStorageManagement;//!< The storage management : either kpFiFo, kpLiFo , kpMix or kpRand
StorageManagementfStorageManagement;//!< The storage management : either kpFiFo, kpLiFo , kpMix or kpRand
boolfSubstitutionFuel;//!< true if a substitution fuel as been set
boolfSubstitutionFissile;//!< true if a substitution fissile as been set
boolfIsReplaceFissileStock;//!< If there is not enough fissile: true all the fissile comes from an infinite stock; false: just the missing Pu quantity comes from this infinite stock
boolfSubstitutionFuel;//!< True if a substitution fuel as been set
voidFabricationPlantEvolution(cSecondt);//!< Deal the FabricationPlant evolution
voidResetArrays();//!< empty the fFertileArray and fFissileArray
voidFabricationPlantEvolution(cSecondt);//!< Deal the FabricationPlant evolution
voidResetArrays();//!< Empty Arrays
#ifndef __CINT__
vector<Storage*>fFissileStorage;//!< Pointer to the Storage used to get the fissile part of the fuel
vector<IsotopicVector>fFissileArray;//!< The vector of isotopicVector use as fissile material
vector<cSecond>fFissileArrayTime;//!< Time when a IsotopicVector arrives in its storage
vector<pair<int,int>>fFissileArrayAdress;
IsotopicVectorfFissileList;//!< The list of fissile ZAI to consider
vector<Storage*>fFertileStorage;//!< Pointer to the Storage used to get the fertile part of the fuel
vector<IsotopicVector>fFertileArray;//!< The vector of isotopicVector used as fissile material
vector<cSecond>fFertileArrayTime;//!< Time when a IsotopicVector arrives in its storage
map<string,IsotopicVector>fStreamList;//!< contains all lists of zai needed to build a fuel (example : 2 -> fissileList+fertileList)
//!< each list is identified by a keyword (example : -> "Fissil" & "Fertil")
map<string,vector<Storage*>>fStorage;//!< Pointer to the Storages defined for each list
map<string,vector<IsotopicVector>>fStreamArray;//!< The vector of isotopicVector of each material and each stock
map<string,vector<cSecond>>fStreamArrayTime;//!< Time when a IsotopicVector arrives in its storage