MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Nucleus Class Reference

A real Nucleus with a Temperature. More...

#include <Nucleus.hxx>

Inheritance diagram for Nucleus:
TReference

Public Member Functions

 Nucleus (int Z, int A, int I=0, bool Moderator=0, bool Evolution=false)
 Normal Constructor for Nucleus. More...
 
 Nucleus (int Z, int A, int I, double T, bool Moderator=0, bool Evolution=false)
 Constructor for Nucleus at T. More...
 
 Nucleus (ZAI *zai, double T, bool Moderator=0, bool Evolution=false)
 Constructor for Nucleus at T. More...
 
 Nucleus (const Nucleus &n, bool clone=false)
 Copy constructor. More...
 
 ~Nucleus ()
 Normal destructor. More...
 
ZAI main attributes
int Z ()
 returns the number of protons More...
 
int A ()
 returns the number of nucleons More...
 
int I ()
 returns the Isomeric state (Ground State, ith excited) More...
 
ZAIGetZAI ()
 returns the ZAI* of the Nucleus More...
 
void SetZAI (ZAI *zai)
 set the ZAI* of the Nucleus More...
 
double GetMass ()
 Returns the mass of this nucleus. More...
 
void SetMass (double m)
 Set the mass of this nucleus. More...
 
double GetTemperature ()
 returns the nucleus temperature (K) More...
 
void SetTemperature (double T)
 set the nucleus temperature (K) More...
 
bool GetModerator ()
 returns wether or not the nucleus is a Moderator More...
 
string GetModeratorLine ()
 returns wether or not the nucleus is a Moderator More...
 
void SetModeratorName (string name)
 Set the name of the moderator MT card. More...
 
void SetModeratorLine (string line)
 Set the XSDIR line of the moderator MT card. More...
 
void SetModeratorCategory (string ModeratorCatgory)
 Set the moderator category. More...
 
Find Nucleus in data base methods
string FindMCNPCode ()
 Find the closest MCNP code of the nucleus. More...
 
void FindMCNPCode2 ()
 Find the secondary MCNP code of the nucleus. More...
 
void SetXSExtension (string code)
 allows user to override the XS id code for MCNP More...
 
void SetXSDIRLine (string Line)
 If SetXSExtension has been used, this method gives the right XSDIR line. More...
 
string GetIdCode ()
 Returns the Extension of this nucleus. More...
 
string GetIdCode2 ()
 Returns the alternative Extension of this nucleus. More...
 
void SetIdCode (string code="")
 set the Extension of this nucleus. More...
 
string GetBestLine ()
 Gives the best BaseSummary line for this nucleus. More...
 
string GetBestLine2 ()
 Gives the second best BaseSummary line for this nucleus. More...
 
void SetBestLine (string BestLine)
 Changes the best BaseSummary line for this nucleus. More...
 
void SetGlobalNucleiIndex (int Index)
 set index of this nucleus in the Global Nuclei vector of MURE. More...
 
string FindMCNPModeratorName ()
 find MCNP moderator name (e.g. grph.01t) More...
 
double FindCode (double Temperature, string Type, bool AllWarning=false)
 Find either Nucleus MCNP code, or Moderator MCNP code. More...
 
void SetXSCode (vector< int > XSC)
 Set the array of reaction codes in tally multiplier bins. More...
 
vector< int > GetXSCode ()
 return the array of reaction codes in tally multiplier bins More...
 
bool IsUserCode ()
 Points out if the extension has been given by the user. More...
 
Cross-section & reaction rate methods
ValErr_t GetMCNPSigmaPhiFM (int BinNum, int FMBinNum)
 returns the disparition rate from the nucleus for a given FM bin number. More...
 
double GetSigmaPhi (int BinNum, int ReactionCode)
 returns the disparition rate from the nucleus to its daughter. More...
 
double GetSigmaPhi2 (int BinNum, int ReactionCode)
 returns the disparition rate from the nucleus to its daughter. More...
 
ValErr_t GetMCNPSigmaPhi (int BinNum, int ReactionCode)
 returns the disparition rate from the nucleus to its daughter. More...
 
ValErr_t GetMCNPSigmaPhi2 (int BinNum, int ReactionCode)
 returns the disparition rate from the nucleus to its daughter. More...
 
double GetSigmaPhi (Cell *cell, ZAI *daughter)
 returns the disparition rate from the nucleus to its daughter. More...
 
ValErr_t GetMCNPSigmaPhi (Cell *cell, ZAI *daughter)
 returns the disparition rate from the nucleus to its daughter. More...
 
