- blockSubdomains for which to add tallies in OpenMC. If not provided, tallies will be applied over the entire domain corresponding to the [Mesh] block.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:Subdomains for which to add tallies in OpenMC. If not provided, tallies will be applied over the entire domain corresponding to the [Mesh] block.
- blocksThis parameter is deprecated, use 'block' instead!
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:This parameter is deprecated, use 'block' instead!
- check_equal_mapped_tally_volumesFalseWhether to check if the tallied cells map to regions in the mesh of equal volume. This can be helpful to ensure that the volume normalization of OpenMC's tallies doesn't introduce any unintentional distortion just because the mapped volumes are different. You should only set this to true if your OpenMC tally cells are all the same volume!
Default:False
C++ Type:bool
Controllable:No
Description:Whether to check if the tallied cells map to regions in the mesh of equal volume. This can be helpful to ensure that the volume normalization of OpenMC's tallies doesn't introduce any unintentional distortion just because the mapped volumes are different. You should only set this to true if your OpenMC tally cells are all the same volume!
- check_tally_sumFalseWhether to check consistency between the local tallies with a global tally sum. This will require that the integral of the local tally matches a tally with no filters (defined over the entire phase space).
Default:False
C++ Type:bool
Controllable:No
Description:Whether to check consistency between the local tallies with a global tally sum. This will require that the integral of the local tally matches a tally with no filters (defined over the entire phase space).
- equal_tally_volume_abs_tol1e-08Absolute tolerance for comparing tally volumes
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Range:equal_tally_volume_abs_tol > 0
Controllable:No
Description:Absolute tolerance for comparing tally volumes
- estimatorType of tally estimator to use in OpenMC
C++ Type:MooseEnum
Controllable:No
Description:Type of tally estimator to use in OpenMC
- filtersExternal filters to add to this tally.
C++ Type:std::vector<std::string>
Controllable:No
Description:External filters to add to this tally.
- nameAuxiliary variable name(s) to use for OpenMC tallies. If not specified, defaults to the names of the scores
C++ Type:std::vector<std::string>
Controllable:No
Description:Auxiliary variable name(s) to use for OpenMC tallies. If not specified, defaults to the names of the scores
- normalize_by_global_tallyTrueWhether to normalize local tallies by a global tally (true) or else by the sum of the local tally (false)
Default:True
C++ Type:bool
Controllable:No
Description:Whether to normalize local tallies by a global tally (true) or else by the sum of the local tally (false)
- outputUNRELAXED field(s) to output from OpenMC for each tally score. unrelaxed_tally_std_dev will write the standard deviation of each tally into auxiliary variables named *_std_dev. unrelaxed_tally_rel_error will write the relative standard deviation (unrelaxed_tally_std_dev / unrelaxed_tally) of each tally into auxiliary variables named *_rel_error. unrelaxed_tally will write the raw unrelaxed tally into auxiliary variables named *_raw (replace * with 'name').
C++ Type:MultiMooseEnum
Controllable:No
Description:UNRELAXED field(s) to output from OpenMC for each tally score. unrelaxed_tally_std_dev will write the standard deviation of each tally into auxiliary variables named *_std_dev. unrelaxed_tally_rel_error will write the relative standard deviation (unrelaxed_tally_std_dev / unrelaxed_tally) of each tally into auxiliary variables named *_rel_error. unrelaxed_tally will write the raw unrelaxed tally into auxiliary variables named *_raw (replace * with 'name').
- scoreScore(s) to use in the OpenMC tallies. If not specified, defaults to 'kappa_fission'
C++ Type:MultiMooseEnum
Controllable:No
Description:Score(s) to use in the OpenMC tallies. If not specified, defaults to 'kappa_fission'
- triggerTrigger criterion to determine when OpenMC simulation is complete based on tallies. If multiple scores are specified in 'score, this same trigger is applied to all scores.
C++ Type:MultiMooseEnum
Controllable:No
Description:Trigger criterion to determine when OpenMC simulation is complete based on tallies. If multiple scores are specified in 'score, this same trigger is applied to all scores.
- trigger_ignore_zeros0 Whether tally bins with zero scores are ignored when computing the tally trigger. If only one value of 'trigger_ignore_zeros' is provided, that value is applied to all tally scores.
Default:0
C++ Type:std::vector<bool>
Controllable:No
Description:Whether tally bins with zero scores are ignored when computing the tally trigger. If only one value of 'trigger_ignore_zeros' is provided, that value is applied to all tally scores.
- trigger_thresholdThreshold for the tally trigger
C++ Type:std::vector<double>
Unit:(no unit assumed)
Range:trigger_threshold > 0
Controllable:No
Description:Threshold for the tally trigger
CellTally
Description
The CellTally class wraps an OpenMC tally with a distributed cell filter to enable data transfer from CSG cells to a MooseMesh mirror of the OpenMC geometry. The cell to element mapping established by the OpenMCCellAverageProblem is used to facilitate this data transfer to the mesh mirror. When using a CellTally, block specifies which blocks in the [Mesh] should be tallied. Then, any OpenMC cells that map to those blocks are added to a cell tally, with one bin for each unique cell ID/instance combination. check_equal_mapped_tally_volumes is used to confirm whether each cell in the CellTally has the same mapped volume on the MooseMesh (to a tolerance specified in equal_tally_volume_abs_tol).
Cardinal supports several tally scores which can be specified in the score parameter when adding a tally. Options include:
heating: total nuclear heatingheating_local: same as theheatingscore, except that energy from secondary photons is deposited locallykappa_fission: recoverable energy from fission, including prompt sources (fission fragments, prompt neutrons, prompt gammas) and delayed sources (delayed neutrons, delayed gammas, delayed betas). Neutrino energy is neglected. The energy from photons is assumed to deposit locally.fission_q_prompt: the prompt components of thekappa_fissionscore, except that the energy released is a function of the incident energy by linking to optional fission energy release data.fission_q_recoverable: same as thekappa_fissionscore, except that the score depends on the incident energy by linking to optional fission energy release datadamage_energy: damage energy productionflux: particle scalar fluxH3_production: tritium production reaction ratetotal: the total reaction rateabsorption: the absorption reaction ratescatter: the scattering reaction ratenu_scatter: the scattering reaction rate combined with the total (n, xn) reaction ratefission: the fission reaction ratenu_fission: the fission neutron production rateprompt_nu_fission: the prompt fission neutron production ratedelayed_nu_fission: the delayed fission neutron production ratedecay_rate: the neutron precursor decay constant weighted by the delayed fission neutron production rateinverse_velocity: one over the particle velocity weighted by the particle flux
To obtain the true precursor decay constant or inverse velocity, you need to divide decay_rate by delayed_nu_fission and inverse_velocity by flux (respectively). This requires the addition of either delayed_nu_fission or flux and some additional post-processing.
For more information on the specific meanings of these various scores, please consult the OpenMC tally documentation. Table 1 compares the units from OpenMC and the units of the AuxVariables created for all tally scores supported by Cardinal. Note that for all area or volume units in Table 1, that those units match whatever unit is used in the [Mesh]. The names of the tally auxvariables added by the OpenMCCellAverageProblem can be modified by specifying a name for each score in name.
Table 1: Tally units from OpenMC and the conversion in Cardinal.
| Tally score | OpenMC Units | Cardinal Units |
|---|---|---|
heating | eV / source particle | W / volume |
heating_local | eV / source particle | W / volume |
kappa_fission | eV / source particle | W / volume |
fission_q_prompt | eV / source particle | W / volume |
fission_q_recoverable | eV / source particle | W / volume |
damage_energy | eV / source particle | eV / volume / second |
flux | particle - cm / source particle | particle / area / second |
H3_production | tritium / source particle | tritium / volume / second |
total | total reactions / source particle | total reactions / volume / second |
absorption | absorption reactions / source particle | absorption reactions / volume / second |
scatter | scattering reactions / source particle | scattering reactions / volume / second |
nu_scatter | nu-scattering reactions / source particle | nu-scattering reactions / volume / second |
fission | fission reactions / source particle | fission reactions / volume / second |
nu_fission | nu-fission reactions / source particle | nu-fission reactions / volume / second |
prompt_nu_fission | prompt nu-fission reactions / source particle | prompt nu-fission reactions / volume / second |
delayed_nu_fission | delayed nu-fission reactions / source particle | delayed nu-fission reactions / volume / second |
decay_rate | delayed nu-fission reactions / source particle / s | delayed nu-fission reactions / volume / second^2 |
inverse_velocity | particle-seconds / source particle | particles / volume |
This tally is capable of controlling OpenMC execution through the use of tally triggers. Tallies currently support active batch termination through a relative error indicator, which can be enabled by setting trigger to rel_err for each score in the tally. Scores which do not need to control active batch termination can have a value of none set. If enabled, an appropriate relative error must be set for each score in trigger_threshold.
Certain aspects of tally results can be output as auxiliary variables to the mesh:
unrelaxed_tally: unrelaxed tally; this will append_rawto the tally name and output to the mesh mirrorunrelaxed_tally_rel_error: unrelaxed tally relative error; this will append_rel_errorto the tally name and output to the mesh mirrorunrelaxed_tally_std_dev: unrelaxed tally standard deviation; this will append_std_devto the tally and output to the mesh mirror
Example Input File Syntax
As an example, this CellTally scores kappa_fission (the default tally score) on block 0 and stores the result in a variable named heat_source. This corresponds to tallying the heating for three different fuel pebbles.
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
type = OpenMCCellAverageProblem
verbose = true
power = 1500.0
temperature_blocks = '0'
cell_level = 1
scaling = 100.0
[Tallies<<<{"href": "../../syntax/Problem/Tallies/index.html"}>>>]
[heat_source]
type = CellTally<<<{"description": "A class which implements distributed cell tallies.", "href": "CellTally.html"}>>>
block<<<{"description": "Subdomains for which to add tallies in OpenMC. If not provided, tallies will be applied over the entire domain corresponding to the [Mesh] block."}>>> = '0'
name<<<{"description": "Auxiliary variable name(s) to use for OpenMC tallies. If not specified, defaults to the names of the scores"}>>> = heat_source
[]
[]
[](cardinal/tutorials/pebbles/openmc.i)Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.