MURE
Loading...
Searching...
No Matches
List of all members
PinCell Class Reference

PinCell class allows to create cylindrical cell set included as Matrioshka. More...

#include <PinCell.hxx>

Inheritance diagram for PinCell:
Cell

Public Member Functions

Constructors &clones
 PinCell (int universe=0)
 
 PinCell (const PinCell &c)
 
 ~PinCell () override
 
PinCellClone () override
 
PinCellDuplicate ()
 
Layer methods
void AddLayer (Material *mat, double R, double Volume=- 1)
 
MaterialGetLayerMaterial (int i)
 return the material of the layer i (i=0, innerest layer)
 
void SetLayerMaterial (int i, Material *mat)
 
double GetLayerRadius (int i)
 return the radius of the layer i
 
int GetNumberOfLayer ()
 
Surrounding material methods

return the total number of layer

void SetSurroundingMaterial (Material *mat, double Volume=- 1)
 
MaterialGetSurroundingMaterial () const
 
bool IsSurroundingMaterialCalled ()
 
- Public Member Functions inherited from Cell
 Cell (Shape_ptr theShape, Material *theMaterial=nullptr, int theImportance=1, double theTemperature=- 10)
 Normal constructor.
 
 Cell (int theNumber, Material *theMaterial, double theVolume, int theImportance=1, double theTemperature=- 10)
 Special Constructor.
 
 Cell (Material *theMaterial, int theNumber, double theVolume, double theTemperature)
 used for OutCore virtual cells
 
 Cell (const Cell &c)
 Copy constructor.
 
virtual CellClone ()
 
virtual ~Cell ()
 destructor
 
void SetShape (Shape_ptr theShape)
 
Shape_ptr GetShape ()
 
void SetMaterial (Material *theMaterial)
 set the Material constituing the Cell
 
MaterialGetMaterial ()
 
void SetTemperature (double T)
 set the temperature (in K) to T
 
double GetTemperature ()
 
void SetImportance (int imp)
 Set all the MC Cell importance (imp card)
 
void SetImportance (int part, int imp)
 
vector< int > & GetImportance ()
 
vector< string > & GetParticle ()
 
void AddParticle (string Part, int Imp)
 add a particle type Part (N, P or E) and its importance
 
int GetNumber ()
 
void SetNumber (int Number)
 
void SetGlobalImportance (int imp)
 
int GetGlobalImportance ()
 
double GetVolume ()
 Get the Volume of a Cell.
 
void SetVolume (double V)
 Set Cell volume.
 
double GetMass ()
 Get Cell mass.
 
void SetComment (string Comment="")
 
string GetComment ()
 
void AddSpatialVariable (string name, double value)
 Add spatial variables to a Cell.
 
vector< string > & GetSpatialVariableNames ()
 
vector< double > & GetSpatialVariables ()
 
bool IsSpatialVariable (string name)
 Returns if spatial variable "name" is defined.
 
double GetSpatialVariable (string name)
 Returns value of spatial variable "name".
 
CellLikeBut (Cell *InsertionCell, Transformation *Transfo)
 Create new cloned cell, identical but with Translate/Rotate.
 
void SetLikeNumber (int Number)
 
int GetLikeNumber ()
 
void SetTransformation (Transformation *TR)
 
TransformationGetTransformation ()
 
void ExcludeCell (Cell *ACell)
 
bool IsLikeBut ()
 
vector< Cell * > & GetExcludedCellVector ()
 
bool IsEvolving ()
 
void SetEvolutiveSystem (EvolutiveSystem *es)
 
EvolutiveSystemGetEvolutiveSystem ()
 
void SetTallyNumber (int num)
 
int GetTallyNumber ()
 
void SetTallyBinNumber (int num)
 
int GetTallyBinNumber ()
 
void SetMultiplicatorTallyNumber (int num)
 
int GetMultiplicatorTallyNumber ()
 
void SetMultiplicatorTallyBinNumber (int num)
 