double GetSigmaPhi (Cell *cell, int ReactionCode)
 returns the disparition rate of the nucleus according to the reaction code. More...
 
double GetSigmaPhi2 (Cell *cell, int ReactionCode)
 returns the disparition rate of the nucleus according to the reaction code. More...
 
ValErr_t GetMCNPSigmaPhi (Cell *cell, int ReactionCode)
 returns the disparition rate of the nucleus according to the reaction code. More...
 
ValErr_t GetMCNPSigmaPhi2 (Cell *cell, int ReactionCode)
 returns the disparition rate of the nucleus according to the reaction code. More...
 
void SetMCNPSigmaPhi (int BinNum, int FMBinNum, ValErr_t r)
 Set the disparition rate from the nucleus to its daughter. More...
 
void SetMCNPSigmaPhi2 (int BinNum, int FMBinNum, ValErr_t r)
 Set the disparition rate from the nucleus to its daughter. More...
 
void SetMCNPSigma (int BinNum, int FMBinNum, ValErr_t xs)
 Set the cross section from the nucleus to its daughter. More...
 
void SetMCNPSigma2 (int BinNum, int FMBinNum, ValErr_t xs)
 Set the cross section from the nucleus to its daughter. More...
 
double GetSigmaFM (int BinNum, int FMBinNum)
 returns the cross-section of the nucleus according to FM bin number. More...
 
ValErr_t GetMCNPSigmaFM (int BinNum, int FMBinNum)
 returns the cross-section of the nucleus according to FM bin number. More...
 
ValErr_t GetMCNPSigma (int BinNum, int ReactionCode)
 returns the cross-section of the nucleus according to the reaction code. More...
 
ValErr_t GetMCNPSigma2 (int BinNum, int ReactionCode)
 returns the cross-section of the nucleus according to the reaction code. More...
 
ValErr_t GetMCNPSigma (Cell *cell, ZAI *daughter)
 returns the cross-section of the nucleus to its daughter. More...
 
ValErr_t GetMCNPSigma (Cell *cell, int ReactionCode)
 returns the cross-section of the nucleus according to the reaction code. More...
 
ValErr_t GetMCNPSigma2 (Cell *cell, int ReactionCode)
 returns the cross-section of the nucleus according to the reaction code. More...
 
void SetTotalSigma (double xs)
 Set total cross section. More...
 
double GetTotalSigma ()
 returns total cross section More...
 
double GetTotalSigmaPhi (Cell *cell)
 returns total sigma*phi of cell More...
 
void SetTotalSigmaPhi (int BinNum, double xs)
 set the total reaction rate More...
 
void SetFMTotalBinNum (int FMbin)
 set total sigma*phi bin in a tally More...
 
int GetFMTotalBinNum ()
 returns total sigma*phi bin in a tally More...
 
void SetTallyNumber (int num)
 Set Tally Number for reaction rates. More...
 
int GetTallyNumber ()
 returns Tally Number for reaction rates More...
 
vector< int > GetFMBinNumber ()
 returns FM Tally bin Number VECTOR for reaction rates More...
 
vector< int > GetBinNumber ()
 returns Tally bin Number VECTOR (Cells or Surfaces) More...
 
vector< int > GetCellNumber ()
 
vector< int > SetFMBinNumber (int &FMBinNum)
 Set FM Tally bin Number for reaction rates. More...
 
void SetBinNumber (int BinNum)
 set the tally bin number (corresponding to cells) More...
 
void SetCellNumber (int CellNum)
 set the tally bin number (corresponding to cells) More...
 
int FindFMBin (int ReactionCode)
 Find the FM bin number of the reaction code. More...
 
void FindSlope (int BinNum, int FMBinNum)
 Find the reaction rate slope for a bin. More...
 
void FindSmooth (int BinNum, int FMBinNum)
 Find the smooth reaction rate for a bin. More...
 
Miscellaneous methods
string Print ()
 Print MCNP code and Proportion of the nucleus. More...
 
string PrintPseudoNucleus (double proportion)
 Print the nucleus as a pseudo material nucleus (e.g 1001.60c 0.5 1001.70c 0.5) More...
 
void SetEvolution (bool Evolution)
 Precises the Evolution state (Evolutive or not) More...
 
bool IsEvolutive ()
 Returns the Evolution state (Evolutive or not) More...
 
int GetGlobalNucleiIndex ()
 get index of this nucleus in the Global Nuclei vector of MURE. More...
 
