- p1_scatter_rxn_ratesThe P1 group-wise scattering reaction rates to use for computing the multi-group diffusion coefficient.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The P1 group-wise scattering reaction rates to use for computing the multi-group diffusion coefficient.
- scalar_fluxThe group-wise scalar flux used for computing the multi-group diffusion coefficient.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The group-wise scalar flux used for computing the multi-group diffusion coefficient.
- total_rxn_rateThe total reaction rates to use for computing the multi-group diffusion coefficient.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The total reaction rates to use for computing the multi-group diffusion coefficient.
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object applies to
ComputeDiffusionCoeffMGAux
Overview
ComputeDiffusionCoeffMGAux
takes a Multi-Group (MG) total reaction rate variable (total_rxn_rate
), a list of MG P1 scattering reaction rate variables (p1_scatter_rxn_rates
), and a MG scalar flux variable (scalar_flux
); these are then used to compute a particle diffusion coefficient with the following equations:
(1)
(2)
where is a MG total reaction rate, is a MG P1 scattering reaction rate, and is a MG scalar flux. This AuxKernel is intended to be added via the MGXS block, see SetupMGXSAction for more information regarding MG cross section generation.
Example Input Syntax
The example below shows how ComputeDiffusionCoeffMGAux
can be used to compute a MG diffusion coefficient:
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
type = OpenMCCellAverageProblem
initial_properties = xml
verbose = true
cell_level = 0
normalize_by_global_tally = false
power = 1.0
source_rate_normalization = 'kappa_fission'
[Tallies<<<{"href": "../../syntax/Problem/Tallies/index.html"}>>>]
[Cell_KF]
type = CellTally<<<{"description": "A class which implements distributed cell tallies.", "href": "../tallies/CellTally.html"}>>>
score<<<{"description": "Score(s) to use in the OpenMC tallies. If not specified, defaults to 'kappa_fission'"}>>> = 'kappa_fission'
block<<<{"description": "Subdomains for which to add tallies in OpenMC. If not provided, cell tallies will be applied over the entire mesh."}>>> = '100'
[]
[Cell_Total_Flux]
type = CellTally<<<{"description": "A class which implements distributed cell tallies.", "href": "../tallies/CellTally.html"}>>>
score<<<{"description": "Score(s) to use in the OpenMC tallies. If not specified, defaults to 'kappa_fission'"}>>> = 'total flux'
block<<<{"description": "Subdomains for which to add tallies in OpenMC. If not provided, cell tallies will be applied over the entire mesh."}>>> = '100'
filters<<<{"description": "External filters to add to this tally."}>>> = 'Energy'
[]
[Cell_Scatter]
type = CellTally<<<{"description": "A class which implements distributed cell tallies.", "href": "../tallies/CellTally.html"}>>>
score<<<{"description": "Score(s) to use in the OpenMC tallies. If not specified, defaults to 'kappa_fission'"}>>> = 'nu_scatter'
block<<<{"description": "Subdomains for which to add tallies in OpenMC. If not provided, cell tallies will be applied over the entire mesh."}>>> = '100'
filters<<<{"description": "External filters to add to this tally."}>>> = 'Energy EnergyOut Legendre'
estimator<<<{"description": "Type of tally estimator to use in OpenMC"}>>> = 'analog'
[]
[]
[Filters<<<{"href": "../../syntax/Problem/Filters/index.html"}>>>]
[Energy]
type = EnergyFilter<<<{"description": "A class which provides a thin wrapper around an OpenMC EnergyFilter. Energy bins can either be manually specified in 'energy_boundaries' or picked from a list provided in 'group_structure'.", "href": "../filters/EnergyFilter.html"}>>>
energy_boundaries<<<{"description": "The energy boundaries to use to form energy bins. The boundaries must be provided in ascending order in terms of energy."}>>> = '0.0 6.25e-1 2.0e7'
reverse_bins<<<{"description": "Whether the bins should be output in reverse order. This is useful for comparing deterministic transport codes with Cardinal, where the convention is that energy groups are arranged in descending order (i.e. group 1 is fast, group 2 is thermal)."}>>> = true
[]
[EnergyOut]
type = EnergyOutFilter<<<{"description": "A class which provides a thin wrapper around an OpenMC EnergyOutFilter. Energy bins can either be manually specified in 'energy_boundaries' or picked from a list provided in 'group_structure'.", "href": "../filters/EnergyOutFilter.html"}>>>
energy_boundaries<<<{"description": "The energy boundaries to use to form energy bins. The boundaries must be provided in ascending order in terms of energy."}>>> = '0.0 6.25e-1 2.0e7'
reverse_bins<<<{"description": "Whether the bins should be output in reverse order. This is useful for comparing deterministic transport codes with Cardinal, where the convention is that energy groups are arranged in descending order (i.e. group 1 is fast, group 2 is thermal)."}>>> = true
[]
[Legendre]
type = AngularLegendreFilter<<<{"description": "A class which provides a thin wrapper around an OpenMC LegendreFilter.", "href": "../filters/AngularLegendreFilter.html"}>>>
order<<<{"description": "The order of the Legendre expansion."}>>> = 1
[]
[]
[]
(cardinal/test/tests/neutronics/gen_mgxs/mgxs_aux/mg_diffusion_coeff.i)Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
- execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:LINEAR TIMESTEP_END
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- void_diffusion_coefficient1000The value the diffusion coefficient should take in a void region.
Default:1000
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The value the diffusion coefficient should take in a void region.
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:Yes
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.