MURE
Public Member Functions | List of all members
Material Class Reference

A Material constituing a Cell. More...

#include <Material.hxx>

Inheritance diagram for Material:
ControlMaterial

Public Member Functions

 Material ()
 Normal Constructor. More...
 
 Material (int theNumber)
 Special Constructor. More...
 
 Material (const Material &m)
 Copy constructor. More...
 
virtual ~Material ()
 Destructor. More...
 
virtual MaterialCopy ()
 Copy a Material. More...
 
virtual MaterialClone (double Temperature=- 1)
 Clone a Material. More...
 
Nucleus &Proportion methods
void AddNucleus (int Z, int A, double Proportion=1., ProportionUnitType ProportionUnit=kpMOL, string ModeratorCategory="")
 Add a new Nucleus to the Material composition in the ground state. More...
 
void AddNucleus (int Z, int A, int I, double Proportion, ProportionUnitType ProportionUnit=kpMOL, string ModeratorCategory="")
 Add a new Nucleus to the Material composition. More...
 
void AddNucleus (ZAI *zai, double Proportion=1., ProportionUnitType ProportionUnit=kpMOL, string ModeratorCategory="")
 Add a new Nucleus to the Material composition. More...
 
void AddNucleus (Nucleus_ptr nucleus, double Proportion=1., ProportionUnitType ProportionUnit=kpMOL)
 Add a new Nucleus to the Material composition. More...
 
vector< Nucleus_ptr > & GetComposition ()
 
Nucleus_ptr GetComposition (int i)
 
void SetComposition (vector< Nucleus_ptr > f)
 
Nucleus_ptr GetNucleus (int Z, int A, int I=0)
 return the Nucleus Z, A, I More...
 
double GetProportion (int i, ProportionUnitType ProportionUnit)
 
void SetProportion (int i, double proportion, ProportionUnitType ProportionUnit)
 Set the Proportion of the ith nucleus. More...
 
void ResetProportion ()
 set all proprtion to 0. More...
 
MaterialMix (Material *M2, double part, ProportionUnitType ProportionUnit=kpMOL)
 Mix 2 Materials. More...
 
virtual vector< Material * > Duplicate (int N, bool TrueClone=true)
 Duplicate material n times over. More...
 
void Proportion2AtomCM3 ()
 Convert proportion unit (kpMOL or kpMASS) in at/cm3. More...
 
ProportionUnitType GetProportionUnit ()
 
double SumProportion ()
 return the sum of Proportion of each nucleus More...
 
int GetZAIIndex (ZAI *zai)
 Get the index of a given zai in the composition vector. Return -1 if not there. More...
 
int GetZAIIndex (int Z, int A, int I)
 Get the index of a given zai in the composition vector. Return -1 if not there. More...
 
void UpdateZAI (bool WithReactions=true, bool WithSF=true)
 Update all ZAI of material (With reactions&decays or just decays). More...
 
void AddToGlobalNucleiVector ()
 add all nuclei of this material to GlobalNucleiVector More...
 
void AddZAIDaughters (ZAI *zai)
 add the daughters of zai in this with proportion=0 More...
 
void CFAddElement (int Z, double p)
 
void CFAddElement (double h, int Z, double p)
 
void CFAddElement (double h, string Z, double p)
 
void CFAddElement (string Z, double p)
 
void CFAddElementNucleus (int Z, int A, int I, double frac, ProportionUnitType unit)
 
void CFAddElementNucleus (int Z, int A, double frac, ProportionUnitType unit)
 
void CFCalculateMaterial ()
 
void CFSetDensity (double dens, DensityUnitType unit)
 
Physical attributes methods
double GetDensity (DensityUnitType DensityUnit)
 
void SetDensity (double Density, DensityUnitType DensityUnit=kdGCM3)
 Set the density. More...
 
DensityUnitType GetDensityUnit ()
 
double GetTemperature ()
 
void SetTemperature (double T=293.6)
 Set the temperature in K. More...
 
bool HasModerator ()
 
void SetModeratorName (string name)
 
string GetModeratorName ()
 
double MeanMolarMass ()
 return the mean molar mass (in gram) More...
 