void ResetFirstReaction ()
 Set all fFirstReaction to true. More...
 
bool IsFirstReaction (int ReactionCode)
 returns the fFirstReaction[ReactionCode] More...
 
void SetFirstReaction (int ReactionCode)
 Set the fFirstReaction[ReactionCode] to false. More...
 
void Duplicate (bool flag)
 Say that a nucleus is duplicate in a material. More...
 
bool IsDuplicate ()
 whether or not a nucleus is duplicate More...
 
void SetAlreadyWarn (bool flag=true)
 true when a 1st warning occur in Material::print() More...
 
bool IsAlreadyWarn ()
 return true when a 1st warning occur in Material::print() More...
 
bool IsTemperatureEvolution ()
 say if the nucleus temperature is going to evolved. More...
 
bool IsPseudoNucleus ()
 
void SetPseudoNucleus (bool flag=true)
 
void SetTemperatureEvolution (bool flag=true)
 Set that this nuc is a pseudo nuc. More...
 
void ClearBinVector ()
 erase the vector containg Tally bins More...
 
void ClearFMBinVector ()
 erase the vector containg Tally multiplicator bins More...
 
void SetNuSigmaFisPhi (int BinNum, double Value)
 Set Nu tot sigma phi (E) More...
 
vector< double > GetNuSigmaFisPhi ()
 Get Nu tot sigma phi vector. More...
 
double GetNuSigmaFisPhi (int BinNum)
 Get Nu tot sigma phi function of energy. More...
 
double GetNuSigmaFisPhi (Cell *cell)
 Get Nu tot sigma phi function of a cell. More...
 
- Public Member Functions inherited from TReference
 TReference ()
 Default constructor. Number of references is set to 0. More...
 
virtual ~TReference ()
 Destructor. More...
 
void AddReference (unsigned n=1)
 Add n references to an object. More...
 
unsigned DelReference (unsigned n=1)
 Remove n references to an object. More...
 
unsigned Reference ()
 returns the Number of references to an object More...
 

Private Member Functions

void InitSigmaPhi ()
 init reaction rate array More...
 
int FindReactionCode (ZAI *daughter)
 Find the Reaction code that leeds to daughter. More...
 
int FindCellBin (Cell *cell)
 Find the tally bin number of cell. More...
 
int NumberOfReaction ()
 returns the number of different reactions More...
 
bool IsModeratorCategoryOk (string Code)
 returns true is Code and fModeratorCategory are compatible More...
 

Private Attributes

ZAIfZAI
 Pointer on the ZAI. More...
 
bool fModerator
 whether or not apply a S(alpha,Beta) thermal treatment More...
 
bool fEvolution
 whether or not it is an evolutive nucleus More...
 
bool fUserCode
 whether or not the user has given the extension, by a SetXSExtension() More...
 
bool fPseudoNucleus
 whether or not nucleus is a pseudo nucleus More...
 
string fModeratorName
 MCNP moderator name (e.g. grph.01t) More...
 
string fModeratorLine
 XSDIR moderator line. More...
 
string fModeratorCategory
 Moderator category for automatic moderator name. More...
 
string fIdCode
 MCNP id code for the closest cross-section (.60c) More...
 
string fIdCode2
 MCNP id code for the second closest cross-section (.60c) More...
 
double fTemperature
 The temperature of the nucleus. More...
 
double fBaseTemperature1
 Closest Base temperature to fTemperature. More...
 
double fBaseTemperature2
 Second closest Base temperature to fTemperature. More...
 
int fGlobalNucleiIndex
 Index of this nucleus in the Global nuclei vector. More...
 
string fBestLine
 Best line of the BaseSummary.dat for this Nucleus. More...
 
string fBestLine2
 Second best line of the BaseSummary.dat for this Nucleus. More...
 
int fTallyNum
 Tally Number for reaction rates. More...
 
vector< int > fFMBinNum
 FM Tally bin Number for reaction rate. More...
 
vector< int > fBinNum
 Tally bin Number (for reaction rate) More...
 
vector< int > fCellNum
 Cell/Surface Number (fBinNum[i]<=>fCellNum[i]) More...
 
vector< vector< vector
< ValErr_t > > > 
fSigmaPhi
 Reaction rates. More...
 
vector< vector< vector
< ValErr_t > > > 
fSigmaPhi2
 Reaction rates. More...
 
vector< vector< ValErr_t > > fMCNPSigmaPhi
 MCNP Reaction rates. More...
 
