MURE
|
A Cell is composed from a Shape and a Material. More...
#include <Cell.hxx>
Public Member Functions | |
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 Cell * | Clone () |
virtual | ~Cell () |
destructor | |
General Cell attributes | |
void | SetShape (Shape_ptr theShape) |
Shape_ptr | GetShape () |
void | SetMaterial (Material *theMaterial) |
set the Material constituing the Cell | |
Material * | GetMaterial () |
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". | |
Cell Transformations | |
Cell * | LikeBut (Cell *InsertionCell, Transformation *Transfo) |
Create new cloned cell, identical but with Translate/Rotate. | |
void | SetLikeNumber (int Number) |
int | GetLikeNumber () |
void | SetTransformation (Transformation *TR) |
Transformation * | GetTransformation () |
void | ExcludeCell (Cell *ACell) |
bool | IsLikeBut () |
vector< Cell * > & | GetExcludedCellVector () |
Cell Evolution linked methods | |
bool | IsEvolving () |
void | SetEvolutiveSystem (EvolutiveSystem *es) |
EvolutiveSystem * | GetEvolutiveSystem () |
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 () |
Reactivity control | |
these methods are used to control reactivity evolution (poison cell or control rod cell). | |
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 () |
Miscellaneous methods | |
int | fNumber |
MC Number of the Cell. | |
Shape_ptr | fShape |
Shape of the Cell. | |
Material * | fMaterial |
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. | |
EvolutiveSystem * | fEvolutiveSystem |
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, EqualReaction > | fControlRate |
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. | |
Transformation * | fTransformation |
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 | |
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 () |
virtual int | GetUniverse () |
Cell () | |
A Cell is composed from a Shape and a Material.
A Cell associates a geometrical shape (a Shape_ptr) with a Material (which can be void). Special Cells (daughters of Cell) are also defined they are LatticeCell and PinCell. The first one is used to define Lattice ; the second one is inspired from the Serpent pin: it allows user to define set of cells to describe "pin fuel" cylinder type cells (e.g. the fuel cylinder, a gap, the clad, and its outside). See PinCell class.
Cell::Cell | ( | Shape_ptr | theShape, |
Material * | theMaterial = nullptr , |
||
int | theImportance = 1 , |
||
double | theTemperature = - 10 |
||
) |
Normal constructor.
Create a Cell of geometrycal shape theShape, composed of theMaterial. if Material is specified and the cell temperature is not, the cell temperature is taken from the material The theImportance parameter is mainly related to MCNP importance (spatial population control). But a null importance is used by both Serpent and MCNP to defined the outside of the system (i.e. no particle are followed in a 0 importance cell ; it correspond to the "outside" key word of Serpent.
Default: a void Shape_ptr at 293.6K with importance 1.
Cell::Cell | ( | int | theNumber, |
Material * | theMaterial, | ||
double | theVolume, | ||
int | theImportance = 1 , |
||
double | theTemperature = - 10 |
||
) |
Special Constructor.
Use when the geometry is not a MURE one but a standard MCNP(X) one. This is only for evolving cells thus the Material must be a true one.
theNumber | : the Cell number in the user defined MCNP(X) geometry. |
theVolume | : the Cell volume of the user defined MCNP(X) geometry. MUST BE PROVIDED |
theMaterial | : the Material constituing the Cell |
theImportance | : Importance in the Cell: all particles importance are set to theImportance |
theTemperature | : Temperature (in K) of the Cell |
Cell::Cell | ( | Material * | theMaterial, |
int | theNumber, | ||
double | theVolume, | ||
double | theTemperature | ||
) |
used for OutCore virtual cells
Cell::Cell | ( | const Cell & | c | ) |
Copy constructor.
|
virtual |
destructor
|
protected |
|
inline |
< add a beta collector at a particular time step
void Cell::AddParticle | ( | string | Part, |
int | Imp | ||
) |
add a particle type Part (N, P or E) and its importance
void Cell::AddSpatialVariable | ( | string | name, |
double | value | ||
) |
Add spatial variables to a Cell.
Spatial variables are used only for post treatment (MureGui). The aim of these variables is to make conditions on what to plot.
|
inline |
< adding value to Nu sigma phi total
void Cell::BuildMultiGroupFlux | ( | ) |
Build the group flux for multigroup run.
|
inlinevirtual |
Reimplemented in LatticeCell, and PinCell.
|
inline |
< Vector of LikeBut cells to exclude
|
inline |
< return absorption rate of the cell
|
inline |
< return fission rate of the cell
|
inline |
< return (n, 2n) rate of the cell
|
inline |
< return (n, 3n) rate of the cell
|
inline |
< return Nu of the cell
|
inline |
< return fission*Nu rate of the cell
|
inline |
< return the Cell comment
|
inline |
< return the cell reaction rates when evolution is controled by ControlMaterial
|
inline |
< return the cell reaction rates when evolution is controled by ControlMaterial
|
inline |
< return the Control Rod length
|
inline |
< return the energy group array
|
inline |
< return the EvolutiveSystem of this cell
|
inline |
|
inline |
< returns the mean flux in this cell
|
inline |
< return the global particle's importance of the Cell
|
inline |
< return the Tally number
|
inline |
< returns the MC Cell importance (imp card)
|
inline |
< Set the like but number of new cell clone
double Cell::GetLocalKeff | ( | ) |
Calculate the value of Keff unique to this cell from reaction rates and surrounding fluxes.
double Cell::GetMass | ( | ) |
Get Cell mass.
|
inline |
< returns the mean flux in this cell
|
inline |
< return the multigroup flux vector
|
inline |
< get the value of the group i flux
|
inline |
< returns the Tally bin number
|
inline |
< returns Tally Number for the Cell
|
inline |
< returns Tally Number for the Cell
|
inline |
< returns Tally Number for the Cell
|
inline |
< return the number of groups of the flux
|
inline |
< returns N*sigmafis*Flux of a nucleus in a cell
|
inline |
< returns N*sigmafis*Flux
|
inline |
< returns the MC Number of the Cell
|
inline |
< Get Nutot*N*sigmafis*Flux of all nucleus in the cell
|
inline |
< returns the Particle type (N=neutron, P=photon, E=Electron)
double Cell::GetSpatialVariable | ( | string | name | ) |
Returns value of spatial variable "name".
|
inline |
< return spatial variable names
|
inline |
< return spatial varibale values
|
inline |
< returns the Tally bin number
|
inline |
< returns Tally Number for the Cell
|
inline |
< returns the temperature in K.
|
inline |
< Get spatial level position of a cell (used for thermal-hydraulics)
|
inline |
< Get spatial zone position (arbitrary) of a cell (used for thermal-hydraulics)
|
inline |
< Get the transformation of the new cell
|
inline |
< return true for a true Cell
|
inlinevirtual |
< returns the MC Universe Number of the Cell
Reimplemented in LatticeCell, and PinCell.
|
inline |
Get the Volume of a Cell.
Returns -1 when not able to calculate volume
|
inline |
< return the z level number of this cell
|
inline |
< return the zone number of this cell
|
inline |
< The cell is a PinCell
|
inline |
< return true for a Control Rod
|
inline |
< return true for an evolving cell
|
inline |
< return true for a fuel Cell
|
inline |
< return true for a guide tube coolant cell
|
inline |
|
inline |
< return true for a moderator Cell
|
inline |
< Whether or not the Cell is printable in the MC input file (virtual cells are not printed)
bool Cell::IsSpatialVariable | ( | string | name | ) |
Returns if spatial variable "name" is defined.
|
inline |
< virtual cells are used only for evolution purpose ; they are not printed in the MC input file
Cell * Cell::LikeBut | ( | Cell * | InsertionCell, |
Transformation * | Transfo | ||
) |
Create new cloned cell, identical but with Translate/Rotate.
|
inline |
< Set absorption rate of the cell
|
inline |
< Set fission rate of the cell
|
inline |
< Set (n, 2n) rate of the cell
|
inline |
< Set (n, 3n) rate of the cell
|
inline |
< Set fission*Nu rate of the cell
|
inline |
< Set fission*Nu rate of the cell
|
inline |
< Give a comment to the Cell (default=no comment)
|
inline |
Set Cell reaction rates when evolution is controled by ControlMaterial.
ReactionCode | : the wanted endf code corresponding to a reaction (e.g. 102 for (n, gamma)). |
rate | : the value. |
|
inline |
Set Cell reaction rates when evolution is controled by ControlMaterial.
r | : the wanted Reaction. |
rate | : the value. |
void Cell::SetControlRod | ( | double | InitialLength, |
bool | flag = true |
||
) |
give the initial length of a Control Rod
|
inline |
< give the length of a Control Rod (used in MURE only)
|
inline |
< set the energy group array
|
inline |
< set the EvolutiveSystem of this cell
|
inline |
< set the mean flux in this cell
|
inline |
< tell to the cell that it is (or not) an associated cell of a PinCell
|
inline |
< say that the Cell contains fuel
|
inline |
< Give the same importance to all transported particle in the Cell
|
inline |
< Give a Tally number for poison/control rod (abs, ...)
|
inline |
< Set that this cell is a GuideTube coolant cell
void Cell::SetImportance | ( | int | imp | ) |
Set all the MC Cell importance (imp card)
|
inline |
< Set the MC Cell importance for particle part
|
inline |
< Set the like but number of new cell clone
|
inline |
< set the mean flux in this cell
|
inline |
< say that the Cell moderator fuel
|
inline |
< set "Flux" to group i
|
inline |
< Set the Tally bin number (i.e. the bin in which the cell is stored)
|
inline |
< Set Tally Number for the Cell
|
inline |
< Set Tally Number for the Cell
|
inline |
< Set Tally Number for the Cell
|
inline |
< Set N*sigmafis*Flux of a nucleus in a cell - nucleus are arbitrary ordered
|
inline |
< set's the MC Number of the Cell
|
inline |
< used to renice
|
inline |
< set the printable flag
|
inline |
< give a Shape(_ptr) to the Cell
|
inline |
< Set the Tally bin number (i.e. the bin in which the cell is stored)
|
inline |
< Set Tally Number for the Cell
void Cell::SetTemperature | ( | double | T | ) |
set the temperature (in K) to T
|
inline |
< Set spatial level position of a cell (used for thermal-hydraulics)
|
inline |
< Set spatial zone position (arbitrary) of a cell (used for thermal-hydraulics)
|
inline |
< Set the transformation of the new cell
|
inline |
< say the cell is a true one
void Cell::SetVolume | ( | double | V | ) |
Set Cell volume.
|
inline |
< Set that this cell is in a certain zlevel with other cells
|
inline |
< Set that this cell is in a given zone with other cells
|
protected |
absorption rate of the cell
|
protected |
vector of gathered beta emitters at different time steps
|
protected |
a fissile material as been put in the Cell
|
protected |
fission rate of the cell
|
protected |
contains duplicates
|
protected |
(n, 2n) rate of the cell
|
protected |
(n, 2n) rate of the cell
|
protected |
fission rate of the cell
|
protected |
nu*fission rate of the cell
|
protected |
Cell comment (to be written in MC file)
|
protected |
cell reaction rates when evolution is controled by ControlMaterial
|
protected |
Whether or not the cell is a control rod.
|
protected |
Whether or not the cell is a control rod.
|
protected |
array of the energy groups
|
protected |
If the cell is evolving, then this is its corresponding evolutive system.
|
protected |
Whether or not the cell material is evolving.
|
protected |
Vector of all the other LikeBut cells inside this one.
|
protected |
Flux in the cell.
|
protected |
whether or not this cell has is fuel material.
|
protected |
vector of Importance in the Cell for the coresponding particle
|
protected |
Tally use for global reaction rates (on boron, control rod, ...) (fms)
|
protected |
Attribute to declare a guide tube cell containing the same coolant as neighbour cells.
|
protected |
vector of Importance in the Cell for the coresponding particle
|
protected |
Flag to say that new cell is like cell X, but put somewhere else.
|
protected |
if the Cell can be printed in the MC input file
|
protected |
true for True cell (fms)
|
protected |
The cell that it is copied from.
|
protected |
The local Keff of this cell.
|
protected |
mass of the cell.
|
protected |
Flux in the cell.
|
protected |
whether or not this has moderator material.
|
protected |
Tally Bin Number for flux calculation (evolution)
|
protected |
Tally Number for flux calculation (evolution)
|
protected |
|
protected |
Tally Number for flux calculation (evolution)
|
protected |
Number of nuclei in the cell.
|
protected |
Number of groups.
|
protected |
N*sigmafis*Flux of a nucleus in a cell.
|
protected |
MC Number of the Cell.
|
protected |
Nutot*N*sigmafis*Flux of all nucleus in the cell.
|
protected |
vector of Particle
|
protected |
The multigroup flux in case of multigroup run.
|
protected |
Names of the spatial variables (e.g assemblyx, crayon#, ringradius)
|
protected |
Information on the cell's spatial position.
|
protected |
Tally Bin Number for flux calculation (evolution)
|
protected |
Tally Number for flux calculation (evolution)
|
protected |
Temperature (in K) of the Cell.
|
protected |
explicit spatial level position of a cell (used for thermal-hydraulics)
|
protected |
explicit spatial zone position (arbitrary) of a cell (used for thermal-hydraulics)
|
protected |
The Transformation that applies to this like but cell.
|
protected |
the lattice array containing transformation number
|
protected |
whether it is a true MURE cell or a virtual (user define MC geometry).
|
protected |
the Cell Volume
|
protected |
The Z level of this cell, need for thermal coupling.
|
protected |
Attribute to declare a group of cells to be in the same zone.