- account_delayedFalseWhether to account for delayed neutrons.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to account for delayed neutrons.
- num_groupsThe total number of energy groups.
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The total number of energy groups.
- num_precursor_groupsspecifies the total number of precursors to create
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:specifies the total number of precursors to create
- sss2_inputFalseWhether the input follows sss2 form scattering matrices.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether the input follows sss2 form scattering matrices.
- temperatureName of temperature variable
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Name of temperature variable
- use_exp_formFalseWhether concentrations should be in an exponential/logarithmic format.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether concentrations should be in an exponential/logarithmic format.
- var_name_basespecifies the base name of the variables
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:specifies the base name of the variables
NtAction
This action sets up ONLY the variables, kernels, and BCs for neutron diffusion, NOT the variables, kernels, and BCs for precursor tracking. To generate these, see PrecursorAction.
Overview
NtAction
greatly reduces input file length and complexity by automatically setting up variables, kernels, and BCs for the neutron diffusion equations. When including only the required input parameters, this action constructs the neutron group variables and their associated kernels: SigmaR, GroupDiffusion, InScatter, and CoupledFissionKernel. With
account_delayed
set to
True
, DelayedNeutronSource is also constructed, otherwise this kernel is not constructed and the simulation does not consider the delayed neutron precursor effects on the neutron flux distributions.
For more information regarding the use of NtAction
please refer to the tutorials located here, specifically the Multiphysics Reactor Simulations section.
Example Input File Syntax
An example input file without the NtAction
, showing only the portion affected by the action:
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = '0'
extra_vector_tags = 'eigen'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = '0'
extra_vector_tags = 'eigen'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[]
(tutorial/eigenvalue/nts.i)And then the same information created with the NtAction
:
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottom mod_bottom right fuel_top mod_top'
pre_blocks = '0'
create_temperature_var = false
eigen = true
[]
(tutorial/eigenvalue/nts-action.i)Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified only the blocks named will be visited and made active
- blockThe block id where this variable lives
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The block id where this variable lives
- create_temperature_varTrueWhether to create the temperature variable.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to create the temperature variable.
- dg_for_temperatureTrueWhether the temperature variable should use discontinuous basis functions.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether the temperature variable should use discontinuous basis functions.
- eigenFalseWhether to run an eigen- instead of a transient- simulation.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to run an eigen- instead of a transient- simulation.
- eigenvalue_scaling1Artificial scaling factor for the fission source. Primarily for introducing artificial reactivity to make super/subcritical systems exactly critical or to simulate reactivity insertions/withdrawals.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Artificial scaling factor for the fission source. Primarily for introducing artificial reactivity to make super/subcritical systems exactly critical or to simulate reactivity insertions/withdrawals.
- familyLAGRANGESpecifies the family of FE shape functions to use for this variable
Default:LAGRANGE
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- init_nts_from_fileFalseWhether to restart simulation using nt output from a previous simulation.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to restart simulation using nt output from a previous simulation.
- init_temperature_from_fileFalseWhether to restart simulation using temperature output from a previous simulation.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to restart simulation using temperature output from a previous simulation.
- jac_testFalseWhether we're testing the Jacobian and should use some random initial conditions for the precursors.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether we're testing the Jacobian and should use some random initial conditions for the precursors.
- nt_ic_functionAn initial condition function for the neutrons.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:An initial condition function for the neutrons.
- orderFIRSTSpecifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)
Default:FIRST
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)
- pre_blocksThe blocks the precursors live on.
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The blocks the precursors live on.
- pre_concsAll the variables that hold the precursor concentrations. These MUST be listed by increasing group number.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:All the variables that hold the precursor concentrations. These MUST be listed by increasing group number.
- scaling1Specifies a scaling factor to apply to this variable
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Specifies a scaling factor to apply to this variable
- temp_scalingThe amount by which to scale the temperature variable.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The amount by which to scale the temperature variable.
- vacuum_bc_typemarshakWhether to apply Marshak, Mark, or Milne vacuum boundary conditions. Defaults to Marshak.
Default:marshak
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Whether to apply Marshak, Mark, or Milne vacuum boundary conditions. Defaults to Marshak.
- vacuum_boundariesThe boundaries on which to apply vacuum boundaries.
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The boundaries on which to apply vacuum boundaries.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.