vector< vector< ValErr_t > > fMCNPSigmaPhi2
 MCNP Reaction rates. More...
 
vector< vector< ValErr_t > > fMCNPSigmaPhi3
 MCNP Reaction rates for PCE fit in corrector step. More...
 
vector< vector< ValErr_t > > fMCNPSigma
 Cross-sections. More...
 
vector< vector< ValErr_t > > fMCNPSigma2
 Cross-sections. More...
 
vector< double > fTotalSigmaPhi
 Total sigma phi in each Tally bin. More...
 
int fFMTotalBinNum
 FM Tally bin Number for total reaction rate. More...
 
double fTotalSigma
 Total cross section. More...
 
int fNReaction
 Number of different reactions. More...
 
map< int, bool > fFirstReaction
 a map of Reaction code to bool More...
 
vector< double > fMCNPTime
 vector of last MCNP run time More...
 
vector< vector< double > > fFitSlope
 slope to find the sigma*phi extrapolation More...
 
vector< vector< double > > fIntersept
 intersept to find the sigma*phi extrapolation or the Smooth value if used More...
 
vector< vector< double > > fFitSlope2
 slope to find the sigma*phi extrapolation More...
 
vector< vector< double > > fIntersept2
 intersept to find the sigma*phi extrapolation More...
 
bool fDuplicate
 True for duplicate nucleus in composition. More...
 
bool fAlreadyWarn
 true when a 1st warning occur in Material::print() More...
 
bool fTemperatureEvolution
 whether or not temperature will evolve More...
 
bool ** fASK
 temporary flag.... More...
 
vector< int > fXSCode
 array of reaction codes in tally multiplier bins More...
 
vector< double > fNuSigmaFisPhi
 Nu tot sigma micro phi. More...
 

Detailed Description

A real Nucleus with a Temperature.

A Nucleus is defined by its ZAI and its temperature. It could evolve and thus has a vector of Sigma*Phi calculated by MCNP in the cell where the nucleus has been put.

A Nucleus could be a "Moderator" to use S(alpha,Beta) treatment in MCNP for En<4 eV.

A Nucleus could be in one or more Cell ; if that cells evolved, then a "group" evolution is carried out.

Automatic MCNP name is search in the BaseSummary.dat file. If a user do not have such file and don't want to build it (see XSDIR class) he can use the Nucleus::SetXSExtension(), Material::SetDefaultXSExtension() and Material::SetModeratorName().

