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

A ControlMaterial. More...

#include <ControlMaterial.hxx>

Inheritance diagram for ControlMaterial:
Material

Public Member Functions

 ControlMaterial ()
 Normal Constructor. More...
 
 ControlMaterial (int theNumber)
 Special Constructor. More...
 
 ControlMaterial (const ControlMaterial &m)
 Copy constructor. More...
 
 ControlMaterial (const Material &m)
 Copy constructor. More...
 
 ~ControlMaterial ()
 Destructor. More...
 
MaterialCopy ()
 Correct copy method. Use instead of copy constructor! More...
 
void AddTheControlNucleus (int Z, int A, double Proportion, ProportionUnitType ProportionUnit=kpMOL)
 Add the nucleus chosen as the control nucleus (tallies are taken for it) More...
 
MaterialClone (double Temperature=-1)
 Clone a ControlMaterial. More...
 
vector< int > & GetControlIndex ()
 returns the index list of the control nuclei in the composition vector More...
 
vector< Reaction > & GetControlReactions ()
 returns the index list of the control nuclei in the composition vector More...
 
void AddControlReaction (Reaction r)
 
ControlMaterialMix (Material *M2, double part, ProportionUnitType ProportionUnit)
 Mix 2 Materials. More...
 
vector< Material * > Duplicate (int N)
 Duplicate material n times over. More...
 
- Public Member Functions inherited from Material
 Material ()
 Normal Constructor. More...
 
 Material (int theNumber)
 Special Constructor. More...
 
 Material (const Material &m)
 Copy constructor. More...
 
virtual ~Material ()
 Destructor. More...
 
void AddNucleus (int Z, int A, double Proportion=1., ProportionUnitType ProportionUnit=kpMOL, string ModeratorCatgory="")
 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 ModeratorCatgory="")
 Add a new Nucleus to the Material composition. More...
 
void AddNucleus (ZAI *zai, double Proportion=1., ProportionUnitType ProportionUnit=kpMOL, string ModeratorCatgory="")
 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 ()
 return the Composition vector More...
 
Nucleus_ptr GetComposition (int i)
 return the Composition vector More...
 
void SetComposition (vector< Nucleus_ptr > f)
 set the composition vector More...
 
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, Material *M3=0)
 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 ()
 return the proportion units More...
 
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...
 
double GetDensity (DensityUnitType DensityUnit)
 
void SetDensity (double Density, DensityUnitType DensityUnit=kdGCM3)
 Set the density. More...
 
DensityUnitType GetDensityUnit ()
 return the density units More...
 
double GetTemperature ()
 returns the temperature in K. More...
 
void SetTemperature (double T=293.6)
 Set the temperature in K. More...
 
bool HasModerator ()
 Whether or not will this Material contains a Moderator. More...
 
double MeanMolarMass ()
 return the mean molar mass (in gram) More...
 
bool IsFuel ()
 return true if material has been declared as a Fuel More...
 
bool IsModerator ()
 return true if material has been declared as a moderator More...
 
bool IsCladding ()
 return true if material has been declared as a cladding More...
 
bool IsCoolant ()
 return true if material has been declared as a coolant More...
 
bool IsWaterGap ()
 return true if material has been declared as a water gap More...
 
bool IsModeratorBox ()
 return true if material has been declared as a moderator box More...
 
void SetFuel (bool flag=true)
 declares material as a Fuel More...
 
void SetModerator (bool flag=true)
 declares material as a moderator More...
 
void SetCladding (bool flag=true)
 declares material as a cladding More...
 
void SetCoolant (bool flag=true)
 declares material as a Coolant More...
 
void SetWaterGap (bool flag=true)
 declares material as a WaterGap More...
 
void SetModeratorBox (bool flag=true)
 declares material as a ModeratorBox More...
 
string Print ()
 Print the Material (and its Nuclei) in MCNP format. More...
 
string PrintAll ()
 
string PrintModerator ()
 Print the MT card for moderator (e.g. grph.06t). More...
 
string PrintCompositionInfo ()
 
void ForbidPrint ()
 Forbid Material print in MCNP. More...
 
void EnablePrint ()
 allow a Material print in MCNP. More...
 
void SetPseudoMaterial ()
 Define it as a pesudo material. More...
 
bool IsPseudoMaterial ()
 Is pesudo material. More...
 
bool IsPrintable ()
 wether or not the Material is printable More...
 
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...
 
int GetNumber ()
 Returns the MCNP Material number. More...
 
void SetNumber (int n)
 sets the MCNP Material number More...
 
