EvolutionControl allows interactions with the evolution. More...
#include <EvolutionControl.hxx>
Public Member Functions | |
EvolutionControl () | |
Default Constructor. More... | |
EvolutionControl (const EvolutionControl &ev) | |
Copy constructor. More... | |
virtual EvolutionControl * | Clone () |
Correct way to copy a EvolutionControl in case of derivation. More... | |
virtual | ~EvolutionControl () |
destructor More... | |
Methods directly called by MURE to interact with evolution | |
virtual void | ControlAtEachMCNPStep () |
control at each MCNP step (just after a MCNP run) More... | |
virtual void | ControlAtEachRKStep () |
control at each RK step (just before a RK step) More... | |
virtual void | ControlBeforeMCNPStep () |
control at each MCNP step (just before a MCNP run) More... | |
virtual void | ControlAfterEndOfRKIntegration () |
control at the end of the RK integration, just before an other 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... | |
Evolution Condition methods | |
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... | |
FuelReprocessing * | GetFuelReprocessing () |
get the FuelReprocessing More... | |
Safety related methods | |
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... | |
Reaction rates and keff estimation methods | |
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... | |
Miscellaneous methods | |
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... | |
Protected Member Functions | |
virtual void | InitVector () |
build vector used in fits full of 0. More... | |
Protected Attributes | |
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... | |
FuelReprocessing * | fFuelReprocessing |
the FuelReprocessing More... | |
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::ControlAtEachMCNPStep() and EvolutionControl::ControlAtEachRKStep().
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.
|
inlinevirtual |
destructor
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
inlinevirtual |
Correct way to copy a EvolutionControl in case of derivation.
Reimplemented in EvolutionWrapper, InLineReprocessing, RodEvolutionControl, FissileEvolutionControl, HNEvolutionControl, and PoisonEvolutionControl.
|
virtual |
control at the end of the RK integration, just before an other MCNP run.
Reimplemented in EvolutionWrapper, InLineReprocessing, RodEvolutionControl, FissileEvolutionControl, HNEvolutionControl, and PoisonEvolutionControl.
|
virtual |
control at each MCNP step (just after a MCNP run)
Reimplemented in EvolutionWrapper, InLineReprocessing, RodEvolutionControl, FissileEvolutionControl, HNEvolutionControl, and PoisonEvolutionControl.
|
virtual |
control at each RK step (just before a RK step)
Reimplemented in EvolutionWrapper, InLineReprocessing, RodEvolutionControl, FissileEvolutionControl, HNEvolutionControl, and PoisonEvolutionControl.
|
virtual |
control at each MCNP step (just before a MCNP run)
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
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 & | LastMCNPRunNumber | ||
) |
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. |
LastMCNPRunNumber | : value of the last MCNP 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 MCNP run is performed
|
inline |
return the wanted Heavy Nucleus proportion
|
protectedvirtual |
build vector used in fits full of 0.
Reimplemented in RodEvolutionControl, and PoisonEvolutionControl.
|
inline |
return whether the power is kept constant or not
|
inlinevirtual |
Abstract method ; to be overlaoded.
void EvolutionControl::PrintKeffWarning | ( | ) |
Print Keff estimation warnings.
If abs(MCNP Keff - Estimated Keff)>3*MCNP_Keff_sigma) the time, the MCNP run number, the difference and the 3 sigma are printed.
void EvolutionControl::RunMCNPCriticality | ( | string | FileName | ) |
Run MCNP only for a Kcode (no tally)
|
inline |
say whether the power is kept constant or not
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
inline |
add the FuelReprocessing
|
inline |
set keff control to keep keff at its initial value. (tang)
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
inlinevirtual |
Abstract method ; to be overlaoded.
|
inlinevirtual |
Abstract method ; to be overlaoded.
void EvolutionControl::SetTimeCutting | ( | vector< double > | T | ) |
Set Time at which MCNP run is performed.
|
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 MCNP keff
|
protected |
|Estimate keff - Mcnp Keff|
|
protected |
The MCNP run number of the warning.
|
protected |
Times at which estimate keff differs from MCNP keff at 3sigma.
|
protected |
for keff control.
|
protected |
vector of last MCNP run's global total absorption rate.
|
protected |
vector of last MCNP run global Absorption rate (-2) error
|
protected |
vector of last MCNP run's global fission rate error.
|
protected |
vector of last MCNP run Keff error
|
protected |
vector of last MCNP run's global nu*fission rate error
|
protected |
vector of last MCNP run's global fission rate.
|
protected |
vector of last MCNP run Keff
|
protected |
vector of last MCNP run's global nu*fission rate.
|
protected |
Time at which MCNP run is performed.
|
protected |
vector of last MCNP run time (for fits)
|
protected |
The previous MCNP 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.