bool IsFuel ()
 
bool IsModerator ()
 
bool IsCladding ()
 
bool IsCoolant ()
 
bool IsCoolantGap ()
 
bool IsModeratorBox ()
 
bool IsControlMaterial ()
 
void SetFuel (bool flag=true)
 
void SetModerator (bool flag=true)
 
void SetCladding (bool flag=true)
 
void SetCoolant (bool flag=true)
 
void SetCoolantGap (bool flag=true)
 
void SetModeratorBox (bool flag=true)
 
Printing methods
string PrintAll ()
 Print the Material (and its Nuclei) in MCNP format. More...
 
string PrintCompositionInfo ()
 
void ForbidPrint ()
 Forbid Material print in MCNP. More...
 
void EnablePrint ()
 
void SetPseudoMaterial ()
 Define a pesudo material. More...
 
bool IsPseudoMaterial ()
 
bool IsPrintable ()
 
string PrintDensityUnit (DensityUnitType DensityUnit=kdUNDEFINED)
 Pretty print of density units. More...
 
string PrintProportionUnit (ProportionUnitType ProportionUnit=kpUNDEFINED)
 Pretty print of proportion units. More...
 
void DumpMaterial (string filename="material.dat")
 Make a nuclear chart &ascii tree of the material &write them to disk. More...
 
void DumpCompositionInfo (string name="CompInfo.dat")
 Write the full composition information to a file. More...
 
void DumpMaterial (string Filename, double Mass, double Volume)
 Dump a material which can be open with MureGui -onlytox. More...
 

Miscellaneous methods

int fNumber
 Number of the Material in MCNP file. More...
 
double fDensity
 Density of the Material. More...
 
DensityUnitType fDensityUnit
 Density unit (either g/cm3 (default), at/cm3 or at/barn.cm) More...
 
ProportionUnitType fProportionUnit
 Proportion vector unit (mol (default), at/barn.cm, at/cm3 or g/cm3) More...
 
double fTemperature
 Temperature (in K) at which the Material is used (to find the right MCNP code) More...
 
bool fEvolution
 whether or not will this Material will evolve with the time More...
 
bool fTemperatureEvolution
 whether or not temperature will evolve More...
 
bool fPerturbative
 whether this Material is a virtual (perturbative) material for MCNP input More...
 
string fModeratorName
 Name of the moderator to be print in MT card (e.g. grph.06t) More...
 
string fMaterialName
 Name of the material (uo2, water, ... used when thermal coupling) More...
 
string fDefaultXSExtension
 Give a default extension to all nucleus. More...
 
bool fUpdated
 true if ZAI have been updated (UpdateZAI) for evolution only More...
 
vector< Nucleus_ptrfComposition
 the Composition vector More...
 
vector< double > fProportion
 the Proportion vector More...
 
map< int, map< int, map< int, int > > > fIndex
 The index of the ZAI in the material composition. More...
 
MaterialfFatherOfPseudoClone
 the father to used in cell in case of Pseudo clone More...
 
bool fFuel
 whether or not this material is considered fuel. More...
 
bool fModerator
 whether or not this material is considered moderator. More...
 
bool fModeratorBox
 whether or not this material is considered ModeratorBox. More...
 
bool fCladding
 whether or not this material is considered cladding. More...
 
bool fCoolant
 whether or not this material is considered Coolant. More...
 
bool fCoolantGap
 whether or not this material is considered WaterGap. More...
 
bool fPrintable
 whether or not material is printable in MCNP input file (default) More...
 
bool fOutCore
 whether or not material is an Out core evolving material More...
 
bool fPseudoMaterial
 Is the material a pseudomaterial? More...
 
bool fControlMaterial
 This is a control material (e.g. for poison) More...
 
bool fIsPerturbativeTallyMaterial
 
vector< int > CFElements
 
vector< double > CFps
 
vector< double > CFhs
 
vector< vector< ZAI * > > CFIsotopes
 
vector< vector< double > > CFIsotopeProportions
 
vector< double > CFElementMolarMass
 
vector< double > CFElementRho
 
