CellTally

commentnote

CellTally can only be added to problems when the input files contains a OpenMCCellAverageProblem in the [Problem] block. Otherwise, attempting to add this tally will result in an error.

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, tally_blocks 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 heating

  • heating_local: same as the heating score, except that energy from secondary photons is deposited locally

  • kappa_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 the kappa_fission score, 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 the kappa_fission score, except that the score depends on the incident energy by linking to optional fission energy release data

  • damage_energy: damage energy production

  • flux: particle scalar flux

  • H3_production: tritium production reaction rate

For more information on the specific meanings of these various scores, please consult the OpenMC tally documentation. The names of the tally auxvariables added by the OpenMCCellAverageProblem can be modified by specifying a name for each score in name.

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 _raw to the tally name and output to the mesh mirror

  • unrelaxed_tally_std_dev: unrelaxed tally standard deviation; this will append _std_dev to 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]
  type = OpenMCCellAverageProblem
  verbose = true
  power = 1500.0
  temperature_blocks = '0'
  cell_level = 1
  scaling = 100.0

  [Tallies]
    [heat_source]
      type = CellTally
      blocks = '0'
      name = heat_source
    []
  []
[]
(tutorials/pebbles/openmc.i)

Input Parameters

  • blocksSubdomains for which to add tallies in OpenMC. If not provided, cell tallies will be applied over the entire mesh.

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:Subdomains for which to add tallies in OpenMC. If not provided, cell tallies will be applied over the entire mesh.

  • 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!

  • equal_tally_volume_abs_tol1e-08Absolute tolerance for comparing tally volumes

    Default:1e-08

    C++ Type:double

    Controllable:No

    Description:Absolute tolerance for comparing tally volumes

  • estimatorType of tally estimator to use in OpenMC

    C++ Type:MooseEnum

    Options:collision, tracklength, analog

    Controllable:No

    Description:Type of tally estimator to use in OpenMC

  • 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

  • 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 will write the raw unrelaxed tally into auxiliary variables named *_raw (replace * with 'name').

    C++ Type:MultiMooseEnum

    Options:unrelaxed_tally_std_dev, unrelaxed_tally

    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 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

    Options:heating, heating_local, kappa_fission, fission_q_prompt, fission_q_recoverable, damage_energy, flux, H3_production

    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

    Options:rel_err, none

    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_thresholdThreshold for the tally trigger

    C++ Type:std::vector<double>

    Controllable:No

    Description:Threshold for the tally trigger

Optional 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.

Advanced Parameters

Input Files