- 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 current energy group
C++ Type:unsigned int
Controllable:No
Description:The current energy group
- 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 residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
SNScattering
Overview
This object adds the scattering source term of the equation.
Input Parameters
- L2Maximum scattering moment
Default:2
C++ Type:int
Controllable:No
Description:Maximum scattering moment
- accelerationFalseWhether an acceleration scheme is applied.
Default:False
C++ Type:bool
Controllable:No
Description:Whether an acceleration scheme is applied.
- 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
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements
- group_fluxesAll the variables that hold the group 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 fluxes. These MUST be listed by decreasing energy/increasing group number.
- iteration_postprocessor0Name of postprocessor with fixed point iteration number
Default:0
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:Name of postprocessor with fixed point iteration number
- matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)
Default:False
C++ Type:bool
Controllable:No
Description:Whether this object is only doing assembly to matrices (no vectors)
- use_initial_fluxFalseWhether to use the diffusion flux as an initial condition
Default:False
C++ Type:bool
Controllable:No
Description:Whether to use the diffusion flux as an initial condition
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Contribution To Tagged Field Data 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.
- diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- 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/sn/hmg-sn.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
group_constants = 'TOTXS FISSXS NSF FISSE RECIPVEL CHI_T CHI_P CHI_D SPN BETA_EFF DECAY_CONSTANT'
acceleration = false
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Mesh]
second_order = true
[cmg]
type = CartesianMeshGenerator
dim = 1
dx = '20'
ix = '20'
subdomain_id = '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
initial_condition = 1
[]
[group2]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group3]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group4]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group5]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group6]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group7]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[group8]
order = SECOND
family = LAGRANGE
initial_condition = 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
group_number = 1
extra_vector_tags = eigen
[]
[fission_psi2]
type = SNFission
variable = psi2
group_number = 2
extra_vector_tags = eigen
[]
[fission_psi3]
type = SNFission
variable = psi3
group_number = 3
extra_vector_tags = eigen
[]
[fission_psi4]
type = SNFission
variable = psi4
group_number = 4
extra_vector_tags = eigen
[]
[fission_psi5]
type = SNFission
variable = psi5
group_number = 5
extra_vector_tags = eigen
[]
[fission_psi6]
type = SNFission
variable = psi6
group_number = 6
extra_vector_tags = eigen
[]
[fission_psi7]
type = SNFission
variable = psi7
group_number = 7
extra_vector_tags = eigen
[]
[fission_psi8]
type = SNFission
variable = psi8
group_number = 8
extra_vector_tags = eigen
[]
[]
[AuxKernels]
[scalar_group1]
type = SNScalarFluxAux
variable = group1
psi = psi1
execute_on = 'initial linear timestep_end'
[]
[scalar_group2]
type = SNScalarFluxAux
variable = group2
psi = psi2
execute_on = 'initial linear timestep_end'
[]
[scalar_goup3]
type = SNScalarFluxAux
variable = group3
psi = psi3
execute_on = 'initial linear timestep_end'
[]
[scalar_group4]
type = SNScalarFluxAux
variable = group4
psi = psi4
execute_on = 'initial linear timestep_end'
[]
[scalar_group5]
type = SNScalarFluxAux
variable = group5
psi = psi5
execute_on = 'initial linear timestep_end'
[]
[scalar_group6]
type = SNScalarFluxAux
variable = group6
psi = psi6
execute_on = 'initial linear timestep_end'
[]
[scalar_group7]
type = SNScalarFluxAux
variable = group7
psi = psi7
execute_on = 'initial linear timestep_end'
[]
[scalar_group8]
type = SNScalarFluxAux
variable = group8
psi = psi8
execute_on = 'initial linear 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]
[hmg]
type = MoltresSNMaterial
base_file = '../../property_file_dir/sn-test/hmg.json'
material_key = 'hmg'
interp_type = 'none'
block = '0'
[]
[]
[Executioner]
type = Eigenvalue
free_power_iterations = 2
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
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 0
execute_on = 'initial linear timestep_end'
[]
[]
[VectorPostprocessors]
[eigenvalues]
type = Eigenvalues
inverse_eigenvalue = true
outputs = console
[]
[]
[Outputs]
[exodus]
type = Exodus
discontinuous = true
[]
[]
(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
[]
(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
[]
[]