vector< ProportionUnitTypeCFPropElement
 
double fCFMeanMolarMass
 
double CFDensity
 
DensityUnitType CFDensityUnit
 
int GetNumber ()
 
void SetNumber (int n)
 
void SetDefaultXSExtension (string name)
 Set a default extension for all nuclei of the material. More...
 
string GetDefaultXSExtension ()
 
void SetEvolution ()
 Say that this Material will evolve. More...
 
bool IsEvolving ()
 
bool IsPerturbative ()
 
void SetPerturbative (bool flag=true)
 
void SortCompositionByAmount ()
 Sort the proportions/compositions in proportion order (highest first). More...
 
void SortCompositionByMass ()
 Sort the proportions/compositions in atomic mass order (highest first). More...
 
void FindTotalSigmaPerNucleus ()
 Find total cross-section. More...
 
MaterialGetFatherOfPseudoClone ()
 
void SetTemperatureEvolution (bool flag=true)
 set the Temperature evolution flag More...
 
bool IsOutCore ()
 
CellSetOutCore (int TheNumber, double TheVolume)
 return a out core cell of volume TheVolume and number TheNumber More...
 
void SetMaterialName (string name)
 
string GetMaterialName ()
 
void SetIsPerturbativeTallyMaterial (bool f=true)
 
bool IsPerturbativeTallyMaterial ()
 
bool IsZAIInTree (ZAI *zai)
 
bool IsZAIInTree (int Z, int A, int I)
 
ZAIGetZAIInTree (ZAI *zai)
 
ZAIGetZAIInTree (int Z, int A, int I)
 
 Material (Material *m)
 Private Constructor. More...
 

Detailed Description

A Material constituing a Cell.

Each time a Material is created it is declared to MURE class (via gMURE) except if a Material is created from a Clone of a non evolving one.

Default Proportion units are mol. Default Density unit is g/cm3. Legal unit values are:

Proportions are printed in mol in MCNP file and density in g/cm3. In the evolution, proportion units are at/cm3 and the density evolve according to the composition evolution (sum of proportion in at/cm3).

Default temperature is 293.6K.

Note: if density is not provided, it is calculated automatically if proportions are in atoms/barn.cm or atoms/cm3.

Author
PTO
Frantisek
Version
1.0

Constructor & Destructor Documentation

◆ Material() [1/4]

Material::Material ( )

Normal Constructor.

Default: theDensity=0, T=293.6K and Evolution=0.

◆ Material() [2/4]

Material::Material ( int  theNumber)

Special Constructor.

Use when the geometry is not a MURE one but a standard MCNP(X) one Default: theDensity=0, T=293.6K and Evolution=0.

Parameters
theNumber: the number of the material used in the user provide MCNP(X) geometry

◆ Material() [3/4]

Material::Material ( const Material m)

Copy constructor.

◆ ~Material()

Material::~Material ( )
virtual

Destructor.

◆ Material() [4/4]

Material::Material ( Material m)
protected

Private Constructor.

It is used by Material::Clone to copy non vector attributs

Parameters
m: the Material to be cloned

Member Function Documentation

◆ AddNucleus() [1/4]

void Material::AddNucleus ( int  Z,
int  A,
double  Proportion = 1.,
ProportionUnitType  ProportionUnit = kpMOL,
string  ModeratorCategory = "" 
)

Add a new Nucleus to the Material composition in the ground state.

If ModeratorCategory is a non empty string, S(alpha, Beta) thermal treatment will be take into account in MCNP. This category is used in automatic moderator name assignement. H2O is for H in light water, D2O is for D in heavy water, H/Zr for H in ZrH, poly for polyethylene, BeO is for Be in Be oxyde, Be is for Be in Be metal and so on. If moderator name is given with Material::SetModeratorName(), the content of ModeratorCategory is unused.

Parameters
Z: number of protons of nucleus
A: number of nucleons (A=0 means natural isotopes)
Proportion: proportion of Nucleus (to be used in a Composition)
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM)
ModeratorCategory: The catergory of the moderator ("H2O", "D2O", "H/Zr", "poly", "benz", "BeO", "Be", "Gr" or "Zr/H")

