MURE
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RodEvolutionControl Class Reference

EvolutionControl descendant allowing control via control rod insertion. More...

#include <RodEvolutionControl.hxx>

Inheritance diagram for RodEvolutionControl:
EvolutionControl

Public Member Functions

 RodEvolutionControl ()
 Default Constructor.
 
 RodEvolutionControl (const RodEvolutionControl &ev)
 Copy constructor.
 
RodEvolutionControlClone () override
 
 ~RodEvolutionControl () override=default
 destructor
 
void ControlAfterEachMCRun () override
 control at each MC step (just after a MC run)
 
void ControlBeforeEachSubStep () override
 control at each CRAM/RK step (just before a sub-step)
 
void ControlAfterEachEvolutionStep () override
 control at the end of the CRAM/RK integration, just before an other MC run.
 
void FindNextControlRodPosition ()
 Find control rod position.
 
void FindNextCoefs (double value, vector< double > &V, double &Slope, double &Intersept, int &LastMCRunNumber)
 
void FindControlRodWorthParameters (double H, double keff_x0, double keff_xH, double keff_xH4)
 Find control rod worth.
 
double RodDifferentialWorth (double x)
 Give the control rod differential worth.
 
double RodWorth (double x)
 Give the control rod worth.
 
double IntegrateRodWorth (double a, double b)
 Integral of rod worth.
 
bool Dichotom (double DeltaRho, double &FinalPos)
 returns the rod position to obtain a Delta rho
 
void FindRodWorthWeigthSlope (double CurrentWorth)
 fit the rod worth (no more used)
 
- Public Member Functions inherited from EvolutionControl
 EvolutionControl ()
 Default Constructor.
 
 EvolutionControl (const EvolutionControl &ev)
 Copy constructor.
 
virtual EvolutionControlClone ()
 
virtual ~EvolutionControl ()
 destructor
 
virtual void ControlBeforeFirstMCRun ()
 
virtual void ControlAfterRestart (int RestartRun)
 control at the very beginning of the evolution, before any MC run
 
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 ()
 
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)
 
FuelReprocessingGetFuelReprocessing ()
 
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)
 
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.
 
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.
 

Protected Member Functions

void InitVector () override
 build vector used in fits full of 0.
 
- Protected Member Functions inherited from EvolutionControl

Protected Attributes

double fRodH
 The total height of the control rod.
 
double fRho0
 The reactivity w/o control rod insert.
 
double fRho_rod_cte
 The reactivity coef for the linear part of the reactivity formula.
 
double fRho_rod_sin
 The reactivity coef for the sinus part of the reactivity formula.
 
double fRodLength
 The lenght of the control rod.
 
int fRodNormalMove
 +1 if the rod go from top to bottom or from left to right, -1 else
 
int fRodAxis
 0=x, 1=y, 2=z
 
double fOldDeltaRho
 The delta rho correction (control rod)
 
double fDLength
 The control rod variation length.
 
vector< double > fGlobalWorth
 the worth of the control rod
 
double fGlobalWorthSlope
 the (fitted) slope of the control rod worth
 
double fGlobalWorthIntercept
 the (fitted) intercept of the control rod worth
 
double fGlobalWorthWeight
 the weigth of the control rod worth (now not used)
 
- Protected Attributes inherited from EvolutionControl
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
 
FuelReprocessingfFuelReprocessing
 the FuelReprocessing
 

Detailed Description

EvolutionControl descendant allowing control via control rod insertion.

Constructor & Destructor Documentation

◆ RodEvolutionControl() [1/2]

RodEvolutionControl::RodEvolutionControl ( )

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.

◆ RodEvolutionControl() [2/2]

RodEvolutionControl::RodEvolutionControl ( const RodEvolutionControl ev)

Copy constructor.

◆ ~RodEvolutionControl()

RodEvolutionControl::~RodEvolutionControl ( )
overridedefault

destructor

Member Function Documentation

◆ Clone()

RodEvolutionControl * RodEvolutionControl::Clone ( )
inlineoverridevirtual

< Correct way to copy a EvolutionControl in case of derivation

Reimplemented from EvolutionControl.

◆ ControlAfterEachEvolutionStep()

void RodEvolutionControl::ControlAfterEachEvolutionStep ( )
overridevirtual

control at the end of the CRAM/RK integration, just before an other MC run.

Reimplemented from EvolutionControl.

◆ ControlAfterEachMCRun()

void RodEvolutionControl::ControlAfterEachMCRun ( )
overridevirtual