NOTE: Natural isotopes have A=0 (then they can't evolve!!!).

Author
PTO
Version
1.0

Constructor & Destructor Documentation

Nucleus::Nucleus ( int  Z,
int  A,
int  I = 0,
bool  Moderator = 0,
bool  Evolution = false 
)

Normal Constructor for Nucleus.

Default: it is ground state (Z,A) and not a moderator.

Parameters
Z: number of protons of nucleus
A: number of nucleons (A=0 means natural isotopes)
I: Isomeric state (0=ground state, 1 =first excited, ...)
Moderator: wether or not apply a S(alpha,Beta) thermal treatment
Evolution: wether or not the nucleus evolved
Nucleus::Nucleus ( int  Z,
int  A,
int  I,
double  T,
bool  Moderator = 0,
bool  Evolution = false 
)

Constructor for Nucleus at T.

Use by Material.

Parameters
Z: number of protons of nucleus
A: number of nucleons (A=0 means natural isotopes)
I: Isomeric state (0=ground state, 1 =first excited, ...)
T: Nucleus Temperature (taken from the material)
Moderator: wether or not apply a S(alpha,Beta) thermal treatment
Evolution: wether or not the nucleus evolved
Nucleus::Nucleus ( ZAI zai,
double  T,
bool  Moderator = 0,
bool  Evolution = false 
)

Constructor for Nucleus at T.

Use by Material.

Parameters
zai: the nucleus ZAI
T: Nucleus Temperature (taken from the material)
Moderator: wether or not apply a S(alpha,Beta) thermal treatment
Evolution: wether or not the nucleus evolved
Nucleus::Nucleus ( const Nucleus n,
bool  clone = false 
)

Copy constructor.

Nucleus::~Nucleus ( )

Normal destructor.

Member Function Documentation

int Nucleus::A ( )
inline

returns the number of nucleons

void Nucleus::ClearBinVector ( )
inline

erase the vector containg Tally bins

void Nucleus::ClearFMBinVector ( )
inline

erase the vector containg Tally multiplicator bins

void Nucleus::Duplicate ( bool  flag)
inline

Say that a nucleus is duplicate in a material.

This appends when 2 nucleus of a given material have the same MCNP code. This is the case when 1 isomeric state of a nucleus is not in the Database but a other exist: then the missing state is replaced by a existing one (the closest). This is to avoid MCNP warning.

Parameters
flag: true for duplicate nucleus
int Nucleus::FindCellBin ( Cell cell)
private

Find the tally bin number of cell.

double Nucleus::FindCode ( double  Temperature,
string  Type,
bool  AllWarning = false 
)

Find either Nucleus MCNP code, or Moderator MCNP code.

Find the code for desired Temperature and returns the base Temperature

Parameters
Temperature: the wanted temperature
Type: either "nucleus", "moderator" or "mass" depending on what is searched
AllWarning: print all warnings if true, else only some of them
int Nucleus::FindFMBin ( int  ReactionCode)

Find the FM bin number of the reaction code.

string Nucleus::FindMCNPCode ( )

Find the closest MCNP code of the nucleus.

This is the code for xsdir correponding to the closest temperature

void Nucleus::FindMCNPCode2 ( )

Find the secondary MCNP code of the nucleus.

The code corresponds to the next closest base temperature. This is used for pseudo-Material.

string Nucleus::FindMCNPModeratorName ( )

find MCNP moderator name (e.g. grph.01t)

int Nucleus::FindReactionCode ( ZAI daughter)
private

Find the Reaction code that leeds to daughter.

void Nucleus::FindSlope ( int  BinNum,
int  FMBinNum 
)

Find the reaction rate slope for a bin.

void Nucleus::FindSmooth ( int  BinNum,
int  FMBinNum 
)

Find the smooth reaction rate for a bin.

string Nucleus::GetBestLine ( )
inline

Gives the best BaseSummary line for this nucleus.

string Nucleus::GetBestLine2 ( )

Gives the second best BaseSummary line for this nucleus.

vector<int> Nucleus::GetBinNumber ( )
inline

returns Tally bin Number VECTOR (Cells or Surfaces)

vector<int> Nucleus::GetCellNumber ( )
inline

returns Cell Number VECTOR (Cells or Surfaces)

vector<int> Nucleus::GetFMBinNumber ( )
inline

returns FM Tally bin Number VECTOR for reaction rates

int Nucleus::GetFMTotalBinNum ( )
inline

returns total sigma*phi bin in a tally

int Nucleus::GetGlobalNucleiIndex ( )
inline

get index of this nucleus in the Global Nuclei vector of MURE.

string Nucleus::GetIdCode ( )
inline

Returns the Extension of this nucleus.

string Nucleus::GetIdCode2 ( )

Returns the alternative Extension of this nucleus.

double Nucleus::GetMass ( )
inline

Returns the mass of this nucleus.

ValErr_t Nucleus::GetMCNPSigma ( int  BinNum,
int  ReactionCode 
)

returns the cross-section of the nucleus according to the reaction code.

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigma ( Cell cell,
ZAI daughter 
)

returns the cross-section of the nucleus to its daughter.

Parameters
cell: the Cell where reaction rates are calculated
daughter: the zai identifying the daughter
ValErr_t Nucleus::GetMCNPSigma ( Cell cell,
int  ReactionCode 
)

returns the cross-section of the nucleus according to the reaction code.

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigma2 ( int  BinNum,
int  ReactionCode 
)

returns the cross-section of the nucleus according to the reaction code.

Same as previous except it is for Partial MCNP run

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigma2 ( Cell cell,
int  ReactionCode 
)

returns the cross-section of the nucleus according to the reaction code.

Same as previous except it is for Partial MCNP run

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigmaFM ( int  BinNum,
int  FMBinNum 
)

returns the cross-section of the nucleus according to FM bin number.

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number
ValErr_t Nucleus::GetMCNPSigmaPhi ( int  BinNum,
int  ReactionCode 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigmaPhi ( Cell cell,
ZAI daughter 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value

Parameters
cell: the Cell where reaction rates are calculated
daughter: the zai identifying the daughter
ValErr_t Nucleus::GetMCNPSigmaPhi ( Cell cell,
int  ReactionCode 
)

returns the disparition rate of the nucleus according to the reaction code.

This value is not normalized : it is the MCNP value

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigmaPhi2 ( int  BinNum,
int  ReactionCode 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value Same as previous except it is for Partial MCNP run

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigmaPhi2 ( Cell cell,
int  ReactionCode 
)

returns the disparition rate of the nucleus according to the reaction code.

This value is not normalized : it is the MCNP value Same as previous except it is for Partial MCNP run

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
ValErr_t Nucleus::GetMCNPSigmaPhiFM ( int  BinNum,
int  FMBinNum 
)

returns the disparition rate from the nucleus for a given FM bin number.

This value is not normalized : it is the MCNP value

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number
bool Nucleus::GetModerator ( )
inline

returns wether or not the nucleus is a Moderator

string Nucleus::GetModeratorLine ( )
inline

returns wether or not the nucleus is a Moderator

vector<double> Nucleus::GetNuSigmaFisPhi ( )
inline

Get Nu tot sigma phi vector.

double Nucleus::GetNuSigmaFisPhi ( int  BinNum)

Get Nu tot sigma phi function of energy.

double Nucleus::GetNuSigmaFisPhi ( Cell cell)

Get Nu tot sigma phi function of a cell.

double Nucleus::GetSigmaFM ( int  BinNum,
int  FMBinNum 
)

returns the cross-section of the nucleus according to FM bin number.

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number
double Nucleus::GetSigmaPhi ( int  BinNum,
int  ReactionCode 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value

Parameters
BinNum: the cell/Surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
double Nucleus::GetSigmaPhi ( Cell cell,
ZAI daughter 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value

Parameters
cell: the Cell where reaction rates are calculated
daughter: the zai identifying the daughter
double Nucleus::GetSigmaPhi ( Cell cell,
int  ReactionCode 
)

returns the disparition rate of the nucleus according to the reaction code.

This value is not normalized : it is the MCNP value

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
double Nucleus::GetSigmaPhi2 ( int  BinNum,
int  ReactionCode 
)

returns the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value Same as previous except it is for Partial MCNP run

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
double Nucleus::GetSigmaPhi2 ( Cell cell,
int  ReactionCode 
)

returns the disparition rate of the nucleus according to the reaction code.

This value is not normalized : it is the MCNP value Same as previous except it is for Partial MCNP run

Parameters
cell: the Cell where reaction rates are calculated
ReactionCode: the reaction code (ENDF Type)
int Nucleus::GetTallyNumber ( )
inline

returns Tally Number for reaction rates

double Nucleus::GetTemperature ( )
inline

returns the nucleus temperature (K)

double Nucleus::GetTotalSigma ( )
inline

returns total cross section

double Nucleus::GetTotalSigmaPhi ( Cell cell)

returns total sigma*phi of cell

vector<int> Nucleus::GetXSCode ( )
inline

return the array of reaction codes in tally multiplier bins

ZAI* Nucleus::GetZAI ( )
inline

returns the ZAI* of the Nucleus

int Nucleus::I ( )
inline

returns the Isomeric state (Ground State, ith excited)

void Nucleus::InitSigmaPhi ( )
private

init reaction rate array

bool Nucleus::IsAlreadyWarn ( )
inline

return true when a 1st warning occur in Material::print()

bool Nucleus::IsDuplicate ( )
inline

whether or not a nucleus is duplicate

bool Nucleus::IsEvolutive ( )
inline

Returns the Evolution state (Evolutive or not)

bool Nucleus::IsFirstReaction ( int  ReactionCode)

returns the fFirstReaction[ReactionCode]

bool Nucleus::IsModeratorCategoryOk ( string  Code)
private

returns true is Code and fModeratorCategory are compatible

bool Nucleus::IsPseudoNucleus ( )
inline
bool Nucleus::IsTemperatureEvolution ( )
inline

say if the nucleus temperature is going to evolved.

When this is true, this means that the nucleus will be duplicated in the MURE::fGlobalNucleiVector. The default is false.

bool Nucleus::IsUserCode ( )
inline

Points out if the extension has been given by the user.

int Nucleus::NumberOfReaction ( )
private

returns the number of different reactions

string Nucleus::Print ( )

Print MCNP code and Proportion of the nucleus.

string Nucleus::PrintPseudoNucleus ( double  proportion)

Print the nucleus as a pseudo material nucleus (e.g 1001.60c 0.5 1001.70c 0.5)

void Nucleus::ResetFirstReaction ( )

Set all fFirstReaction to true.

void Nucleus::SetAlreadyWarn ( bool  flag = true)
inline

true when a 1st warning occur in Material::print()

void Nucleus::SetBestLine ( string  BestLine)
inline

Changes the best BaseSummary line for this nucleus.

void Nucleus::SetBinNumber ( int  BinNum)

set the tally bin number (corresponding to cells)

void Nucleus::SetCellNumber ( int  CellNum)

set the tally bin number (corresponding to cells)

void Nucleus::SetEvolution ( bool  Evolution)
inline

Precises the Evolution state (Evolutive or not)

void Nucleus::SetFirstReaction ( int  ReactionCode)

Set the fFirstReaction[ReactionCode] to false.

vector< int > Nucleus::SetFMBinNumber ( int &  FMBinNum)

Set FM Tally bin Number for reaction rates.

Fills FM Tally bin Number vector starting at bin "num" to num+nb of reactions+1. Output: num is set to num+(nb of reactions)+1 and a vector of XS codes (ENDF type) is given

Parameters
FMBinNum: input: starting bin for the first reaction, ouput: FMBinNum+last bin for the last reaction+1
void Nucleus::SetFMTotalBinNum ( int  FMbin)
inline

set total sigma*phi bin in a tally

void Nucleus::SetGlobalNucleiIndex ( int  Index)
inline

set index of this nucleus in the Global Nuclei vector of MURE.

void Nucleus::SetIdCode ( string  code = "")
inline

set the Extension of this nucleus.

void Nucleus::SetMass ( double  m)
inline

Set the mass of this nucleus.

void Nucleus::SetMCNPSigma ( int  BinNum,
int  FMBinNum,
ValErr_t  xs 
)

Set the cross section from the nucleus to its daughter.

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number for a given reaction
xs: the cross-section
void Nucleus::SetMCNPSigma2 ( int  BinNum,
int  FMBinNum,
ValErr_t  xs 
)

Set the cross section from the nucleus to its daughter.

Same as previous except it is for Partial MCNP run

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number for a given reaction
xs: the cross-section
void Nucleus::SetMCNPSigmaPhi ( int  BinNum,
int  FMBinNum,
ValErr_t  r 
)

Set the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number for a given reaction
r: the reaction rate
void Nucleus::SetMCNPSigmaPhi2 ( int  BinNum,
int  FMBinNum,
ValErr_t  r 
)

Set the disparition rate from the nucleus to its daughter.

This value is not normalized : it is the MCNP value Same as previous except it is for Partial MCNP run

Parameters
BinNum: the cell/surface bin number where reaction rates are calculated
FMBinNum: the FM bin number for a given reaction
r: the reaction rate
void Nucleus::SetModeratorCategory ( string  ModeratorCatgory)
inline

Set the moderator category.

  This category is used in automatic moderator name assignement.
 If moderator name is given with Material::SetModeratorName(), the content of ModeratorCatgory is unused.
 The category is one of: 

 - H2O is for H in light water, 
 - H/Zr for H in ZrH, 
 - poly for H in polyethylene,
 - D2O for D in heavy water, 
 - BeO for Be in Be oxyde, 
 - Be for Be in Be metal
 - Gr for graphite,
 - Zr/H for Zr in ZrH,
Parameters
ModeratorCatgory: The catergory of the moderator ("H2O", "D2O", ...)
void Nucleus::SetModeratorLine ( string  line)
inline

Set the XSDIR line of the moderator MT card.

void Nucleus::SetModeratorName ( string  name)
inline

Set the name of the moderator MT card.

void Nucleus::SetNuSigmaFisPhi ( int  BinNum,
double  Value 
)

Set Nu tot sigma phi (E)

void Nucleus::SetPseudoNucleus ( bool  flag = true)
inline
void Nucleus::SetTallyNumber ( int  num)
inline

Set Tally Number for reaction rates.

void Nucleus::SetTemperature ( double  T)
inline

set the nucleus temperature (K)

void Nucleus::SetTemperatureEvolution ( bool  flag = true)
inline

Set that this nuc is a pseudo nuc.

set the Temperature evolution flag

void Nucleus::SetTotalSigma ( double  xs)
inline

Set total cross section.

void Nucleus::SetTotalSigmaPhi ( int  BinNum,
double  xs 
)

set the total reaction rate

void Nucleus::SetXSCode ( vector< int >  XSC)
inline

Set the array of reaction codes in tally multiplier bins.

void Nucleus::SetXSDIRLine ( string  Line)
inline

If SetXSExtension has been used, this method gives the right XSDIR line.

void Nucleus::SetXSExtension ( string  code)

allows user to override the XS id code for MCNP

void Nucleus::SetZAI ( ZAI zai)

set the ZAI* of the Nucleus

int Nucleus::Z ( )
inline

returns the number of protons

Member Data Documentation

bool Nucleus::fAlreadyWarn
private

true when a 1st warning occur in Material::print()

bool** Nucleus::fASK
private

temporary flag....

double Nucleus::fBaseTemperature1
private

Closest Base temperature to fTemperature.

double Nucleus::fBaseTemperature2
private

Second closest Base temperature to fTemperature.

string Nucleus::fBestLine
private

Best line of the BaseSummary.dat for this Nucleus.

string Nucleus::fBestLine2
private

Second best line of the BaseSummary.dat for this Nucleus.

vector<int> Nucleus::fBinNum
private

Tally bin Number (for reaction rate)

vector<int> Nucleus::fCellNum
private

Cell/Surface Number (fBinNum[i]<=>fCellNum[i])

bool Nucleus::fDuplicate
private

True for duplicate nucleus in composition.

bool Nucleus::fEvolution
private

whether or not it is an evolutive nucleus

map<int,bool> Nucleus::fFirstReaction
private

a map of Reaction code to bool

vector<vector<double> > Nucleus::fFitSlope
private

slope to find the sigma*phi extrapolation

vector<vector<double> > Nucleus::fFitSlope2
private

slope to find the sigma*phi extrapolation

vector<int> Nucleus::fFMBinNum
private

FM Tally bin Number for reaction rate.

int Nucleus::fFMTotalBinNum
private

FM Tally bin Number for total reaction rate.

int Nucleus::fGlobalNucleiIndex
private

Index of this nucleus in the Global nuclei vector.

string Nucleus::fIdCode
private

MCNP id code for the closest cross-section (.60c)

string Nucleus::fIdCode2
private

MCNP id code for the second closest cross-section (.60c)

vector<vector<double> > Nucleus::fIntersept
private

intersept to find the sigma*phi extrapolation or the Smooth value if used

vector<vector<double> > Nucleus::fIntersept2
private

intersept to find the sigma*phi extrapolation

vector<vector<ValErr_t> > Nucleus::fMCNPSigma
private

Cross-sections.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one)

vector<vector<ValErr_t> > Nucleus::fMCNPSigma2
private

Cross-sections.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one) Same as previous except it is for Partial MCNP run

vector<vector<ValErr_t> > Nucleus::fMCNPSigmaPhi
private

MCNP Reaction rates.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one)

vector<vector<ValErr_t> > Nucleus::fMCNPSigmaPhi2
private

MCNP Reaction rates.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one) Same as previous except it is for Partial MCNP run

vector<vector<ValErr_t> > Nucleus::fMCNPSigmaPhi3
private

MCNP Reaction rates for PCE fit in corrector step.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one) It stores the Reaction rates of the corrector step in PCE to make a fit from fMCNPSigmaPhi (predictor) to fMCNPSigmaPhi3 during RK integration

vector<double> Nucleus::fMCNPTime
private

vector of last MCNP run time

bool Nucleus::fModerator
private

whether or not apply a S(alpha,Beta) thermal treatment

string Nucleus::fModeratorCategory
private

Moderator category for automatic moderator name.

string Nucleus::fModeratorLine
private

XSDIR moderator line.

string Nucleus::fModeratorName
private

MCNP moderator name (e.g. grph.01t)

int Nucleus::fNReaction
private

Number of different reactions.

vector<double> Nucleus::fNuSigmaFisPhi
private

Nu tot sigma micro phi.

bool Nucleus::fPseudoNucleus
private

whether or not nucleus is a pseudo nucleus

vector<vector<vector<ValErr_t> > > Nucleus::fSigmaPhi
private

Reaction rates.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one)

vector<vector<vector<ValErr_t> > > Nucleus::fSigmaPhi2
private

Reaction rates.

the first dimension of this vector is associated with the Cell/Surface Tally bin number (one to one) the second dimension is associated with the FM Tally bin number, (one to one) Same as previous except it is for Partial MCNP run

int Nucleus::fTallyNum
private

Tally Number for reaction rates.

double Nucleus::fTemperature
private

The temperature of the nucleus.

bool Nucleus::fTemperatureEvolution
private

whether or not temperature will evolve

double Nucleus::fTotalSigma
private

Total cross section.

vector<double> Nucleus::fTotalSigmaPhi
private

Total sigma phi in each Tally bin.

bool Nucleus::fUserCode
private

whether or not the user has given the extension, by a SetXSExtension()

vector<int> Nucleus::fXSCode
private

array of reaction codes in tally multiplier bins

ZAI* Nucleus::fZAI
private

Pointer on the ZAI.


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

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014