◆ AddNucleus() [2/4]

void Material::AddNucleus ( int  Z,
int  A,
int  I,
double  Proportion,
ProportionUnitType  ProportionUnit = kpMOL,
string  ModeratorCategory = "" 
)

Add a new Nucleus to the Material composition.

If ModeratorCategory is a non empty string, S(alpha, Beta) thermal treatment will be take into account in MCNP. This category is used in automatic moderator name assignement. H2O is for H in light water, D2O is for D in heavy water, H/Zr for H in ZrH, poly for polyethylene, BeO is for Be in Be oxyde, Be is for Be in Be metal and so on. If moderator name is given with Material::SetModeratorName(), the content of ModeratorCategory is unused.

Parameters
Z: number of protons of nucleus
A: number of nucleons (A=0 means natural isotopes)
I: Isomeric state (Ground State, ith excited)
Proportion: proportion of Nucleus (to be used in a Composition)
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM)
ModeratorCategory: The catergory of the moderator ("H2O", "D2O", "H/Zr", "poly", "benz", "BeO", "Be", "Gr" or "Zr/H")

◆ AddNucleus() [3/4]

void Material::AddNucleus ( Nucleus_ptr  nucleus,
double  Proportion = 1.,
ProportionUnitType  ProportionUnit = kpMOL 
)

Add a new Nucleus to the Material composition.

Parameters
nucleus: the nucleus to add
Proportion: proportion of Nucleus (to be used in a Composition)
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM)

◆ AddNucleus() [4/4]

void Material::AddNucleus ( ZAI zai,
double  Proportion = 1.,
ProportionUnitType  ProportionUnit = kpMOL,
string  ModeratorCategory = "" 
)

Add a new Nucleus to the Material composition.

If ModeratorCategory is a non empty string, S(alpha, Beta) thermal treatment will be take into account in MCNP. This category is used in automatic moderator name assignement. H2O is for H in light water, D2O is for D in heavy water, H/Zr for H in ZrH, poly for polyethylene, BeO is for Be in Be oxyde, Be is for Be in Be metal and so on. If moderator name is given with Material::SetModeratorName(), the content of ModeratorCategory is unused.

Parameters
zai: the zai of the nucleus
Proportion: proportion of Nucleus (to be used in a Composition)
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM)
ModeratorCategory: The catergory of the moderator ("H2O", "D2O", "H/Zr", "poly", "benz", "BeO", "Be", "Gr" or "Zr/H")

◆ AddToGlobalNucleiVector()

void Material::AddToGlobalNucleiVector ( )

add all nuclei of this material to GlobalNucleiVector

◆ AddZAIDaughters()

void Material::AddZAIDaughters ( ZAI zai)

add the daughters of zai in this with proportion=0

◆ CFAddElement() [1/4]

void Material::CFAddElement ( double  h,
int  Z,
double  p 
)

◆ CFAddElement() [2/4]

void Material::CFAddElement ( double  h,
string  Z,
double  p 
)

◆ CFAddElement() [3/4]

void Material::CFAddElement ( int  Z,
double  p 
)
inline

◆ CFAddElement() [4/4]

void Material::CFAddElement ( string  Z,
double  p 
)

◆ CFAddElementNucleus() [1/2]

void Material::CFAddElementNucleus ( int  Z,
int  A,
double  frac,
ProportionUnitType  unit 
)
inline

◆ CFAddElementNucleus() [2/2]

void Material::CFAddElementNucleus ( int  Z,
int  A,
int  I,
double  frac,
ProportionUnitType  unit 
)

◆ CFCalculateMaterial()

void Material::CFCalculateMaterial ( )

◆ CFSetDensity()

void Material::CFSetDensity ( double  dens,
DensityUnitType  unit 
)
inline

◆ Clone()

Material * Material::Clone ( double  Temperature = - 1)
virtual

Clone a Material.

 This method acts in 2 different ways depending on:

 - (1) The Material is an evolving one and/or the Temperature argument >=0
 - (2) The Material is not evolving and the Temperature argument <0.

