MURE
|
EvolutionControl allows interactions with the evolution. More...
#include <EvolutionControl.hxx>
Public Member Functions | |
EvolutionControl () | |
Default Constructor. | |
EvolutionControl (const EvolutionControl &ev) | |
Copy constructor. | |
virtual EvolutionControl * | Clone () |
virtual | ~EvolutionControl () |
destructor | |
Methods directly called by MURE to interact with evolution | |
virtual void | ControlBeforeFirstMCRun () |
virtual void | ControlAfterRestart (int RestartRun) |
control at the very beginning of the evolution, before any MC run | |
virtual void | ControlAfterEachMCRun () |
when restart from existing (B)DATA files, call this method just after reading files | |
virtual void | ControlBeforeEachSubStep () |
Control just before each sub-step in an Evolution Step. | |
virtual void | ControlAfterEachEvolutionStep () |
Control after the last CRAM/RK sub-step of an Evolution Step. | |
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 () |
Evolution Condition methods | |
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) |
FuelReprocessing * | GetFuelReprocessing () |
Safety related methods | |
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) | |
Reaction rates and keff estimation methods | |
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. | |
Miscellaneous methods | |
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 | |
FuelReprocessing * | fFuelReprocessing |
the FuelReprocessing | |
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. | |
virtual void | InitVector () |
build vector used in fits full of 0. | |
EvolutionControl allows interactions with the evolution.
A list of usefull methods are provided to control evolution. The control only acts through the 2 main methods EvolutionControl::ControlAfterEachMCRun() and EvolutionControl::ControlBeforeEachSubStep().
To implement your own evolution control, you have to make your onw class with inheritance mechanism in which YOU ABSOLUTELY NEED TO DEFINE THE EvolutionControl *Clone() method!!!
EvolutionControl::EvolutionControl | ( | ) |
Default Constructor.
By default the tally normalization factor is <0. This mean that the power will be used to normalized tallies. The Constant power is assumed and the wanted Keff is set to 1.
EvolutionControl::EvolutionControl | ( | const EvolutionControl & | ev | ) |
Copy constructor.
|
virtual |
destructor
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inlinevirtual |
< Correct way to copy a EvolutionControl in case of derivation
Reimplemented in EvolutionWrapper, FissileEvolutionControl, HNEvolutionControl, InLineReprocessing, PoisonEvolutionControl, and RodEvolutionControl.
|
virtual |
Control after the last CRAM/RK sub-step of an Evolution Step.
This method is called just before the next MC run after the end of an Evolution Step. In this method, a FuelReprocessing::CoreRefuel is performed if a NOT continuous fuel reprocessing has been been set. Just before this, (B)DATA_b files are writen in order to see the impact of the core refuel.
Reimplemented in EvolutionWrapper, FissileEvolutionControl, HNEvolutionControl, InLineReprocessing, and RodEvolutionControl.
|
virtual |
when restart from existing (B)DATA files, call this method just after reading files
Control just after each MC run.
In this method, the Tally Normalization Factor is upated if the power is kept constant, Keff data are writen to files (for post-treatment), current "r" file from MCNP is removed (only for MCNP run) if this has been set to the (MCNP) ConnectorPlugin.
Reimplemented in EvolutionWrapper, FissileEvolutionControl, InLineReprocessing, PoisonEvolutionControl, and RodEvolutionControl.
|
inlinevirtual |
|
inlinevirtual |
control at the very beginning of the evolution, before any MC run
|
virtual |
Control just before each sub-step in an Evolution Step.
In this method, the Tally Normalization Factor is upated if the power is kept constant, a Fit of TallyNormallizationFactor is done if this has been set in EvolutionSlover and a FuelReprocessing::CoreRefuel is performed if a continuous fuel reprocessing has been been set.
Reimplemented in EvolutionWrapper, InLineReprocessing, PoisonEvolutionControl, and RodEvolutionControl.
|
inlinevirtual |
|
inlinevirtual |
Abstract method ; to be overloaded.
|
virtual |
Extrapolation of Keff on the next step from a linear fit.
|
virtual |
Extrapolation of reaction rates on the next step from a linear fit.
Reimplemented in FissileEvolutionControl, and PoisonEvolutionControl.
|
virtual |
Find the slope of Aborption base on previous run (fit)
|
virtual |
Find the slope of Fission base on previous run (fit)
|
virtual |
Find the slope of Keff base on previous run (fit)
void EvolutionControl::FindNextCoefs | ( | double | value, |
vector< double > & | V, | ||
double & | Slope, | ||
double & | Intersept, | ||
int & | LastMCRunNumber | ||
) |
Fit a vector and return the fitted parameters.
The value (at time T) is added to the vector V and a time linear fit is performed to find the slope and intersept
value | : the value added to the vector V to fit |
V | : the vector to fit |
Slope | : output only: the slope of the linear fit |
Intersept | : output only: the intersept of the linear fit. |
LastMCRunNumber | : value of the last MC number to avoid to used 2 time the same value in case of multi call |
|
virtual |
Find the slope of Fission*nu base on previous run (fit)
|
inline |
< get the FuelReprocessing
|
inline |
< returns Time at which MC run is performed
|
inline |
< return the wanted Heavy Nucleus proportion
|
protectedvirtual |
build vector used in fits full of 0.
Reimplemented in PoisonEvolutionControl, and RodEvolutionControl.
|
inline |
< return whether the power is kept constant or not
|
inlinevirtual |
Abstract method ; to be overloaded.
void EvolutionControl::PrintKeffWarning | ( | ) |
Print Keff estimation warnings.
If abs(MC Keff - Estimated Keff)>3*MC_Keff_sigma) the time, the MC run number, the difference and the 3 sigma are printed.
void EvolutionControl::RunMCCriticality | ( | string | FileName | ) |
Run MC only for a Kcode (no tally)
|
inline |
< say whether the power is kept constant or not
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inline |
< add the FuelReprocessing
|
inline |
< set keff control to keep keff at its initial value. (tang)
void EvolutionControl::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)
Set Time at which MC run is performed
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inlinevirtual |
Abstract method ; to be overloaded.
|
inline |
< set the wanted Heavy Nucleus proportion
|
inline |
< set the wanted keff value
|
inlinevirtual |
Write poison/fissile proportions etc.
Reimplemented in FissileEvolutionControl, and PoisonEvolutionControl.
|
virtual |
Write absorpstion, fission, ... rates in ABS, FISS, ... files.
Reimplemented in PoisonEvolutionControl.
|
protected |
whether or not keep a constant power
|
protected |
Absorption intercept for the extrapolation.
|
protected |
slope to find extrapolated Absorption value.
|
protected |
intersept of linear fit of the fission rate.
|
protected |
slope of linear fit of the fission rate.
|
protected |
intersept to find the Keff extrapolation
|
protected |
slope to find the Keff extrapolation
|
protected |
intersept of linear fit of the nu*fission rate.
|
protected |
slope of linear fit of the nu*fission rate.
|
protected |
the FuelReprocessing
|
protected |
3sigma on MC keff
|
protected |
|Estimate keff - Mcnp Keff|
|
protected |
The MC run number of the warning.
|
protected |
Times at which estimate keff differs from MC keff at 3sigma.
|
protected |
for keff control.
|
protected |
vector of last MC run's global total absorption rate.
|
protected |
vector of last MC run global Absorption rate (-2) error
|
protected |
vector of last MC run's global fission rate error.
|
protected |
vector of last MC run Keff error
|
protected |
vector of last MC run's global nu*fission rate error
|
protected |
vector of last MC run's global fission rate.
|
protected |
vector of last MC run Keff
|
protected |
vector of last MC run's global nu*fission rate.
|
protected |
Time at which MC run is performed.
|
protected |
vector of last MC run time (for fits)
|
protected |
The previous MC keff result.
|
protected |
sum of all (n, gamma) reaction in a cell
|
protected |
sum of all (n, fission) reaction in a cell
|
protected |
sum of all (n, 2n) reaction in a cell
|
protected |
the Tally normalization Factor
|
protected |
The wanted heavy nuclide proportion.
|
protected |
The wanted Keff of the problem.