- NDiscrete ordinate order
C++ Type:unsigned int
Controllable:No
Description:Discrete ordinate order
- group_angular_fluxesAll the variables that hold the group angular fluxes. These MUST be listed by decreasing energy/increasing group number.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:All the variables that hold the group angular fluxes. These MUST be listed by decreasing energy/increasing group number.
- group_numberThe group for which this kernel controls diffusion
C++ Type:unsigned int
Controllable:No
Description:The group for which this kernel controls diffusion
- num_groupsThe total number of energy groups
C++ Type:unsigned int
Controllable:No
Description:The total number of energy groups
- 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
GroupDriftAux
Overview
Computes the neutron drift coefficient for nonlinear diffusion acceleration of the method or the hybrid -diffusion method.
Example Input File Syntax
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
- diffcoef_limit5Maximum diffusion coefficient value limit.
Default:5
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Maximum diffusion coefficient value limit.
- 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
Options:XFEM_MARK, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, PRE_DISPLACE
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.
- set_diffcoef_limitFalseReplaces all diffusion coefficient values above the specified limit to the limit value. Primarily helps with stabilizing drift coefficients in void regions.
Default:False
C++ Type:bool
Controllable:No
Description:Replaces all diffusion coefficient values above the specified limit to the limit value. Primarily helps with stabilizing drift coefficients in void regions.
- use_exp_formFalseWhether concentrations should be in an expotential/logarithmic format.
Default:False
C++ Type:bool
Controllable:No
Description:Whether concentrations should be in an expotential/logarithmic format.
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.
- search_methodnearest_node_connected_sidesChoice of search algorithm. All options begin by finding the nearest node in the primary boundary to a query point in the secondary boundary. In the default nearest_node_connected_sides algorithm, primary boundary elements are searched iff that nearest node is one of their nodes. This is fast to determine via a pregenerated node-to-elem map and is robust on conforming meshes. In the optional all_proximate_sides algorithm, primary boundary elements are searched iff they touch that nearest node, even if they are not topologically connected to it. This is more CPU-intensive but is necessary for robustness on any boundary surfaces which has disconnections (such as Flex IGA meshes) or non-conformity (such as hanging nodes in adaptively h-refined meshes).
Default:nearest_node_connected_sides
C++ Type:MooseEnum
Options:nearest_node_connected_sides, all_proximate_sides
Controllable:No
Description:Choice of search algorithm. All options begin by finding the nearest node in the primary boundary to a query point in the secondary boundary. In the default nearest_node_connected_sides algorithm, primary boundary elements are searched iff that nearest node is one of their nodes. This is fast to determine via a pregenerated node-to-elem map and is robust on conforming meshes. In the optional all_proximate_sides algorithm, primary boundary elements are searched iff they touch that nearest node, even if they are not topologically connected to it. This is more CPU-intensive but is necessary for robustness on any boundary surfaces which has disconnections (such as Flex IGA meshes) or non-conformity (such as hanging nodes in adaptively h-refined meshes).
- 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.
Material Property Retrieval Parameters
Input Files
(tests/sn/absorber-air-lattice-ref-sn-sub.i)
N = 8
L = 2
total_ords = ${fparse N*(N+2)}
[GlobalParams]
num_groups = 8
num_precursor_groups = 6
group_fluxes = 'group1 group2 group3 group4 group5 group6 group7 group8'
group_angular_fluxes = 'psi1 psi2 psi3 psi4 psi5 psi6 psi7 psi8'
temperature = 900
N = ${N}
L = ${L}
account_delayed = false
use_exp_form = false
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT DIFFCOEF'
set_diffcoef_limit = true
acceleration = true
[]
[Mesh]
second_order = true
[cmg]
type = CartesianMeshGenerator
dim = 1
dx = '0.4 0.1 1 1.5625 3.875 1.125 3.875 1.125 3.875 1.125 3.875 1.125 3.875 1.125 3.875 1.125 3.875 1.125 3.875 3.0625 5'
ix = '4 2 4 6 10 4 10 4 10 4 10 4 10 4 10 4 10 4 10 12 32'
subdomain_id = '0 0 1 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 4'
[]
[]
[Variables]
[psi1]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi2]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi3]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi4]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi5]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi6]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi7]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi8]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[]
[AuxVariables]
[group1]
order = SECOND
family = LAGRANGE
[]
[group2]
order = SECOND
family = LAGRANGE
[]
[group3]
order = SECOND
family = LAGRANGE
[]
[group4]
order = SECOND
family = LAGRANGE
[]
[group5]
order = SECOND
family = LAGRANGE
[]
[group6]
order = SECOND
family = LAGRANGE
[]
[group7]
order = SECOND
family = LAGRANGE
[]
[group8]
order = SECOND
family = LAGRANGE
[]
[drift1]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift2]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift3]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift4]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift5]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift6]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift7]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift8]
order = FIRST
family = MONOMIAL
components = 3
[]
[bound_coef1]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef2]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef3]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef4]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef5]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef6]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef7]
order = SECOND
family = MONOMIAL
block = 4
[]
[bound_coef8]
order = SECOND
family = MONOMIAL
block = 4
[]
[]
[Kernels]
[streaming_psi1]
type = SNStreaming
variable = psi1
group_number = 1
[]
[streaming_psi2]
type = SNStreaming
variable = psi2
group_number = 2
[]
[streaming_psi3]
type = SNStreaming
variable = psi3
group_number = 3
[]
[streaming_psi4]
type = SNStreaming
variable = psi4
group_number = 4
[]
[streaming_psi5]
type = SNStreaming
variable = psi5
group_number = 5
[]
[streaming_psi6]
type = SNStreaming
variable = psi6
group_number = 6
[]
[streaming_psi7]
type = SNStreaming
variable = psi7
group_number = 7
[]
[streaming_psi8]
type = SNStreaming
variable = psi8
group_number = 8
[]
[collision_psi1]
type = SNCollision
variable = psi1
group_number = 1
[]
[collision_psi2]
type = SNCollision
variable = psi2
group_number = 2
[]
[collision_psi3]
type = SNCollision
variable = psi3
group_number = 3
[]
[collision_psi4]
type = SNCollision
variable = psi4
group_number = 4
[]
[collision_psi5]
type = SNCollision
variable = psi5
group_number = 5
[]
[collision_psi6]
type = SNCollision
variable = psi6
group_number = 6
[]
[collision_psi7]
type = SNCollision
variable = psi7
group_number = 7
[]
[collision_psi8]
type = SNCollision
variable = psi8
group_number = 8
[]
[scattering_psi1]
type = SNScattering
variable = psi1
group_number = 1
[]
[scattering_psi2]
type = SNScattering
variable = psi2
group_number = 2
[]
[scattering_psi3]
type = SNScattering
variable = psi3
group_number = 3
[]
[scattering_psi4]
type = SNScattering
variable = psi4
group_number = 4
[]
[scattering_psi5]
type = SNScattering
variable = psi5
group_number = 5
[]
[scattering_psi6]
type = SNScattering
variable = psi6
group_number = 6
[]
[scattering_psi7]
type = SNScattering
variable = psi7
group_number = 7
[]
[scattering_psi8]
type = SNScattering
variable = psi8
group_number = 8
[]
[fission_psi1]
type = SNFission
variable = psi1
block = 2
group_number = 1
eigenvalue_scaling = eigenvalue
[]
[fission_psi2]
type = SNFission
variable = psi2
block = 2
group_number = 2
eigenvalue_scaling = eigenvalue
[]
[fission_psi3]
type = SNFission
variable = psi3
block = 2
group_number = 3
eigenvalue_scaling = eigenvalue
[]
[fission_psi4]
type = SNFission
variable = psi4
block = 2
group_number = 4
eigenvalue_scaling = eigenvalue
[]
[fission_psi5]
type = SNFission
variable = psi5
block = 2
group_number = 5
eigenvalue_scaling = eigenvalue
[]
[fission_psi6]
type = SNFission
variable = psi6
block = 2
group_number = 6
eigenvalue_scaling = eigenvalue
[]
[fission_psi7]
type = SNFission
variable = psi7
block = 2
group_number = 7
eigenvalue_scaling = eigenvalue
[]
[fission_psi8]
type = SNFission
variable = psi8
block = 2
group_number = 8
eigenvalue_scaling = eigenvalue
[]
[]
[AuxKernels]
[drift1]
type = GroupDriftAux
variable = drift1
group_number = 1
execute_on = timestep_end
[]
[drift2]
type = GroupDriftAux
variable = drift2
group_number = 2
execute_on = timestep_end
[]
[drift3]
type = GroupDriftAux
variable = drift3
group_number = 3
execute_on = timestep_end
[]
[drift4]
type = GroupDriftAux
variable = drift4
group_number = 4
execute_on = timestep_end
[]
[drift5]
type = GroupDriftAux
variable = drift5
group_number = 5
execute_on = timestep_end
[]
[drift6]
type = GroupDriftAux
variable = drift6
group_number = 6
execute_on = timestep_end
[]
[drift7]
type = GroupDriftAux
variable = drift7
group_number = 7
execute_on = timestep_end
[]
[drift8]
type = GroupDriftAux
variable = drift8
group_number = 8
execute_on = timestep_end
[]
[bound_coef1]
type = VacuumCoefAux
variable = bound_coef1
psi = psi1
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef2]
type = VacuumCoefAux
variable = bound_coef2
psi = psi2
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef3]
type = VacuumCoefAux
variable = bound_coef3
psi = psi3
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef4]
type = VacuumCoefAux
variable = bound_coef4
psi = psi4
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef5]
type = VacuumCoefAux
variable = bound_coef5
psi = psi5
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef6]
type = VacuumCoefAux
variable = bound_coef6
psi = psi6
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef7]
type = VacuumCoefAux
variable = bound_coef7
psi = psi7
boundary = 'right'
execute_on = timestep_end
[]
[bound_coef8]
type = VacuumCoefAux
variable = bound_coef8
psi = psi8
boundary = 'right'
execute_on = timestep_end
[]
[]
[BCs]
[reflecting_psi1]
type = SNReflectingBC
variable = psi1
boundary = 'left'
[]
[reflecting_psi2]
type = SNReflectingBC
variable = psi2
boundary = 'left'
[]
[reflecting_psi3]
type = SNReflectingBC
variable = psi3
boundary = 'left'
[]
[reflecting_psi4]
type = SNReflectingBC
variable = psi4
boundary = 'left'
[]
[reflecting_psi5]
type = SNReflectingBC
variable = psi5
boundary = 'left'
[]
[reflecting_psi6]
type = SNReflectingBC
variable = psi6
boundary = 'left'
[]
[reflecting_psi7]
type = SNReflectingBC
variable = psi7
boundary = 'left'
[]
[reflecting_psi8]
type = SNReflectingBC
variable = psi8
boundary = 'left'
[]
[vacuum_psi1]
type = SNVacuumBC
variable = psi1
boundary = 'right'
[]
[vacuum_psi2]
type = SNVacuumBC
variable = psi2
boundary = 'right'
[]
[vacuum_psi3]
type = SNVacuumBC
variable = psi3
boundary = 'right'
[]
[vacuum_psi4]
type = SNVacuumBC
variable = psi4
boundary = 'right'
[]
[vacuum_psi5]
type = SNVacuumBC
variable = psi5
boundary = 'right'
[]
[vacuum_psi6]
type = SNVacuumBC
variable = psi6
boundary = 'right'
[]
[vacuum_psi7]
type = SNVacuumBC
variable = psi7
boundary = 'right'
[]
[vacuum_psi8]
type = SNVacuumBC
variable = psi8
boundary = 'right'
[]
[]
[Materials]
[absorber]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'ctrlrod'
interp_type = 'none'
block = '0'
[]
[air]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'air'
interp_type = 'none'
block = '1'
void_constant = .5
h_type = min
[]
[fuel]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'fuel'
interp_type = 'none'
block = '2'
[]
[graphite]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'graphite'
interp_type = 'none'
block = '3'
[]
[inor]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'inor'
interp_type = 'none'
block = '4'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_agg_nl -pc_hypre_boomeramg_agg_num_paths -pc_hypre_boomeramg_max_levels -pc_hypre_boomeramg_coarsen_type -pc_hypre_boomeramg_interp_type -pc_hypre_boomeramg_P_max -pc_hypre_boomeramg_truncfactor -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 0.7 4 5 25 HMIS ext+i 2 0.3 200'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-50
l_abs_tol = 1e-9
l_tol = 1e-50
[]
[Postprocessors]
[eigenvalue]
type = Receiver
default = 1
[]
[]
(tests/hybrid/absorber-air-lattice-ref-hybrid-sub.i)
N = 8
L = 2
total_ords = ${fparse N*(N+2)}
[GlobalParams]
num_groups = 8
num_precursor_groups = 6
group_fluxes = 'group1 group2 group3 group4 group5 group6 group7 group8'
group_angular_fluxes = 'psi1 psi2 psi3 psi4 psi5 psi6 psi7 psi8'
temperature = 900
N = ${N}
L = ${L}
account_delayed = false
use_exp_form = false
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT DIFFCOEF'
set_diffcoef_limit = true
[]
[Mesh]
second_order = true
[cmg]
type = CartesianMeshGenerator
dim = 1
dx = '0.4 0.1 1 1.5625 3.875 1.125 1.9375'
ix = '4 2 4 6 10 4 5'
subdomain_id = '0 0 1 2 3 2 3'
[]
[]
[Variables]
[psi1]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi2]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi3]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi4]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi5]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi6]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi7]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi8]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[]
[AuxVariables]
[group1]
order = SECOND
family = LAGRANGE
[]
[group2]
order = SECOND
family = LAGRANGE
[]
[group3]
order = SECOND
family = LAGRANGE
[]
[group4]
order = SECOND
family = LAGRANGE
[]
[group5]
order = SECOND
family = LAGRANGE
[]
[group6]
order = SECOND
family = LAGRANGE
[]
[group7]
order = SECOND
family = LAGRANGE
[]
[group8]
order = SECOND
family = LAGRANGE
[]
[drift1]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift2]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift3]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift4]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift5]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift6]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift7]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift8]
order = SECOND
family = MONOMIAL
components = 3
[]
[]
[Kernels]
[streaming_psi1]
type = SNStreaming
variable = psi1
group_number = 1
[]
[streaming_psi2]
type = SNStreaming
variable = psi2
group_number = 2
[]
[streaming_psi3]
type = SNStreaming
variable = psi3
group_number = 3
[]
[streaming_psi4]
type = SNStreaming
variable = psi4
group_number = 4
[]
[streaming_psi5]
type = SNStreaming
variable = psi5
group_number = 5
[]
[streaming_psi6]
type = SNStreaming
variable = psi6
group_number = 6
[]
[streaming_psi7]
type = SNStreaming
variable = psi7
group_number = 7
[]
[streaming_psi8]
type = SNStreaming
variable = psi8
group_number = 8
[]
[collision_psi1]
type = SNCollision
variable = psi1
group_number = 1
[]
[collision_psi2]
type = SNCollision
variable = psi2
group_number = 2
[]
[collision_psi3]
type = SNCollision
variable = psi3
group_number = 3
[]
[collision_psi4]
type = SNCollision
variable = psi4
group_number = 4
[]
[collision_psi5]
type = SNCollision
variable = psi5
group_number = 5
[]
[collision_psi6]
type = SNCollision
variable = psi6
group_number = 6
[]
[collision_psi7]
type = SNCollision
variable = psi7
group_number = 7
[]
[collision_psi8]
type = SNCollision
variable = psi8
group_number = 8
[]
[scattering_psi1]
type = SNScattering
variable = psi1
group_number = 1
[]
[scattering_psi2]
type = SNScattering
variable = psi2
group_number = 2
[]
[scattering_psi3]
type = SNScattering
variable = psi3
group_number = 3
[]
[scattering_psi4]
type = SNScattering
variable = psi4
group_number = 4
[]
[scattering_psi5]
type = SNScattering
variable = psi5
group_number = 5
[]
[scattering_psi6]
type = SNScattering
variable = psi6
group_number = 6
[]
[scattering_psi7]
type = SNScattering
variable = psi7
group_number = 7
[]
[scattering_psi8]
type = SNScattering
variable = psi8
group_number = 8
[]
[fission_psi1]
type = SNFission
variable = psi1
block = 2
group_number = 1
eigenvalue_scaling = eigenvalue
[]
[fission_psi2]
type = SNFission
variable = psi2
block = 2
group_number = 2
eigenvalue_scaling = eigenvalue
[]
[fission_psi3]
type = SNFission
variable = psi3
block = 2
group_number = 3
eigenvalue_scaling = eigenvalue
[]
[fission_psi4]
type = SNFission
variable = psi4
block = 2
group_number = 4
eigenvalue_scaling = eigenvalue
[]
[fission_psi5]
type = SNFission
variable = psi5
block = 2
group_number = 5
eigenvalue_scaling = eigenvalue
[]
[fission_psi6]
type = SNFission
variable = psi6
block = 2
group_number = 6
eigenvalue_scaling = eigenvalue
[]
[fission_psi7]
type = SNFission
variable = psi7
block = 2
group_number = 7
eigenvalue_scaling = eigenvalue
[]
[fission_psi8]
type = SNFission
variable = psi8
block = 2
group_number = 8
eigenvalue_scaling = eigenvalue
[]
[]
[AuxKernels]
[scalar_group1]
type = SNScalarFluxAux
variable = group1
psi = psi1
execute_on = timestep_end
[]
[scalar_group2]
type = SNScalarFluxAux
variable = group2
psi = psi2
execute_on = timestep_end
[]
[scalar_goup3]
type = SNScalarFluxAux
variable = group3
psi = psi3
execute_on = timestep_end
[]
[scalar_group4]
type = SNScalarFluxAux
variable = group4
psi = psi4
execute_on = timestep_end
[]
[scalar_group5]
type = SNScalarFluxAux
variable = group5
psi = psi5
execute_on = timestep_end
[]
[scalar_group6]
type = SNScalarFluxAux
variable = group6
psi = psi6
execute_on = timestep_end
[]
[scalar_group7]
type = SNScalarFluxAux
variable = group7
psi = psi7
execute_on = timestep_end
[]
[scalar_group8]
type = SNScalarFluxAux
variable = group8
psi = psi8
execute_on = timestep_end
[]
[drift1]
type = GroupDriftAux
variable = drift1
group_number = 1
execute_on = timestep_end
[]
[drift2]
type = GroupDriftAux
variable = drift2
group_number = 2
execute_on = timestep_end
[]
[drift3]
type = GroupDriftAux
variable = drift3
group_number = 3
execute_on = timestep_end
[]
[drift4]
type = GroupDriftAux
variable = drift4
group_number = 4
execute_on = timestep_end
[]
[drift5]
type = GroupDriftAux
variable = drift5
group_number = 5
execute_on = timestep_end
[]
[drift6]
type = GroupDriftAux
variable = drift6
group_number = 6
execute_on = timestep_end
[]
[drift7]
type = GroupDriftAux
variable = drift7
group_number = 7
execute_on = timestep_end
[]
[drift8]
type = GroupDriftAux
variable = drift8
group_number = 8
execute_on = timestep_end
[]
[]
[BCs]
[reflecting_psi1]
type = SNReflectingBC
variable = psi1
boundary = 'left'
[]
[reflecting_psi2]
type = SNReflectingBC
variable = psi2
boundary = 'left'
[]
[reflecting_psi3]
type = SNReflectingBC
variable = psi3
boundary = 'left'
[]
[reflecting_psi4]
type = SNReflectingBC
variable = psi4
boundary = 'left'
[]
[reflecting_psi5]
type = SNReflectingBC
variable = psi5
boundary = 'left'
[]
[reflecting_psi6]
type = SNReflectingBC
variable = psi6
boundary = 'left'
[]
[reflecting_psi7]
type = SNReflectingBC
variable = psi7
boundary = 'left'
[]
[reflecting_psi8]
type = SNReflectingBC
variable = psi8
boundary = 'left'
[]
[source_psi1]
type = SNDiffusionBC
variable = psi1
boundary = 'right'
group_number = 1
diffusion_flux = group1
[]
[source_psi2]
type = SNDiffusionBC
variable = psi2
boundary = 'right'
group_number = 2
diffusion_flux = group2
[]
[source_psi3]
type = SNDiffusionBC
variable = psi3
boundary = 'right'
group_number = 3
diffusion_flux = group3
[]
[source_psi4]
type = SNDiffusionBC
variable = psi4
boundary = 'right'
group_number = 4
diffusion_flux = group4
[]
[source_psi5]
type = SNDiffusionBC
variable = psi5
boundary = 'right'
group_number = 5
diffusion_flux = group5
[]
[source_psi6]
type = SNDiffusionBC
variable = psi6
boundary = 'right'
group_number = 6
diffusion_flux = group6
[]
[source_psi7]
type = SNDiffusionBC
variable = psi7
boundary = 'right'
group_number = 7
diffusion_flux = group7
[]
[source_psi8]
type = SNDiffusionBC
variable = psi8
boundary = 'right'
group_number = 8
diffusion_flux = group8
[]
[]
[Materials]
[absorber]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'ctrlrod'
interp_type = 'none'
block = '0'
[]
[air]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'air'
interp_type = 'none'
block = '1'
void_constant = .5
h_type = min
[]
[fuel]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'fuel'
interp_type = 'none'
block = '2'
[]
[graphite]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'graphite'
interp_type = 'none'
block = '3'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_agg_nl -pc_hypre_boomeramg_agg_num_paths -pc_hypre_boomeramg_max_levels -pc_hypre_boomeramg_coarsen_type -pc_hypre_boomeramg_interp_type -pc_hypre_boomeramg_P_max -pc_hypre_boomeramg_truncfactor -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 0.7 4 5 25 HMIS ext+i 2 0.3 200'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-50
l_abs_tol = 1e-8
l_tol = 1e-50
[]
[Postprocessors]
[eigenvalue]
type = Receiver
default = 1
[]
[]
[Outputs]
perf_graph = true
[]
(tests/sn/lattice-sn-dnp-sub.i)
N = 8
L = 2
total_ords = ${fparse N*(N+2)}
[GlobalParams]
num_groups = 8
num_precursor_groups = 6
group_fluxes = 'group1 group2 group3 group4 group5 group6 group7 group8'
group_angular_fluxes = 'psi1 psi2 psi3 psi4 psi5 psi6 psi7 psi8'
temperature = 900
N = ${N}
L = ${L}
account_delayed = true
use_exp_form = false
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT DIFFCOEF'
acceleration = true
[]
[Mesh]
second_order = true
[cmg]
type = CartesianMeshGenerator
dim = 1
dx = '1.9375 1.125 3.875 1.125 3.875 1.125 3.875 1.125 1.9375'
ix = '5 4 10 4 10 4 10 4 5'
subdomain_id = '0 1 0 1 0 1 0 1 0'
[]
[]
[Variables]
[psi1]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi2]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi3]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi4]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi5]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi6]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi7]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi8]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[]
[AuxVariables]
[group1]
order = SECOND
family = LAGRANGE
[]
[group2]
order = SECOND
family = LAGRANGE
[]
[group3]
order = SECOND
family = LAGRANGE
[]
[group4]
order = SECOND
family = LAGRANGE
[]
[group5]
order = SECOND
family = LAGRANGE
[]
[group6]
order = SECOND
family = LAGRANGE
[]
[group7]
order = SECOND
family = LAGRANGE
[]
[group8]
order = SECOND
family = LAGRANGE
[]
[drift1]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift2]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift3]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift4]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift5]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift6]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift7]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift8]
order = SECOND
family = MONOMIAL
components = 3
[]
[delayed_source]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[]
[Kernels]
[streaming_psi1]
type = SNStreaming
variable = psi1
group_number = 1
[]
[streaming_psi2]
type = SNStreaming
variable = psi2
group_number = 2
[]
[streaming_psi3]
type = SNStreaming
variable = psi3
group_number = 3
[]
[streaming_psi4]
type = SNStreaming
variable = psi4
group_number = 4
[]
[streaming_psi5]
type = SNStreaming
variable = psi5
group_number = 5
[]
[streaming_psi6]
type = SNStreaming
variable = psi6
group_number = 6
[]
[streaming_psi7]
type = SNStreaming
variable = psi7
group_number = 7
[]
[streaming_psi8]
type = SNStreaming
variable = psi8
group_number = 8
[]
[collision_psi1]
type = SNCollision
variable = psi1
group_number = 1
[]
[collision_psi2]
type = SNCollision
variable = psi2
group_number = 2
[]
[collision_psi3]
type = SNCollision
variable = psi3
group_number = 3
[]
[collision_psi4]
type = SNCollision
variable = psi4
group_number = 4
[]
[collision_psi5]
type = SNCollision
variable = psi5
group_number = 5
[]
[collision_psi6]
type = SNCollision
variable = psi6
group_number = 6
[]
[collision_psi7]
type = SNCollision
variable = psi7
group_number = 7
[]
[collision_psi8]
type = SNCollision
variable = psi8
group_number = 8
[]
[scattering_psi1]
type = SNScattering
variable = psi1
group_number = 1
[]
[scattering_psi2]
type = SNScattering
variable = psi2
group_number = 2
[]
[scattering_psi3]
type = SNScattering
variable = psi3
group_number = 3
[]
[scattering_psi4]
type = SNScattering
variable = psi4
group_number = 4
[]
[scattering_psi5]
type = SNScattering
variable = psi5
group_number = 5
[]
[scattering_psi6]
type = SNScattering
variable = psi6
group_number = 6
[]
[scattering_psi7]
type = SNScattering
variable = psi7
group_number = 7
[]
[scattering_psi8]
type = SNScattering
variable = psi8
group_number = 8
[]
[fission_psi1]
type = SNFission
variable = psi1
block = 1
group_number = 1
eigenvalue_scaling = eigenvalue
[]
[fission_psi2]
type = SNFission
variable = psi2
block = 1
group_number = 2
eigenvalue_scaling = eigenvalue
[]
[fission_psi3]
type = SNFission
variable = psi3
block = 1
group_number = 3
eigenvalue_scaling = eigenvalue
[]
[fission_psi4]
type = SNFission
variable = psi4
block = 1
group_number = 4
eigenvalue_scaling = eigenvalue
[]
[fission_psi5]
type = SNFission
variable = psi5
block = 1
group_number = 5
eigenvalue_scaling = eigenvalue
[]
[fission_psi6]
type = SNFission
variable = psi6
block = 1
group_number = 6
eigenvalue_scaling = eigenvalue
[]
[fission_psi7]
type = SNFission
variable = psi7
block = 1
group_number = 7
eigenvalue_scaling = eigenvalue
[]
[fission_psi8]
type = SNFission
variable = psi8
block = 1
group_number = 8
eigenvalue_scaling = eigenvalue
[]
[delayed_psi1]
type = SNDelayedNeutronSource
variable = psi1
block = 1
group_number = 1
delayed_neutron_source = delayed_source
[]
[delayed_psi2]
type = SNDelayedNeutronSource
variable = psi2
block = 1
group_number = 2
delayed_neutron_source = delayed_source
[]
[delayed_psi3]
type = SNDelayedNeutronSource
variable = psi3
block = 1
group_number = 3
delayed_neutron_source = delayed_source
[]
[delayed_psi4]
type = SNDelayedNeutronSource
variable = psi4
block = 1
group_number = 4
delayed_neutron_source = delayed_source
[]
[delayed_psi5]
type = SNDelayedNeutronSource
variable = psi5
block = 1
group_number = 5
delayed_neutron_source = delayed_source
[]
[delayed_psi6]
type = SNDelayedNeutronSource
variable = psi6
block = 1
group_number = 6
delayed_neutron_source = delayed_source
[]
[delayed_psi7]
type = SNDelayedNeutronSource
variable = psi7
block = 1
group_number = 7
delayed_neutron_source = delayed_source
[]
[delayed_psi8]
type = SNDelayedNeutronSource
variable = psi8
block = 1
group_number = 8
delayed_neutron_source = delayed_source
[]
[]
[AuxKernels]
[drift1]
type = GroupDriftAux
variable = drift1
group_number = 1
execute_on = timestep_end
[]
[drift2]
type = GroupDriftAux
variable = drift2
group_number = 2
execute_on = timestep_end
[]
[drift3]
type = GroupDriftAux
variable = drift3
group_number = 3
execute_on = timestep_end
[]
[drift4]
type = GroupDriftAux
variable = drift4
group_number = 4
execute_on = timestep_end
[]
[drift5]
type = GroupDriftAux
variable = drift5
group_number = 5
execute_on = timestep_end
[]
[drift6]
type = GroupDriftAux
variable = drift6
group_number = 6
execute_on = timestep_end
[]
[drift7]
type = GroupDriftAux
variable = drift7
group_number = 7
execute_on = timestep_end
[]
[drift8]
type = GroupDriftAux
variable = drift8
group_number = 8
execute_on = timestep_end
[]
[]
[BCs]
[reflecting_psi1]
type = SNReflectingBC
variable = psi1
boundary = 'left right'
[]
[reflecting_psi2]
type = SNReflectingBC
variable = psi2
boundary = 'left right'
[]
[reflecting_psi3]
type = SNReflectingBC
variable = psi3
boundary = 'left right'
[]
[reflecting_psi4]
type = SNReflectingBC
variable = psi4
boundary = 'left right'
[]
[reflecting_psi5]
type = SNReflectingBC
variable = psi5
boundary = 'left right'
[]
[reflecting_psi6]
type = SNReflectingBC
variable = psi6
boundary = 'left right'
[]
[reflecting_psi7]
type = SNReflectingBC
variable = psi7
boundary = 'left right'
[]
[reflecting_psi8]
type = SNReflectingBC
variable = psi8
boundary = 'left right'
[]
[]
[Materials]
[fuel]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/lattice.json'
material_key = 'fuel'
interp_type = 'none'
block = '1'
[]
[graphite]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/lattice.json'
material_key = 'graphite'
interp_type = 'none'
block = '0'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_agg_nl -pc_hypre_boomeramg_agg_num_paths -pc_hypre_boomeramg_max_levels -pc_hypre_boomeramg_coarsen_type -pc_hypre_boomeramg_interp_type -pc_hypre_boomeramg_P_max -pc_hypre_boomeramg_truncfactor -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 0.7 4 5 25 HMIS ext+i 2 0.3 200'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-50
l_abs_tol = 1e-9
l_tol = 1e-50
[]
[Postprocessors]
[eigenvalue]
type = Receiver
default = 1
[]
[]
[Outputs]
perf_graph = true
[]
(tests/materials/sn_rod_sub.i)
N = 8
L = 2
total_ords = ${fparse N*(N+2)}
[GlobalParams]
num_groups = 8
num_precursor_groups = 6
group_fluxes = 'group1 group2 group3 group4 group5 group6 group7 group8'
group_angular_fluxes = 'psi1 psi2 psi3 psi4 psi5 psi6 psi7 psi8'
temperature = 900
N = ${N}
L = ${L}
account_delayed = false
use_exp_form = false
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT DIFFCOEF'
set_diffcoef_limit = true
acceleration = true
[]
[Mesh]
[mesh]
type = CartesianMeshGenerator
dim = 3
dx = 10
dy = 10
dz = '90 10'
iz = '90 40'
[]
[]
[Variables]
[psi1]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi2]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi3]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi4]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi5]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi6]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi7]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[psi8]
order = FIRST
family = LAGRANGE
components = ${total_ords}
[]
[]
[AuxVariables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[group3]
order = FIRST
family = LAGRANGE
[]
[group4]
order = FIRST
family = LAGRANGE
[]
[group5]
order = FIRST
family = LAGRANGE
[]
[group6]
order = FIRST
family = LAGRANGE
[]
[group7]
order = FIRST
family = LAGRANGE
[]
[group8]
order = FIRST
family = LAGRANGE
[]
[drift1]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift2]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift3]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift4]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift5]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift6]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift7]
order = FIRST
family = MONOMIAL
components = 3
[]
[drift8]
order = FIRST
family = MONOMIAL
components = 3
[]
[]
[Kernels]
[streaming_psi1]
type = SNStreaming
variable = psi1
group_number = 1
[]
[streaming_psi2]
type = SNStreaming
variable = psi2
group_number = 2
[]
[streaming_psi3]
type = SNStreaming
variable = psi3
group_number = 3
[]
[streaming_psi4]
type = SNStreaming
variable = psi4
group_number = 4
[]
[streaming_psi5]
type = SNStreaming
variable = psi5
group_number = 5
[]
[streaming_psi6]
type = SNStreaming
variable = psi6
group_number = 6
[]
[streaming_psi7]
type = SNStreaming
variable = psi7
group_number = 7
[]
[streaming_psi8]
type = SNStreaming
variable = psi8
group_number = 8
[]
[collision_psi1]
type = SNCollision
variable = psi1
group_number = 1
[]
[collision_psi2]
type = SNCollision
variable = psi2
group_number = 2
[]
[collision_psi3]
type = SNCollision
variable = psi3
group_number = 3
[]
[collision_psi4]
type = SNCollision
variable = psi4
group_number = 4
[]
[collision_psi5]
type = SNCollision
variable = psi5
group_number = 5
[]
[collision_psi6]
type = SNCollision
variable = psi6
group_number = 6
[]
[collision_psi7]
type = SNCollision
variable = psi7
group_number = 7
[]
[collision_psi8]
type = SNCollision
variable = psi8
group_number = 8
[]
[scattering_psi1]
type = SNScattering
variable = psi1
group_number = 1
[]
[scattering_psi2]
type = SNScattering
variable = psi2
group_number = 2
[]
[scattering_psi3]
type = SNScattering
variable = psi3
group_number = 3
[]
[scattering_psi4]
type = SNScattering
variable = psi4
group_number = 4
[]
[scattering_psi5]
type = SNScattering
variable = psi5
group_number = 5
[]
[scattering_psi6]
type = SNScattering
variable = psi6
group_number = 6
[]
[scattering_psi7]
type = SNScattering
variable = psi7
group_number = 7
[]
[scattering_psi8]
type = SNScattering
variable = psi8
group_number = 8
[]
[fission_psi1]
type = SNFission
variable = psi1
group_number = 1
eigenvalue_scaling = eigenvalue
[]
[fission_psi2]
type = SNFission
variable = psi2
group_number = 2
eigenvalue_scaling = eigenvalue
[]
[fission_psi3]
type = SNFission
variable = psi3
group_number = 3
eigenvalue_scaling = eigenvalue
[]
[fission_psi4]
type = SNFission
variable = psi4
group_number = 4
eigenvalue_scaling = eigenvalue
[]
[fission_psi5]
type = SNFission
variable = psi5
group_number = 5
eigenvalue_scaling = eigenvalue
[]
[fission_psi6]
type = SNFission
variable = psi6
group_number = 6
eigenvalue_scaling = eigenvalue
[]
[fission_psi7]
type = SNFission
variable = psi7
group_number = 7
eigenvalue_scaling = eigenvalue
[]
[fission_psi8]
type = SNFission
variable = psi8
group_number = 8
eigenvalue_scaling = eigenvalue
[]
[]
[AuxKernels]
[drift1]
type = GroupDriftAux
variable = drift1
group_number = 1
execute_on = timestep_end
[]
[drift2]
type = GroupDriftAux
variable = drift2
group_number = 2
execute_on = timestep_end
[]
[drift3]
type = GroupDriftAux
variable = drift3
group_number = 3
execute_on = timestep_end
[]
[drift4]
type = GroupDriftAux
variable = drift4
group_number = 4
execute_on = timestep_end
[]
[drift5]
type = GroupDriftAux
variable = drift5
group_number = 5
execute_on = timestep_end
[]
[drift6]
type = GroupDriftAux
variable = drift6
group_number = 6
execute_on = timestep_end
[]
[drift7]
type = GroupDriftAux
variable = drift7
group_number = 7
execute_on = timestep_end
[]
[drift8]
type = GroupDriftAux
variable = drift8
group_number = 8
execute_on = timestep_end
[]
[]
[BCs]
[reflecting_psi1]
type = SNReflectingBC
variable = psi1
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi2]
type = SNReflectingBC
variable = psi2
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi3]
type = SNReflectingBC
variable = psi3
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi4]
type = SNReflectingBC
variable = psi4
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi5]
type = SNReflectingBC
variable = psi5
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi6]
type = SNReflectingBC
variable = psi6
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi7]
type = SNReflectingBC
variable = psi7
boundary = '0 1 2 3 4 5'
[]
[reflecting_psi8]
type = SNReflectingBC
variable = psi8
boundary = '0 1 2 3 4 5'
[]
[]
[Functions]
[rod_height]
type = ParsedFunction
expression = '95'
[]
[]
[Materials]
[rod_fuel]
type = SNRodMaterial
base_file = '../../property_file_dir/sn-test/absorber-air-lattice-ref.json'
material_key = 'ctrlrod'
nonrod_material_key = 'fuel'
rod_height_func = rod_height
interp_type = 'none'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_agg_nl -pc_hypre_boomeramg_agg_num_paths -pc_hypre_boomeramg_max_levels -pc_hypre_boomeramg_coarsen_type -pc_hypre_boomeramg_interp_type -pc_hypre_boomeramg_P_max -pc_hypre_boomeramg_truncfactor -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 0.7 4 5 25 HMIS ext+i 2 0.3 200'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-50
l_abs_tol = 1e-9
l_tol = 1e-50
[]
[Postprocessors]
[eigenvalue]
type = Receiver
default = 1
[]
[]
(tests/sn/lattice-sn-sub.i)
N = 8
L = 2
total_ords = ${fparse N*(N+2)}
[GlobalParams]
num_groups = 8
num_precursor_groups = 6
group_fluxes = 'group1 group2 group3 group4 group5 group6 group7 group8'
group_angular_fluxes = 'psi1 psi2 psi3 psi4 psi5 psi6 psi7 psi8'
temperature = 900
N = ${N}
L = ${L}
account_delayed = false
use_exp_form = false
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT DIFFCOEF'
acceleration = true
[]
[Mesh]
second_order = true
[cmg]
type = CartesianMeshGenerator
dim = 1
dx = '1.9375 1.125 3.875 1.125 3.875 1.125 3.875 1.125 1.9375'
ix = '5 4 10 4 10 4 10 4 5'
subdomain_id = '0 1 0 1 0 1 0 1 0'
[]
[]
[Variables]
[psi1]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi2]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi3]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi4]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi5]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi6]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi7]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[psi8]
order = SECOND
family = LAGRANGE
components = ${total_ords}
[]
[]
[AuxVariables]
[group1]
order = SECOND
family = LAGRANGE
[]
[group2]
order = SECOND
family = LAGRANGE
[]
[group3]
order = SECOND
family = LAGRANGE
[]
[group4]
order = SECOND
family = LAGRANGE
[]
[group5]
order = SECOND
family = LAGRANGE
[]
[group6]
order = SECOND
family = LAGRANGE
[]
[group7]
order = SECOND
family = LAGRANGE
[]
[group8]
order = SECOND
family = LAGRANGE
[]
[drift1]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift2]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift3]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift4]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift5]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift6]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift7]
order = SECOND
family = MONOMIAL
components = 3
[]
[drift8]
order = SECOND
family = MONOMIAL
components = 3
[]
[]
[Kernels]
[streaming_psi1]
type = SNStreaming
variable = psi1
group_number = 1
[]
[streaming_psi2]
type = SNStreaming
variable = psi2
group_number = 2
[]
[streaming_psi3]
type = SNStreaming
variable = psi3
group_number = 3
[]
[streaming_psi4]
type = SNStreaming
variable = psi4
group_number = 4
[]
[streaming_psi5]
type = SNStreaming
variable = psi5
group_number = 5
[]
[streaming_psi6]
type = SNStreaming
variable = psi6
group_number = 6
[]
[streaming_psi7]
type = SNStreaming
variable = psi7
group_number = 7
[]
[streaming_psi8]
type = SNStreaming
variable = psi8
group_number = 8
[]
[collision_psi1]
type = SNCollision
variable = psi1
group_number = 1
[]
[collision_psi2]
type = SNCollision
variable = psi2
group_number = 2
[]
[collision_psi3]
type = SNCollision
variable = psi3
group_number = 3
[]
[collision_psi4]
type = SNCollision
variable = psi4
group_number = 4
[]
[collision_psi5]
type = SNCollision
variable = psi5
group_number = 5
[]
[collision_psi6]
type = SNCollision
variable = psi6
group_number = 6
[]
[collision_psi7]
type = SNCollision
variable = psi7
group_number = 7
[]
[collision_psi8]
type = SNCollision
variable = psi8
group_number = 8
[]
[scattering_psi1]
type = SNScattering
variable = psi1
group_number = 1
[]
[scattering_psi2]
type = SNScattering
variable = psi2
group_number = 2
[]
[scattering_psi3]
type = SNScattering
variable = psi3
group_number = 3
[]
[scattering_psi4]
type = SNScattering
variable = psi4
group_number = 4
[]
[scattering_psi5]
type = SNScattering
variable = psi5
group_number = 5
[]
[scattering_psi6]
type = SNScattering
variable = psi6
group_number = 6
[]
[scattering_psi7]
type = SNScattering
variable = psi7
group_number = 7
[]
[scattering_psi8]
type = SNScattering
variable = psi8
group_number = 8
[]
[fission_psi1]
type = SNFission
variable = psi1
block = 1
group_number = 1
eigenvalue_scaling = eigenvalue
[]
[fission_psi2]
type = SNFission
variable = psi2
block = 1
group_number = 2
eigenvalue_scaling = eigenvalue
[]
[fission_psi3]
type = SNFission
variable = psi3
block = 1
group_number = 3
eigenvalue_scaling = eigenvalue
[]
[fission_psi4]
type = SNFission
variable = psi4
block = 1
group_number = 4
eigenvalue_scaling = eigenvalue
[]
[fission_psi5]
type = SNFission
variable = psi5
block = 1
group_number = 5
eigenvalue_scaling = eigenvalue
[]
[fission_psi6]
type = SNFission
variable = psi6
block = 1
group_number = 6
eigenvalue_scaling = eigenvalue
[]
[fission_psi7]
type = SNFission
variable = psi7
block = 1
group_number = 7
eigenvalue_scaling = eigenvalue
[]
[fission_psi8]
type = SNFission
variable = psi8
block = 1
group_number = 8
eigenvalue_scaling = eigenvalue
[]
[]
[AuxKernels]
[drift1]
type = GroupDriftAux
variable = drift1
group_number = 1
execute_on = timestep_end
[]
[drift2]
type = GroupDriftAux
variable = drift2
group_number = 2
execute_on = timestep_end
[]
[drift3]
type = GroupDriftAux
variable = drift3
group_number = 3
execute_on = timestep_end
[]
[drift4]
type = GroupDriftAux
variable = drift4
group_number = 4
execute_on = timestep_end
[]
[drift5]
type = GroupDriftAux
variable = drift5
group_number = 5
execute_on = timestep_end
[]
[drift6]
type = GroupDriftAux
variable = drift6
group_number = 6
execute_on = timestep_end
[]
[drift7]
type = GroupDriftAux
variable = drift7
group_number = 7
execute_on = timestep_end
[]
[drift8]
type = GroupDriftAux
variable = drift8
group_number = 8
execute_on = timestep_end
[]
[]
[BCs]
[reflecting_psi1]
type = SNReflectingBC
variable = psi1
boundary = 'left right'
[]
[reflecting_psi2]
type = SNReflectingBC
variable = psi2
boundary = 'left right'
[]
[reflecting_psi3]
type = SNReflectingBC
variable = psi3
boundary = 'left right'
[]
[reflecting_psi4]
type = SNReflectingBC
variable = psi4
boundary = 'left right'
[]
[reflecting_psi5]
type = SNReflectingBC
variable = psi5
boundary = 'left right'
[]
[reflecting_psi6]
type = SNReflectingBC
variable = psi6
boundary = 'left right'
[]
[reflecting_psi7]
type = SNReflectingBC
variable = psi7
boundary = 'left right'
[]
[reflecting_psi8]
type = SNReflectingBC
variable = psi8
boundary = 'left right'
[]
[]
[Materials]
[fuel]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/lattice.json'
material_key = 'fuel'
interp_type = 'none'
block = '1'
[]
[graphite]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/lattice.json'
material_key = 'graphite'
interp_type = 'none'
block = '0'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -pc_hypre_boomeramg_agg_nl -pc_hypre_boomeramg_agg_num_paths -pc_hypre_boomeramg_max_levels -pc_hypre_boomeramg_coarsen_type -pc_hypre_boomeramg_interp_type -pc_hypre_boomeramg_P_max -pc_hypre_boomeramg_truncfactor -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 0.7 4 5 25 HMIS ext+i 2 0.3 200'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-50
l_abs_tol = 1e-9
l_tol = 1e-50
[]
[Postprocessors]
[eigenvalue]
type = Receiver
default = 1
[]
[]
[Outputs]
perf_graph = true
[]