In case (1) the clone is a real clone with same nuclei, proportion, ... (except Temperature if it is specified in argument).

In case (2) the clone is just used in cells with the new density (set with Material::SetDensity or in the argument of Clone).

WARNING: on a clone Material the used of Material::SetTemperature() may be miss understanding: If the Material has been clone in the case (1) it is not a problem ; but in case (2), because nuclei are not duplicated, this has no effect.

Parameters
Temperature: if given, the new temperature (in K) of the clone, else the "original" temperature is used (see the warning above).

Reimplemented in ControlMaterial.

◆ Copy()

Material * Material::Copy ( )
virtual

Copy a Material.

Because of inheritance, you must use this method instead of copy constructors.

Reimplemented in ControlMaterial.

◆ DumpCompositionInfo()

void Material::DumpCompositionInfo ( string  name = "CompInfo.dat")

Write the full composition information to a file.

◆ DumpMaterial() [1/2]

void Material::DumpMaterial ( string  Filename,
double  Mass,
double  Volume 
)

Dump a material which can be open with MureGui -onlytox.

◆ DumpMaterial() [2/2]

void Material::DumpMaterial ( string  filename = "material.dat")

Make a nuclear chart &ascii tree of the material &write them to disk.

◆ Duplicate()

vector< Material * > Material::Duplicate ( int  N,
bool  TrueClone = true 
)
virtual

Duplicate material n times over.

Reimplemented in ControlMaterial.

◆ EnablePrint()

void Material::EnablePrint ( )
inline

< allow a Material print in MCNP.

◆ FindTotalSigmaPerNucleus()

void Material::FindTotalSigmaPerNucleus ( )

Find total cross-section.

◆ ForbidPrint()

void Material::ForbidPrint ( )
inline

Forbid Material print in MCNP.

This allows on to used material only for input/output fuel without printing t in MCNP file.

◆ GetComposition() [1/2]

vector< Nucleus_ptr >& Material::GetComposition ( )
inline

< return the Composition vector

◆ GetComposition() [2/2]

Nucleus_ptr Material::GetComposition ( int  i)
inline

< return the Composition vector

◆ GetDefaultXSExtension()

string Material::GetDefaultXSExtension ( )
inline

< return default extension for all nuclei of the material.

◆ GetDensity()

double Material::GetDensity ( DensityUnitType  DensityUnit)

Returns the density of this Material in DensityUnit

◆ GetDensityUnit()

DensityUnitType Material::GetDensityUnit ( )
inline

< return the density units

◆ GetFatherOfPseudoClone()

Material* Material::GetFatherOfPseudoClone ( )
inline

< returns the father ("original") of a pseudo clone

◆ GetMaterialName()

string Material::GetMaterialName ( )
inline

< returns the name of material

◆ GetModeratorName()

string Material::GetModeratorName ( )
inline

< return the moderatior name (e.g. lwtr.01t)

◆ GetNucleus()

Nucleus_ptr Material::GetNucleus ( int  Z,
int  A,
int  I = 0 
)

return the Nucleus Z, A, I

◆ GetNumber()

int Material::GetNumber ( )
inline

< Returns the MCNP Material number

◆ GetProportion()

double Material::GetProportion ( int  i,
ProportionUnitType  ProportionUnit 
)

return the ith Proportion

◆ GetProportionUnit()

ProportionUnitType Material::GetProportionUnit ( )
inline

< return the proportion units

◆ GetTemperature()

double Material::GetTemperature ( )
inline

< returns the temperature in K.

◆ GetZAIIndex() [1/2]

int Material::GetZAIIndex ( int  Z,
int  A,
int  I 
)

Get the index of a given zai in the composition vector. Return -1 if not there.

◆ GetZAIIndex() [2/2]

int Material::GetZAIIndex ( ZAI zai)

Get the index of a given zai in the composition vector. Return -1 if not there.

◆ GetZAIInTree() [1/2]

ZAI * Material::GetZAIInTree ( int  Z,
int  A,
int  I 
)

◆ GetZAIInTree() [2/2]

ZAI* Material::GetZAIInTree ( ZAI zai)
inline

◆ HasModerator()