control at each MC step (just after a MC run)

Reimplemented from EvolutionControl.

◆ ControlBeforeEachSubStep()

void RodEvolutionControl::ControlBeforeEachSubStep ( )
overridevirtual

control at each CRAM/RK step (just before a sub-step)

Reimplemented from EvolutionControl.

◆ Dichotom()

bool RodEvolutionControl::Dichotom ( double  DeltaRho,
double &  FinalPos 
)

returns the rod position to obtain a Delta rho

◆ FindControlRodWorthParameters()

void RodEvolutionControl::FindControlRodWorthParameters ( double  H,
double  keff_x0,
double  keff_xH,
double  keff_xH4 
)

Find control rod worth.

The reactivity is supposed to be

\[ \rho(x)= \rho_{\rm w/o\, control\, rod} + \rho_{rod}(x) \]

for a length x of the rod in the core, where

\[ \rho_{rod}(x) = a x - b \sin( \frac{2\pi x}{H}) \]

for a rod of total length H.

Parameters
H: Core height (thus the maximum rod length)
keff_x0: keff(x=0) i.e. w/o rod
keff_xH: keff(x=H) i.e. with the rod fully in the core
keff_xH4: keff(x=H/4) i.e. with 1/4 of the rod in the core

◆ FindNextCoefs()

void RodEvolutionControl::FindNextCoefs ( double  value,
vector< double > &  V,
double &  Slope,
double &  Intersept,
int &  LastMCRunNumber 
)

find Slope &Intersept for linear fit of reaction rates

◆ FindNextControlRodPosition()

void RodEvolutionControl::FindNextControlRodPosition ( )

Find control rod position.

◆ FindRodWorthWeigthSlope()

void RodEvolutionControl::FindRodWorthWeigthSlope ( double  CurrentWorth)

fit the rod worth (no more used)

◆ InitVector()

void RodEvolutionControl::InitVector ( )
overrideprotectedvirtual

build vector used in fits full of 0.

Reimplemented from EvolutionControl.

◆ IntegrateRodWorth()

double RodEvolutionControl::IntegrateRodWorth ( double  a,
double  b 
)

Integral of rod worth.

This is

\[ \int_a^b \rho(x) dx\]

◆ RodDifferentialWorth()

double RodEvolutionControl::RodDifferentialWorth ( double  x)

Give the control rod differential worth.

This is

\[ \frac{d\rho(x)}{dx}\]

Parameters
x: the rod length

◆ RodWorth()

double RodEvolutionControl::RodWorth ( double  x)

Give the control rod worth.

This is $\rho(x)$ = fRho0+fRho_rod_cte*x-fRho_rod_sin* $\sin(\frac{2\pi x}{\rm fRodH})$

Parameters
x: the rod length

Member Data Documentation

◆ fDLength

double RodEvolutionControl::fDLength
protected

The control rod variation length.

◆ fGlobalWorth

vector< double > RodEvolutionControl::fGlobalWorth
protected

the worth of the control rod

◆ fGlobalWorthIntercept

double RodEvolutionControl::fGlobalWorthIntercept
protected

the (fitted) intercept of the control rod worth

◆ fGlobalWorthSlope

double RodEvolutionControl::fGlobalWorthSlope
protected

the (fitted) slope of the control rod worth

◆ fGlobalWorthWeight

double RodEvolutionControl::fGlobalWorthWeight
protected

the weigth of the control rod worth (now not used)

◆ fOldDeltaRho

double RodEvolutionControl::fOldDeltaRho
protected

The delta rho correction (control rod)

◆ fRho0

double RodEvolutionControl::fRho0
protected

The reactivity w/o control rod insert.

◆ fRho_rod_cte

double RodEvolutionControl::fRho_rod_cte
protected

The reactivity coef for the linear part of the reactivity formula.

◆ fRho_rod_sin

double RodEvolutionControl::fRho_rod_sin
protected

The reactivity coef for the sinus part of the reactivity formula.

◆ fRodAxis

int RodEvolutionControl::fRodAxis
protected

0=x, 1=y, 2=z

◆ fRodH

double RodEvolutionControl::fRodH
protected

The total height of the control rod.

◆ fRodLength

double RodEvolutionControl::fRodLength
protected

The lenght of the control rod.

◆ fRodNormalMove

int RodEvolutionControl::fRodNormalMove
protected

+1 if the rod go from top to bottom or from left to right, -1 else


The documentation for this class was generated from the following files:

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024