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.