bool Material::HasModerator ( )
inline

< Whether or not will this Material contains a Moderator

◆ IsCladding()

bool Material::IsCladding ( )
inline

< return true if material has been declared as a cladding

◆ IsControlMaterial()

bool Material::IsControlMaterial ( )
inline

< return true if material is a control material (see ControlMaterial class)

◆ IsCoolant()

bool Material::IsCoolant ( )
inline

< return true if material has been declared as a coolant

◆ IsCoolantGap()

bool Material::IsCoolantGap ( )
inline

< return true if material has been declared as a Coolant gap

◆ IsEvolving()

bool Material::IsEvolving ( )
inline

< Whether or not will this Material will evolve with the time

◆ IsFuel()

bool Material::IsFuel ( )
inline

< return true if material has been declared as a Fuel

◆ IsModerator()

bool Material::IsModerator ( )
inline

< return true if material has been declared as a moderator

◆ IsModeratorBox()

bool Material::IsModeratorBox ( )
inline

< return true if material has been declared as a moderator box

◆ IsOutCore()

bool Material::IsOutCore ( )
inline

< whether or not the Material is evolving out of the core

◆ IsPerturbative()

bool Material::IsPerturbative ( )
inline

< Whether the material is a virtual (perturbative) material

◆ IsPerturbativeTallyMaterial()

bool Material::IsPerturbativeTallyMaterial ( )
inline

◆ IsPrintable()

bool Material::IsPrintable ( )
inline

< whether or not the Material is printable

◆ IsPseudoMaterial()

bool Material::IsPseudoMaterial ( )
inline

< Is pesudo material

◆ IsZAIInTree() [1/2]

bool Material::IsZAIInTree ( int  Z,
int  A,
int  I 
)

◆ IsZAIInTree() [2/2]

bool Material::IsZAIInTree ( ZAI zai)
inline

◆ MeanMolarMass()

double Material::MeanMolarMass ( )

return the mean molar mass (in gram)

◆ Mix()

Material * Material::Mix ( Material M2,
double  part,
ProportionUnitType  ProportionUnit = kpMOL 
)

Mix 2 Materials.

Material M2 is mixed with M1 ("this") to produced a new Material M12 with proportion M12=part*M2+(1-part)*this. It is assumed that M2 and this (M1) are only used for the mixture ; thus they will not be printed (Material::IsPrintable() is false). The new density is calculated as

\[ \rho_{12}=\frac{1}{\omega_1/\rho_1+\omega_2/\rho_2}\]

where $\omega_i$ and $\rho_i$ are mass fraction and density respectively of material Mi in the mixture.

Parameters
M2: the Material to be mixed with this
part: the part of M2 used for mixing (50% => part=0.5)
ProportionUnit: the unit of part used in the mixing (i.e., kpMOL, kpMASS, ...)

◆ PrintAll()

string Material::PrintAll ( )

Print the Material (and its Nuclei) in MCNP format.

A nucleus of a Materail is printed only if it is present in cross section databases and if it is significant: this means that N*Sigma_tot*Phi>epsilon...which has to be defined Print all nucleus (even if their proportion is null)

◆ PrintCompositionInfo()

string Material::PrintCompositionInfo ( )

Print out material composition

◆ PrintDensityUnit()

string Material::PrintDensityUnit ( DensityUnitType  DensityUnit = kdUNDEFINED)

Pretty print of density units.

Parameters
DensityUnit: unit of density (possible values are kdGCM3, kdATCM3 and kdATBCM)

◆ PrintProportionUnit()

string Material::PrintProportionUnit ( ProportionUnitType  ProportionUnit = kpUNDEFINED)

Pretty print of proportion units.

Parameters
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM)

◆ Proportion2AtomCM3()

void Material::Proportion2AtomCM3 ( )

Convert proportion unit (kpMOL or kpMASS) in at/cm3.

◆ ResetProportion()

void Material::ResetProportion ( )

set all proprtion to 0.

◆ SetCladding()

void Material::SetCladding ( bool  flag = true)
inline

< declares material as a cladding

◆ SetComposition()

void Material::SetComposition ( vector< Nucleus_ptr f)
inline