int GetMultiplicatorTallyBinNumber ()
 
void SetMultiplicatorTallyU8Number (int num)
 
int GetMultiplicatorTallyU8Number ()
 
void SetMultiplicatorTallyU8BinNumber (int num)
 
int GetMultiplicatorTallyU8BinNumber ()
 
void SetFlux (double phi)
 
void SetMCFlux (ValErr_t phi)
 
double GetFlux ()
 
ValErr_t GetMCFlux ()
 
void BuildMultiGroupFlux ()
 Build the group flux for multigroup run.
 
void SetMultiGroupFlux (int i, ValErr_t Flux)
 
ValErr_t GetMultiGroupFlux (int i)
 
vector< ValErr_t > & GetMultiGroupFlux ()
 
int GetNEnergyGroup ()
 
void SetEnergyGroup (vector< float > &nrj)
 
vector< float > & GetEnergyGroups ()
 
void SetTrueCell ()
 
bool GetTrueCell ()
 
void SetGlobalTallyNumber (int num)
 
int GetGlobalTallyNumber ()
 
void SetCellAbsorptions (ValErr_t rate)
 
void SetCellN2N (ValErr_t rate)
 
void SetCellN3N (ValErr_t rate)
 
void SetCellFissions (ValErr_t rate)
 
void SetCellNuFissions (ValErr_t rate)
 
void SetCellNu (ValErr_t rate)
 
void SetControlRate (Reaction r, ValErr_t rate)
 
void SetControlRate (int ReactionCode, ValErr_t rate)
 
ValErr_t GetCellAbsorptions ()
 
ValErr_t GetCellN2N ()
 
ValErr_t GetCellN3N ()
 
ValErr_t GetCellFissions ()
 
ValErr_t GetCellNuFissions ()
 
ValErr_t GetCellNu ()
 
ValErr_t GetControlRate (Reaction r)
 
ValErr_t GetControlRate (int ReactionCode)
 
bool IsFissile ()
 return true when a Cell contains a fissile Nucleus
 
bool IsControlRod ()
 
void SetControlRod (double InitialLength, bool flag=true)
 give the initial length of a Control Rod
 
void SetControlRodLength (double l)
 
double GetControlRodLength ()
 
bool IsFuel ()
 
bool IsModerator ()
 
void SetFuel (bool flag=true)
 
void SetModerator (bool flag=true)
 
void SetZone (int z)
 
int GetZone ()
 
void SetZlevel (int z)
 
int GetZlevel ()
 
void SetGuideTubeCoolant ()
 
bool IsGuideTubeCoolant ()
 
double GetLocalKeff ()
 Calculate the value of Keff unique to this cell from reaction rates and surrounding fluxes.
 
void AddBetaCollector (BetaCollector *BC)
 
bool IsVirtual ()
 
bool IsFromPinCell ()
 
void SetFromPinCell (bool flag)
 
bool IsAPinCell ()
 
bool IsPrintable ()
 
void SetPrintable (bool flag)
 
void SetTHLevelPosition (int level)
 
int GetTHLevelPosition ()
 
void SetTHZonePosition (int zone)
 
int GetTHZonePosition ()
 
void AddToNuNSigmaFisPhi (double Value)
 
void SetNuNSigmaFisPhi (double Value)
 
double GetNuNSigmaFisPhi ()
 
void SetNSigmaFisPhiOfNucleus (int i, double Value)
 
double GetNSigmaFisPhiOfNucleus (int i)
 
vector< double > GetNSigmaFisPhiOfAllNucleus ()
 

Miscellaneous methods

vector< double > fR
 a vector of radii
 
vector< double > fLayerVolume
 a vector of layer volumes
 
vector< Material * > fMaterialVector
 a vector of layer material
 
MaterialfSurroundingMaterial
 the surrounding material
 
int fUniverse
 the pin universe number
 
int fControlLayerNumber
 the number of the layer containing the control material
 