void SetDefaultXSExtension (string name)
 Set a default extension for all nuclei of the material. More...
 
string GetDefaultXSExtension ()
 return default extension for all nuclei of the material. More...
 
void SetEvolution ()
 Say that this Material will evolve. More...
 
bool IsEvolving ()
 Whether or not will this Material will evolve with the time. More...
 
bool IsPerturbative ()
 Whether the material is a virtual (perturbative) material. More...
 
void SetPerturbative (bool flag=true)
 Whether the material is a virtual (perturbative) material. More...
 
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 ()
 returns the father ("original") of a pseudo clone More...
 
void SetTemperatureEvolution (bool flag=true)
 set the Temperature evolution flag More...
 
bool IsOutCore ()
 wether or not the Material is evolving out of the core More...
 
CellSetOutCore (int TheNumber, double TheVolume)
 return a out core cell of volume TheVolume and number TheNumber More...
 
void SetMaterialName (string name)
 declares the name of the material (used when thermal coupling) More...
 
string GetMaterialName ()
 returns the name of material More...
 
void ResetTree ()
 Delete the fTree static attribute. More...
 

Private Member Functions

 ControlMaterial (ControlMaterial *m)
 kind of Copy constructor called by clone. More...
 

Private Attributes

vector< int > fControlIndex
 Indices of the control nuclei in the composition vector. More...
 
vector< ReactionfControlReactions
 Reactions which are to be tallied. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Material
 Material (Material *m)
 Private Constructor. More...
 
- Protected Attributes inherited from Material
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...
 
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 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...
 
ProportionUnitType fProportionUnit
 Proportion vector unit (mol (default), at/barn.cm, at/cm3 or g/cm3) 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 fTemperatureEvolution
 whether or not temperature will evolve More...
 
bool fFuel
 whether or not this material is considered fuel. More...
 
bool fModerator
 whether or not this material is considered moderator. More...
 
bool fCladding
 whether or not this material is considered cladding. More...
 
bool fCoolant
 whether or not this material is considered Coolant. More...
 
bool fWaterGap
 whether or not this material is considered WaterGap. More...
 
bool fModeratorBox
 whether or not this material is considered ModeratorBox. 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...
 
- Static Protected Attributes inherited from Material
static NucleiTreefTree =0
 The whole chart of Nucleide. More...
 

Detailed Description

A ControlMaterial.

ControlMaterial allows to control Evolution via tallies of a material, e.g. poison control or fissile content control. Appropriate EvolutionControl has to be used or defined, as well as reactions used for tallying.

Author
Frantisek
PTO
@version 0.1

Constructor & Destructor Documentation

ControlMaterial::ControlMaterial ( )

Normal Constructor.

ControlMaterial::ControlMaterial ( int  theNumber)

Special Constructor.

Use when the geometry is not a MURE one but a standard MCNP(X) one

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

Copy constructor.

ControlMaterial::ControlMaterial ( const Material m)

Copy constructor.

ControlMaterial::~ControlMaterial ( )
inline

Destructor.

ControlMaterial::ControlMaterial ( ControlMaterial m)
private

kind of Copy constructor called by clone.

Member Function Documentation

void ControlMaterial::AddControlReaction ( Reaction  r)

add a reaction to be tallied

void ControlMaterial::AddTheControlNucleus ( int  Z,
int  A,
double  Proportion,
ProportionUnitType  ProportionUnit = kpMOL 
)

Add the nucleus chosen as the control nucleus (tallies are taken for it)

This method adds the nucleus as a control one. More control nuclei can be defined. Tallies are taken for control nucleus and their amount in the control material is adjusted. accordingly to their reaction rates etc. (e.g. for poison, these are the poison nuclei - B-10 and B-11, because although B-11 is not important as an absorber, it's proportion has to be modified along with B-10 proportion).

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

Clone a ControlMaterial.

 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 from Material.

Material * ControlMaterial::Copy ( )
virtual

Correct copy method. Use instead of copy constructor!

Reimplemented from Material.

vector< Material * > ControlMaterial::Duplicate ( int  N)

Duplicate material n times over.

vector<int>& ControlMaterial::GetControlIndex ( )
inline

returns the index list of the control nuclei in the composition vector

vector<Reaction>& ControlMaterial::GetControlReactions ( )
inline

returns the index list of the control nuclei in the composition vector

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

Mix 2 Materials.

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

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., mol, mass, ...)

Member Data Documentation

vector<int> ControlMaterial::fControlIndex
private

Indices of the control nuclei in the composition vector.

vector<Reaction> ControlMaterial::fControlReactions
private

Reactions which are to be tallied.


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

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