< set the composition vector

◆ SetCoolant()

void Material::SetCoolant ( bool  flag = true)
inline

< declares material as a Coolant

◆ SetCoolantGap()

void Material::SetCoolantGap ( bool  flag = true)
inline

< declares material as a Coolant Gap

◆ SetDefaultXSExtension()

void Material::SetDefaultXSExtension ( string  name)

Set a default extension for all nuclei of the material.

This is usefull if you don't have BaseSummary.dat file to find automatically the MCNP extension. See example Material_test.cxx

Parameters
name: extension name (e.g. ".60c")

◆ SetDensity()

void Material::SetDensity ( double  Density,
DensityUnitType  DensityUnit = kdGCM3 
)

Set the density.

Parameters
Density: the density in the specified units
DensityUnit: either kdGCM3 (g/cm3) (default), kdATCM3(at/cm3) or kdATBCM(at/barn.cm)

◆ SetEvolution()

void Material::SetEvolution ( )

Say that this Material will evolve.

◆ SetFuel()

void Material::SetFuel ( bool  flag = true)
inline

< declares material as a Fuel

◆ SetIsPerturbativeTallyMaterial()

void Material::SetIsPerturbativeTallyMaterial ( bool  f = true)
inline

◆ SetMaterialName()

void Material::SetMaterialName ( string  name)
inline

< declares the name of the material (used when thermal coupling)

◆ SetModerator()

void Material::SetModerator ( bool  flag = true)
inline

< declares material as a moderator

◆ SetModeratorBox()

void Material::SetModeratorBox ( bool  flag = true)
inline

< declares material as a ModeratorBox

◆ SetModeratorName()

void Material::SetModeratorName ( string  name)
inline

< set the moderatior name (e.g. lwtr.01t)

◆ SetNumber()

void Material::SetNumber ( int  n)
inline

< sets the MCNP Material number

◆ SetOutCore()

Cell * Material::SetOutCore ( int  TheNumber,
double  TheVolume 
)

return a out core cell of volume TheVolume and number TheNumber

◆ SetPerturbative()

void Material::SetPerturbative ( bool  flag = true)
inline

< Whether the material is a virtual (perturbative) material

◆ SetProportion()

void Material::SetProportion ( int  i,
double  proportion,
ProportionUnitType  ProportionUnit 
)

Set the Proportion of the ith nucleus.

Give units to proportion (% mol, % mass, at/barn.cm, at/cm3 or atoms). If any nuclides are already present in the material, Proportion vector is recalculated.

Parameters
i: index of the nucleus in the composition
proportion: the proportion of the nucleus
ProportionUnit: unit of proportion of Nucleus (possible values are kpMOL, kpMASS, kpATCM3, kpATBCM) Sets the ith proportion.

◆ SetPseudoMaterial()

void Material::SetPseudoMaterial ( )

Define a pesudo material.

A pseudo-material composed by a mixture of identicals nuclei at different temperatures to simulate a missing temperature ins nuclear data bases. Suppose, one needs 1 nucleus (code N) with a proportion p at temperature T but it is only avalaible at temperature T1 (code N1) and T2 (code N2) such as T1<T<T2. A "pseudo material" is then created with $ N_{1} (1-w_{2})\times p + N_{2} w_{2}\times p$ where

\[ w_{2}=\frac{\sqrt{T}-\sqrt{T_{1}}}{\sqrt{T_{2}}-\sqrt{T_{1}}}\]

◆ SetTemperature()

void Material::SetTemperature ( double  T = 293.6)

Set the temperature in K.

◆ SetTemperatureEvolution()

void Material::SetTemperatureEvolution ( bool  flag = true)

set the Temperature evolution flag

◆ SortCompositionByAmount()

void Material::SortCompositionByAmount ( )

Sort the proportions/compositions in proportion order (highest first).

◆ SortCompositionByMass()

void Material::SortCompositionByMass ( )

Sort the proportions/compositions in atomic mass order (highest first).

◆ SumProportion()

double Material::SumProportion ( )

return the sum of Proportion of each nucleus

◆ UpdateZAI()