bool fIsSurroundingMaterialCalled
 just to be sure that the surrounding material has been called
 
vector< int > fAssociatedCellNumber
 vector of associated cell number
 
bool fAutoBuildingCells
 True if the Connector::BuildPinCells is called from EvolutionSolver (with Auto flag=true)
 
vector< double > fTranslation
 translation vector of the PinCell
 
bool fTrueTranslation
 if the translation is forced for Serpent (i.e., the translation is also done in Serpent)
 
vector< vector< double > > fPCSpatialVariables
 Information on the cell's spatial position.
 
vector< vector< string > > fPCSpatialVariableNames
 Names of the spatial variables (e.g assemblyx, crayon#, ringradius)
 
string fPinType
 a type of pin (Fuel, Guide Tube, ...)
 
void Translate (double dx, double dy, double dz, bool ForceTranslation=false)
 
vector< double > & GetTranslation ()
 
bool IsTrueTranslation ()
 
bool IsTranslated ()
 true if the PinCell has been translated
 
void SetLayerVolume (int i, double V)
 
double GetLayerVolume (int i)
 
void AddSpatialVariable (int layeridx, string name, double value)
 add Spatial variable to a layer or to the surrounding material
 
vector< string > & GetSpatialVariableNames (int layeridx)
 
vector< double > & GetSpatialVariables (int layeridx)
 
int GetUniverse () override
 
void SetUniverse (int u)
 
void AddAssociatedCellNumber (int num)
 
vector< int > & GetAssociatedCellNumber ()
 
CellGetAssociatedCell (int i)
 return the ith associated cell
 
void SetAutoBuildingCells (bool flag)
 
bool IsAutoBuildingCells ()
 
void SetPinType (string type)
 
string GetPinType ()
 
void SetControlLayerNumber (int ControlLayerNumber)
 
int GetControlLayerNumber ()
 

Additional Inherited Members

- Protected Member Functions inherited from Cell
 Cell ()
 
- Protected Attributes inherited from Cell
int fNumber
 MC Number of the Cell.
 
Shape_ptr fShape
 Shape of the Cell.
 
MaterialfMaterial
 Material constituing the Cell.
 
double fTemperature
 Temperature (in K) of the Cell.
 
double fFlux
 Flux in the cell.
 
ValErr_t fMCFlux
 Flux in the cell.
 
int fGlobalImportance
 vector of Importance in the Cell for the coresponding particle
 
vector< int > fImportance
 vector of Importance in the Cell for the coresponding particle
 
vector< string > fParticle
 vector of Particle
 
string fComment
 Cell comment (to be written in MC file)
 
double fVolume
 the Cell Volume
 
bool fEvolving
 Whether or not the cell material is evolving.
 
double fMass
 mass of the cell.
 
double fNatoms
 Number of nuclei in the cell.
 
EvolutiveSystemfEvolutiveSystem
 If the cell is evolving, then this is its corresponding evolutive system.
 
int fTallyNum
 Tally Number for flux calculation (evolution)
 
int fTallyBinNum
 Tally Bin Number for flux calculation (evolution)
 
int fGlobalTallyNum
 Tally use for global reaction rates (on boron, control rod, ...) (fms)
 
int fMultiplicatorTallyNum
 Tally Number for flux calculation (evolution)
 
int fMultiplicatorTallyBinNum
 Tally Bin Number for flux calculation (evolution)
 
int fMultiplicatorTallyU8Num
 Tally Number for flux calculation (evolution)
 
int fMultiplicatorTallyU8BinNum
 
vector< double > fSpatialVariables
 Information on the cell's spatial position.
 
vector< string > fSpatialVariableNames
 Names of the spatial variables (e.g assemblyx, crayon#, ringradius)
 
bool fIsTrueCell
 true for True cell (fms)
 
vector< BetaCollector * > fCellBetaCollectors
 vector of gathered beta emitters at different time steps
 
ValErr_t fCellAbsorptions
 absorption rate of the cell
 
ValErr_t fCellN2N
 (n, 2n) rate of the cell
 
ValErr_t fCellN3N
 (n, 2n) rate of the cell
 
ValErr_t fCellNuFissions
 nu*fission rate of the cell
 
ValErr_t fCellFissions
 fission rate of the cell
 
ValErr_t fCellNu
 fission rate of the cell
 
map< Reaction, ValErr_t, EqualReactionfControlRate
 cell reaction rates when evolution is controled by ControlMaterial
 
bool fCellCanFission
 a fissile material as been put in the Cell
 
vector< double > fCellGlobalRatesVector
 contains duplicates
 
int *** fTransLattice
 the lattice array containing transformation number
 
bool fControlRod
 Whether or not the cell is a control rod.
 
double fControlRodLength
 Whether or not the cell is a control rod.
 
bool fIsLikeBut
 Flag to say that new cell is like cell X, but put somewhere else.
 
int fLikeNumber
 The cell that it is copied from.
 
TransformationfTransformation
 The Transformation that applies to this like but cell.
 
vector< Cell * > fExcludedCells
 Vector of all the other LikeBut cells inside this one.
 
bool fFuel
 whether or not this cell has is fuel material.
 
bool fModerator
 whether or not this has moderator material.
 
bool fGuideTubeCoolant
 Attribute to declare a guide tube cell containing the same coolant as neighbour cells.
 
bool fVirtual
 whether it is a true MURE cell or a virtual (user define MC geometry).
 
int fZlevel
 The Z level of this cell, need for thermal coupling.
 
int fZone
 Attribute to declare a group of cells to be in the same zone.
 
int fTHLevelPosition
 explicit spatial level position of a cell (used for thermal-hydraulics)
 
int fTHZonePosition
 explicit spatial zone position (arbitrary) of a cell (used for thermal-hydraulics)
 
double fLocalKeff
 The local Keff of this cell.
 
vector< ValErr_t > fPhiE
 The multigroup flux in case of multigroup run.
 
vector< float > fEnergyGroups
 array of the energy groups
 
int fNEnergyGroup
 Number of groups.
 
double fNuNSigmaFisPhiTotalOfCell
 Nutot*N*sigmafis*Flux of all nucleus in the cell.
 
vector< double > fNSigmaFisPhiOfNucleus
 N*sigmafis*Flux of a nucleus in a cell.
 
bool fIsPrintable
 if the Cell can be printed in the MC input file
 
bool fIsFromPinCell
 if the Cell is a PinCell associated cell
 
bool fIsAPinCell
 if the Cell is not a Cell but a PinCell
 

Detailed Description

PinCell class allows to create cylindrical cell set included as Matrioshka.

PinCell class has been implemented to copy the Serpent Pin card. It allows user to defined infinite cylindrical cells with there material as russian dolls: user defines the inner part of the pin (in general, fuel pin) of a given radius (1st layer), then other cylinder/material pair by adding new layers (e.g. gas gap, clad, ...) and then a surrounding material. The latter one MUST be called in any case.

PinCell are normally placed inside a LatticeCell, thus they have a universe number.

To be noticed: a easy way to define the whole universe filling an "reflector" assambly, is to defined a PinCell without layer, just a surronding material (which is always mandatory).

Author
PTO
Version
1.0

Constructor & Destructor Documentation

◆ PinCell() [1/2]

PinCell::PinCell ( int  universe = 0)

◆ PinCell() [2/2]

PinCell::PinCell ( const PinCell c)

◆ ~PinCell()

PinCell::~PinCell ( )
override

Member Function Documentation

◆ AddAssociatedCellNumber()

void PinCell::AddAssociatedCellNumber ( int  num)
inline

Add an Associated Cell. In MCNP, pincell does not exist, thus true cells are built for each PinCell: they are the "associated cells" of this pin cell; their numbers are stored for furter use. In Serpent, even if pin cells exit, we use virtual associated cell for evolution of this pincells. Again their number are stored here. Cells numbers are stored from the most inner layer to the most outer.

Parameters
num: the Cell number of the assiated cell.

◆ AddLayer()

void PinCell::AddLayer ( Material mat,
double  R,
double  Volume = - 1 
)

Add a layer to a PinCell The first layer is number with index 0, the 2nd with index 1, ... The volume (i.e. volume of the cylinder cut by the filled cell) can be provided. Any negative value will imply a stochastic volume calculation if a tally on that layer is asked.

Parameters
mat: the material composing the layer
R: the radius of the layer
Volume: the real volume of the layer

◆ AddSpatialVariable()

void PinCell::AddSpatialVariable ( int  layeridx,
string  name,
double  value 
)

add Spatial variable to a layer or to the surrounding material

◆ Clone()

PinCell * PinCell::Clone ( )
inlineoverridevirtual

Reimplemented from Cell.

◆ Duplicate()

PinCell * PinCell::Duplicate ( )

Duplicate a PinCell The duplicated PinCell has exactly same properpties than the original but materials numbers and universe number are different..

◆ GetAssociatedCell()

Cell * PinCell::GetAssociatedCell ( int  i)

return the ith associated cell

◆ GetAssociatedCellNumber()

vector< int > & PinCell::GetAssociatedCellNumber ( )
inline

< return the associated cell number vector

◆ GetControlLayerNumber()

int PinCell::GetControlLayerNumber ( )
inline

< Get the layer in which the control material for RodEvolutionControl is.

◆ GetLayerMaterial()

Material * PinCell::GetLayerMaterial ( int  i)

return the material of the layer i (i=0, innerest layer)

◆ GetLayerRadius()

double PinCell::GetLayerRadius ( int  i)

return the radius of the layer i

◆ GetLayerVolume()

double PinCell::GetLayerVolume ( int  i)
inline

< return the volume of a layer or of the surrounding material

◆ GetNumberOfLayer()

int PinCell::GetNumberOfLayer ( )
inline

◆ GetPinType()

string PinCell::GetPinType ( )
inline

< return the pin type (Fuel, Guide Tube, ...)

◆ GetSpatialVariableNames()

vector< string > & PinCell::GetSpatialVariableNames ( int  layeridx)
inline

< return spatial variable names

◆ GetSpatialVariables()

vector< double > & PinCell::GetSpatialVariables ( int  layeridx)
inline

< return spatial varibale values

◆ GetSurroundingMaterial()

Material * PinCell::GetSurroundingMaterial ( ) const
inline

< return the surrounding material

◆ GetTranslation()

vector< double > & PinCell::GetTranslation ( )
inline

< return translation vector

◆ GetUniverse()

int PinCell::GetUniverse ( )
inlineoverridevirtual

< return the universe of the PinCell

Reimplemented from Cell.

◆ IsAutoBuildingCells()

bool PinCell::IsAutoBuildingCells ( )
inline

< True if the Connector::BuildPinCells is called from EvolutionSolver (with Auto flag=true)

◆ IsSurroundingMaterialCalled()

bool PinCell::IsSurroundingMaterialCalled ( )
inline

< whether or not the Mandatory SetSurroundingMaterial has been called

◆ IsTranslated()

bool PinCell::IsTranslated ( )

true if the PinCell has been translated

◆ IsTrueTranslation()

bool PinCell::IsTrueTranslation ( )
inline

< whether or not the translation is forced (for Serpent only)

◆ SetAutoBuildingCells()

void PinCell::SetAutoBuildingCells ( bool  flag)
inline

< set to flag fAutoBuildingCells to know if the Connector::BuildPinCells is called from EvolutionSolver (with Auto flag=true)

◆ SetControlLayerNumber()

void PinCell::SetControlLayerNumber ( int  ControlLayerNumber)
inline

< Set the layer in which the control material for RodEvolutionControl is. Mandatory for use of RodEvolutionControl with PinCell

◆ SetLayerMaterial()

void PinCell::SetLayerMaterial ( int  i,
Material mat 
)
inline

< set the material of the layer i

◆ SetLayerVolume()

void PinCell::SetLayerVolume ( int  i,
double  V 
)
inline

Set the volume of a layer or the surrounding material. Set the volume of the layer index i (i=0, most inner layer) or of the surrounding material ; in this case i=GetNumberOfLayer().

Parameters
i: index of the layer or GetNumberOfLayer() for the surrounding material
V: the real volume of the layer or the surrounding material

◆ SetPinType()

void PinCell::SetPinType ( string  type)
inline

< set the pin type (Fuel, Guide Tube, ...)

◆ SetSurroundingMaterial()

void PinCell::SetSurroundingMaterial ( Material mat,
double  Volume = - 1 
)

Set the surrounding material of a PinCell. This method MUST be called ; if no layer are defined, it simply defined the whole space. The volume (i.e. volume of the outside of the last layer cylinder cut by the filled cell/lattice) can be provided. Any negative value will imply a stochastic volume calculation if a tally on that layer is asked.

Parameters
mat: the material composing the exterior of the last layer's cylinder
Volume: the real volume of the surrounding material

◆ SetUniverse()

void PinCell::SetUniverse ( int  u)
inline

< set the universe of the PinCell

◆ Translate()

void PinCell::Translate ( double  dx,
double  dy,
double  dz,
bool  ForceTranslation = false 
)

Translate a PinCell. Translate the whole PinCell in MCNP. In Serpent, a PinCell placed in a Lattice with a translated origin (i.e. not in 0, 0, 0) is automatically translated. Thus it is not needed to translate it ; then any call to PinCell::Translate(dx, dy, dz) if Serpent namespace is chosen in ineffective. It is nevertheless possible to translate this PinCell "in Serpent namespace" by using PinCell::Translate(dx, dy, dz, true). This last call force the translation (which can be usefull even in Serpent).

Parameters
dx: x-translation of dx (in m)
dy: y-translation of dy (in m)
dz: z-translation of dz (in m) (certainly useless to translate a "infinit" z-cylinder along z...)
ForceTranslation: no take into account with MCNP namespace ; force translation with Serpent namespace

Member Data Documentation

◆ fAssociatedCellNumber

vector< int > PinCell::fAssociatedCellNumber
private

vector of associated cell number

◆ fAutoBuildingCells

bool PinCell::fAutoBuildingCells
private

True if the Connector::BuildPinCells is called from EvolutionSolver (with Auto flag=true)

◆ fControlLayerNumber

int PinCell::fControlLayerNumber
private

the number of the layer containing the control material

◆ fIsSurroundingMaterialCalled

bool PinCell::fIsSurroundingMaterialCalled
private

just to be sure that the surrounding material has been called

◆ fLayerVolume

vector< double > PinCell::fLayerVolume
private

a vector of layer volumes

◆ fMaterialVector

vector< Material * > PinCell::fMaterialVector
private

a vector of layer material

◆ fPCSpatialVariableNames

vector< vector < string > > PinCell::fPCSpatialVariableNames
private

Names of the spatial variables (e.g assemblyx, crayon#, ringradius)

◆ fPCSpatialVariables

vector< vector < double > > PinCell::fPCSpatialVariables
private

Information on the cell's spatial position.

◆ fPinType

string PinCell::fPinType
private

a type of pin (Fuel, Guide Tube, ...)

◆ fR

vector< double > PinCell::fR
private

a vector of radii

◆ fSurroundingMaterial

Material* PinCell::fSurroundingMaterial
private

the surrounding material

◆ fTranslation

vector< double > PinCell::fTranslation
private

translation vector of the PinCell

◆ fTrueTranslation

bool PinCell::fTrueTranslation
private

if the translation is forced for Serpent (i.e., the translation is also done in Serpent)

◆ fUniverse

int PinCell::fUniverse
private

the pin universe number


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

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