void Material::UpdateZAI ( bool  WithReactions = true,
bool  WithSF = true 
)

Update all ZAI of material (With reactions&decays or just decays).

Member Data Documentation

◆ CFDensity

double Material::CFDensity
protected

◆ CFDensityUnit

DensityUnitType Material::CFDensityUnit
protected

◆ CFElementMolarMass

vector< double > Material::CFElementMolarMass
protected

◆ CFElementRho

vector< double > Material::CFElementRho
protected

◆ CFElements

vector< int > Material::CFElements
protected

◆ CFhs

vector< double > Material::CFhs
protected

◆ CFIsotopeProportions

vector< vector <double> > Material::CFIsotopeProportions
protected

◆ CFIsotopes

vector< vector <ZAI *> > Material::CFIsotopes
protected

◆ CFPropElement

vector<ProportionUnitType> Material::CFPropElement
protected

◆ CFps

vector< double > Material::CFps
protected

◆ fCFMeanMolarMass

double Material::fCFMeanMolarMass
protected

◆ fCladding

bool Material::fCladding
protected

whether or not this material is considered cladding.

◆ fComposition

vector< Nucleus_ptr > Material::fComposition
protected

the Composition vector

◆ fControlMaterial

bool Material::fControlMaterial
protected

This is a control material (e.g. for poison)

◆ fCoolant

bool Material::fCoolant
protected

whether or not this material is considered Coolant.

◆ fCoolantGap

bool Material::fCoolantGap
protected

whether or not this material is considered WaterGap.

◆ fDefaultXSExtension

string Material::fDefaultXSExtension
protected

Give a default extension to all nucleus.

◆ fDensity

double Material::fDensity
protected

Density of the Material.

◆ fDensityUnit

DensityUnitType Material::fDensityUnit
protected

Density unit (either g/cm3 (default), at/cm3 or at/barn.cm)

◆ fEvolution

bool Material::fEvolution
protected

whether or not will this Material will evolve with the time

◆ fFatherOfPseudoClone

Material* Material::fFatherOfPseudoClone
protected

the father to used in cell in case of Pseudo clone

◆ fFuel

bool Material::fFuel
protected

whether or not this material is considered fuel.

◆ fIndex

map< int, map < int, map < int, int > > > Material::fIndex
protected

The index of the ZAI in the material composition.

◆ fIsPerturbativeTallyMaterial

bool Material::fIsPerturbativeTallyMaterial
protected

◆ fMaterialName

string Material::fMaterialName
protected

Name of the material (uo2, water, ... used when thermal coupling)

◆ fModerator

bool Material::fModerator
protected

whether or not this material is considered moderator.

◆ fModeratorBox

bool Material::fModeratorBox
protected

whether or not this material is considered ModeratorBox.

◆ fModeratorName

string Material::fModeratorName
protected

Name of the moderator to be print in MT card (e.g. grph.06t)

◆ fNumber

int Material::fNumber
protected

Number of the Material in MCNP file.

◆ fOutCore

bool Material::fOutCore
protected

whether or not material is an Out core evolving material

◆ fPerturbative

bool Material::fPerturbative
protected

whether this Material is a virtual (perturbative) material for MCNP input

◆ fPrintable

bool Material::fPrintable
protected

whether or not material is printable in MCNP input file (default)

◆ fProportion

vector< double > Material::fProportion
protected

the Proportion vector

◆ fProportionUnit

ProportionUnitType Material::fProportionUnit
protected

Proportion vector unit (mol (default), at/barn.cm, at/cm3 or g/cm3)

◆ fPseudoMaterial

bool Material::fPseudoMaterial
protected

Is the material a pseudomaterial?

◆ fTemperature

double Material::fTemperature
protected

Temperature (in K) at which the Material is used (to find the right MCNP code)

◆ fTemperatureEvolution

bool Material::fTemperatureEvolution
protected

whether or not temperature will evolve

◆ fUpdated

bool Material::fUpdated
protected

true if ZAI have been updated (UpdateZAI) for evolution only


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

MURE Project, documentation generated by Doxygen 1.9.1 - Mon Jan 3 2022