- variableThe name of the variable that this object operates on
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object operates on
ElementL2Diff
The ElementL2Diff has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.
Computes a volume integral of the specified variable
Overview
Example Input File Syntax
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- execute_onTIMESTEP_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:TIMESTEP_END
C++ Type:ExecFlagEnum
Unit:(no unit assumed)
Options:NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, TRANSFER
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.
- 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_absolute_valueFalseWhether to use abolsute value of the variable or not
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to use abolsute value of the variable or not
- 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
Unit:(no unit assumed)
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.
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Unit:(no unit assumed)
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Input Files
- (tests/materials/gmm_none.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-922.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_nts_only.i)
- (tests/materials/mjm_linear.i)
- (tests/materials/gmm_linear.i)
- (tutorial/PinCell/pin_cell.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
- (problems/rodMatchSerpentWorth/rodded.i)
- (tutorial/eigenvalue/nts-action.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-one-channel-two-grp-two-mat-scale.i)
- (problems/gmsh-mesh-one-material.i)
- (problems/2017_annals_pub_msre_compare/4group_eigen.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp.i)
- (problems/ipm.i)
- (tests/materials/gmm_spline.i)
- (problems/gmsh-mesh-two-materials.i)
- (problems/debug-precursor-action.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-73-mc-gcs.i)
- (problems/msr.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp-two-mat.i)
- (tutorial/eigenvalue/nts.i)
- (problems/2021-cnrs-benchmark/phase-1/buoyancy-nts.i)
- (problems/publication_level_cases/manuBench/nts.i)
- (problems/2021-cnrs-benchmark/phase-1/full-coupling-nts.i)
- (problems/gmsh-3d-coupled-nts-temp.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-1022.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-inverted-file-mesh-two-grp-two-mat.i)
- (problems/msr-2x2-reflective-bcs.i)
- (problems/070517_4group/eigen/eigen.i)
- (tests/materials/gmm_monotone_cubic.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen_b1_gcs.i)
- (problems/single_msre_channel_velocity_heat_nts/nts-eigenvalue-msre-channel-dimensions.i)
- (problems/nts-temp-delayed.i)
- (problems/publication_level_cases/manuBench/manubox.i)
- (problems/gmsh-two-mat-multiple-pin.i)
- (problems/msr-couple-temp-nts-2x2-10xPow.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-57-mc-gcs.i)
- (problems/msr-small-vacuum.i)
- (problems/060717_dimension_testing/one_group_nts_only.i)
- (tests/nts/gen-mesh-one-material.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-one-grp.i)
- (problems/2021-cnrs-benchmark/phase-0/nts.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-problem.i)
- (problems/ne_deficient_b.i)
- (problems/msr-10x10-vacuum.i)
- (problems/axi-nts-temp-delayed.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-two-grp.i)
- (problems/2021-cnrs-benchmark/phase-1/power-coupling-nts.i)
- (problems/021417_MSRE_materials/CG_no_temp.i)
- (problems/gen-mesh-one-material.i)
- (problems/publication_level_cases/manuBench/manuboxNoStokes.i)
- (problems/2021-cnrs-benchmark/phase-1/circ-fuel.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-four-grp.i)
- (tests/materials/mjm_spline.i)
- (problems/2017_annals_pub_msre_compare/2group_eigen.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-nts-eigenvalue.i)
- (problems/rodMatchSerpentWorth/adjustAbsorb/rodded.i)
- (problems/transient-jac-test.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
- (tests/coupled/coupled_eigenvalue.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-should-be-crit-one-group.i)
- (tests/materials/mjm_monotone_cubic.i)
- (tests/materials/mjm_none.i)
(tests/materials/gmm_none.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/inf_crit_small_two_group_'
interp_type = 'none'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-922.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
file = 'inverted_29x29_h_133.msh'
# file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_nts_only.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
[]
[group2]
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/mjm_linear.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/gmm_linear.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tutorial/PinCell/pin_cell.i)
global_temperature = 600
[GlobalParams]
num_groups = 2
base_file = 'PinXS.json'
group_fluxes = ' group1 group2'
num_precursor_groups = 6
use_exp_form = false
temperature = ${global_temperature}
[]
[Mesh]
file = pin_cell_mesh.e
[]
[Problem]
type = FEProblem
coord_type = XYZ
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
account_delayed = 0
sss2_input = 1
[]
[Materials]
[F]
type = MoltresJsonMaterial
block = '1 2'
material_key = 'F'
interp_type = 'NONE'
temperature = 600
prop_names = ''
prop_values = ''
[]
[C]
type = MoltresJsonMaterial
block = 3
material_key = 'C'
interp_type = 'NONE'
temperature = 600
prop_names = ''
prop_values = ''
[]
[W]
type = MoltresJsonMaterial
block = 4
material_key = 'W'
interp_type = 'NONE'
temperature = 600
prop_names = ''
prop_values = ''
[]
[]
[Executioner]
type = NonlinearEigen
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
(problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '.369 .369 1'
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
# [./fuel]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_fuel_'
# interp_type = 'spline'
# block = 'fuel'
# [../]
# [./moder]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_mod_'
# interp_type = 'spline'
# block = 'moder'
# [../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
execute_on = 'timestep_end final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/rodMatchSerpentWorth/rodded.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
eigen = true
[]
[Kernels]
[temp_source_fuel]
type = FissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
power = 7.5e6
tot_fissions = tot_fissions
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'tot_fissions'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = DirichletBC
variable = temp
value = ${diri_temp}
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[]
[cRod]
type = RoddedMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = 200.0
absorb_factor = 1e6 # how much more absorbing than usual in absorbing region?
[]
[rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'asm lu NONZERO 1e-10'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(tutorial/eigenvalue/nts-action.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = 'mesh.e'
[]
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottom mod_bottom right fuel_top mod_top'
pre_blocks = '0'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = false
eigen = true
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = 'xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 0
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-one-channel-two-grp-two-mat-scale.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
eig_check_tol = 1e-9
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-mesh-one-material.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-one-mat.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/2017_annals_pub_msre_compare/4group_eigen.i)
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = 922
sss2_input = true
pre_concs = ''
account_delayed = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = Eigenvalue
eigen_tol = 1e-6
normalization = bnorm
normal_factor = 1
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = 'nonlinear linear timestep_end'
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'nonlinear linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/ipm.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 100
ymin = 0
ymax = 100
elem_type = QUAD4
nx = 8
ny = 8
uniform_refine = 0
displacements = 'x_disp y_disp'
[]
#The minimum eigenvalue for this problem is 2*(pi/a)^2 + 2 with a = 100.
#Its inverse will be 0.49950700634518.
[Variables]
active = 'u'
[./u]
# second order is way better than first order
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./x_disp]
[../]
[./y_disp]
[../]
[]
[AuxKernels]
[./x_disp]
type = FunctionAux
variable = x_disp
function = x_disp_func
[../]
[./y_disp]
type = FunctionAux
variable = y_disp
function = y_disp_func
[../]
[]
[Functions]
[./x_disp_func]
type = ParsedFunction
value = 0
[../]
[./y_disp_func]
type = ParsedFunction
value = 0
[../]
[]
[Kernels]
active = 'diff rea rhs'
[./diff]
type = Diffusion
variable = u
use_displaced_mesh = true
[../]
[./rea]
type = CoefReaction
variable = u
coefficient = 2.0
use_displaced_mesh = true
[../]
[./rhs]
type = MassEigenKernel
variable = u
use_displaced_mesh = true
[../]
[]
[BCs]
active = 'homogeneous'
[./homogeneous]
type = DirichletBC
variable = u
boundary = '0 1 2 3'
value = 0
use_displaced_mesh = true
[../]
[]
[Executioner]
type = InversePowerMethod
min_power_iterations = 11
max_power_iterations = 400
Chebyshev_acceleration_on = true
eig_check_tol = 1e-12
k0 = 1
bx_norm = 'unorm'
xdiff = 'udiff'
normalization = 'unorm'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
active = 'unorm udiff'
[./unorm]
type = ElementIntegralVariablePostprocessor
variable = u
execute_on = linear
use_displaced_mesh = true
[../]
[./udiff]
type = ElementL2Diff
variable = u
execute_on = 'linear timestep_end'
use_displaced_mesh = true
[../]
[]
[Outputs]
file_base = ipm
exodus = true
hide = 'x_disp y_disp'
[]
(tests/materials/gmm_spline.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-mesh-two-materials.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-msr.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/debug-precursor-action.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 1
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 200000
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
block_id = 0
block_name = 'fuel'
[]
[MeshModifiers]
[mod]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = 1
block_name = 'moder'
[]
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
temperature = temp
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
temperature = temp
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
temperature = temp
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
temperature = temp
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# [../]
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
[]
# # Delayed neutron precursors
# [./pre1_source]
# type = PrecursorSource
# variable = pre1
# precursor_group_number = 1
# temperature = temp
# [../]
# [./pre1_decay]
# type = PrecursorDecay
# variable = pre1
# precursor_group_number = 2
# temperature = temp
# [../]
[]
[Precursors]
var_name_base = pre
# v_def = ${flow_velocity}
# block = 'fuel'
inlet_boundary = 'bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_dirichlet_value = 0
outlet_boundary = 'top'
T = temp
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
temperature = temp
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
temperature = temp
[]
[]
[BCs]
[temp_inlet]
boundary = 'bottom'
type = DirichletBC
variable = temp
value = 900
[]
[temp_outlet]
boundary = 'top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'top bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'top bottom'
[]
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.7
pfactor = 1e-2
l_max_its = 100
line_search = none
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-pc_type -sub_pc_type -sub_ksp_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu preonly 2 31'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-73-mc-gcs.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/msr.i)
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr.msh'
[../]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
eigen = true
[../]
[]
[Kernels]
[./diff_u]
type = MatDiffusion
variable = u
prop_name = d_u
[../]
[./diff_v]
type = MatDiffusion
variable = v
prop_name = d_v
[../]
[./sigma_r_u]
type = SigmaR
variable = u
sigma_r = sigma_r_u
[../]
[./sigma_r_v]
type = SigmaR
variable = v
sigma_r = sigma_r_v
[../]
[./inscatter_v]
type = InScatter
variable = v
scattered_group = u
sigma_s = sigma_12
[../]
[./fission_source_u_from_v]
type = CoupledFissionEigenKernel
variable = u
fissioning_group = v
nu_f = nu_f_v
sigma_f = sigma_f_v
[../]
[./fission_source_u_from_u]
type = SelfFissionEigenKernel
variable = u
nu_f = nu_f_u
sigma_f = sigma_f_u
[../]
[]
[Materials]
[./fuel]
type = GenericConstantMaterial
block = 'fuel'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.5941650 .9912190 3.2802e-3 1.8537e-2 1.6001e-3 2.43575 8.7632e-4 2.43620 1.3699e-2'
[../]
[./moder]
type = GenericConstantMaterial
block = 'moder'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.8277580 .0307684 3.0658e-3 2.3705e-3 2.2285e-3 0 0 0 0'
[../]
[]
# [BCs]
# [./homogeneous_u]
# type = DirichletBC
# variable = u
# boundary = 'boundary'
# value = 0
# [../]
# [./homogeneous_v]
# type = DirichletBC
# variable = v
# boundary = 'boundary'
# value = 0
# [../]
# []
[Executioner]
type = NonlinearEigen
bx_norm = 'vnorm'
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-50
k0 = 1.0
output_after_power_iterations = true
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
[./vnorm]
type = ElementIntegralVariablePostprocessor
variable = v
# execute on residual is important for nonlinear eigen solver!
execute_on = linear
[../]
[./udiff]
type = ElementL2Diff
variable = u
outputs = console
[../]
[]
[Outputs]
[./out]
type = Exodus
execute_on = 'timestep_end'
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp-two-mat.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = true
[]
[Mesh]
file = 'msre_26x26.msh'
# file = 'msre_cuboid_3x3.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_fuel_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_moder_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tutorial/eigenvalue/nts.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = 'mesh.e'
[]
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = false
eigen = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = '0'
extra_vector_tags = 'eigen'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = '0'
extra_vector_tags = 'eigen'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = 'xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 0
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/2021-cnrs-benchmark/phase-1/buoyancy-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = vel_x
vvel = vel_y
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[vel_x]
family = LAGRANGE
order = FIRST
[]
[vel_y]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[AuxKernels]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
initial_eigenvalue = 0.99600
nl_abs_tol = 1e-11
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'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = TIMESTEP_END
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/publication_level_cases/manuBench/nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = 900
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-1/full-coupling-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = vel_x
vvel = vel_y
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[vel_x]
family = LAGRANGE
order = FIRST
[]
[vel_y]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[AuxKernels]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
initial_eigenvalue = 0.99600
nl_abs_tol = 1e-11
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'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[max_temp]
type = NodalExtremeValue
value_type = max
variable = temp
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = TIMESTEP_END
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/gmsh-3d-coupled-nts-temp.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 20
[]
[Mesh]
file = 'msr-small.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
# scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = boundary
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
# [./src_resid_post]
# type = NodalL2Norm
# variable = src_resid
# execute_on = nonlinear
# [../]
# [./diffus_resid_post]
# type = NodalL2Norm
# variable = diffus_resid
# execute_on = nonlinear
# [../]
# [./bc_resid_post]
# type = NodalL2Norm
# variable = bc_resid
# execute_on = nonlinear
# [../]
# [./tot_resid_post]
# type = NodalL2Norm
# variable = tot_resid
# execute_on = nonlinear
# [../]
# [./group1diff]
# type = ElementL2Diff
# variable = group1
# execute_on = 'linear timestep_end'
# use_displaced_mesh = false
# [../]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_b1_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-1022.i)
global_temperature = 1022
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
file = 'inverted_29x29_h_133.msh'
# file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-inverted-file-mesh-two-grp-two-mat.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
# file = 'inverted_29x29_h_143.msh'
file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/msr-2x2-reflective-bcs.i)
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[../]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
eigen = true
[../]
[]
[Kernels]
[./diff_u]
type = MatDiffusion
variable = u
prop_name = d_u
[../]
[./diff_v]
type = MatDiffusion
variable = v
prop_name = d_v
[../]
[./sigma_r_u]
type = SigmaR
variable = u
sigma_r = sigma_r_u
[../]
[./sigma_r_v]
type = SigmaR
variable = v
sigma_r = sigma_r_v
[../]
[./inscatter_v]
type = InScatter
variable = v
scattered_group = u
sigma_s = sigma_12
[../]
[./fission_source_u_from_v]
type = CoupledFissionEigenKernel
variable = u
fissioning_group = v
nu_f = nu_f_v
sigma_f = sigma_f_v
[../]
[./fission_source_u_from_u]
type = SelfFissionEigenKernel
variable = u
nu_f = nu_f_u
sigma_f = sigma_f_u
[../]
[]
[Materials]
[./fuel]
type = GenericConstantMaterial
block = 'fuel'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.5941650 .9912190 3.2802e-3 1.8537e-2 1.6001e-3 2.43575 8.7632e-4 2.43620 1.3699e-2'
[../]
[./moder]
type = GenericConstantMaterial
block = 'moder'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.8277580 .0307684 3.0658e-3 2.3705e-3 2.2285e-3 0 0 0 0'
[../]
[]
# [BCs]
# [./homogeneous_u]
# type = DirichletBC
# variable = u
# boundary = 'boundary'
# value = 0
# [../]
# [./homogeneous_v]
# type = DirichletBC
# variable = v
# boundary = 'boundary'
# value = 0
# [../]
# []
[Executioner]
type = NonlinearEigen
bx_norm = 'vnorm'
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-50
k0 = 1.0
output_after_power_iterations = true
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
[./vnorm]
type = ElementIntegralVariablePostprocessor
variable = v
# execute on residual is important for nonlinear eigen solver!
execute_on = linear
[../]
[./udiff]
type = ElementL2Diff
variable = u
outputs = console
[../]
[]
[Outputs]
[./out]
type = Exodus
execute_on = 'timestep_end'
[../]
[]
(problems/070517_4group/eigen/eigen.i)
ini_temp=922
diri_temp=922
nt_scale=1e13
temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
sss2_input = false
account_delayed = false
temperature = 922
temp = 922
[]
flow_velocity = 21.7
[Mesh]
file = '../../033117_nts_temp_pre_parsed_mat/3d_msre_29x29_136.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'moder_sides fuel_bottoms fuel_tops moder_bottoms moder_tops'
create_temperature_var = false
eigen = true
[]
#[Variables]
# [./group1]
# [../]
# [./group2]
# [../]
# [./group3]
# [../]
# [./group4]
# [../]
# #[./temp]
# # initial_condition = ${ini_temp}
# # scaling = 1e-4
# #[../]
#[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[../]
[./vacuum_group3]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group3
[../]
[./vacuum_group4]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group4
[../]
#[./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms moder_sides'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
#[../]
#[./temp_advection_outlet]
# boundary = 'fuel_tops'
# type = TemperatureOutflowBC
# variable = temp
# velocity = '0 0 ${flow_velocity}'
#[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root ='../../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
block = 'moder'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[../]
[./group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[../]
[./group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[../]
[./group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[../]
[./group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/gmm_monotone_cubic.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'monotone_cubic'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/CG_no_temp_eigen.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = true
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/021417_MSRE_materials/CG_no_temp_eigen_b1_gcs.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = true
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/B1_full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/B1_full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/single_msre_channel_velocity_heat_nts/nts-eigenvalue-msre-channel-dimensions.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
width = 3.048
height = 1.016
length = 162.56
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = single_channel_msre_dimensions.msh
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# outlet_boundaries = 'fuel_top'
# u_func = vel_x_func
# v_func = vel_y_func
# w_func = vel_z_func
# constant_velocity_values = false
# nt_exp_form = false
# family = MONOMIAL
# order = CONSTANT
# # jac_test = true
# []
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# variable = group1
# group_number = 1
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
# [./delayed_group1]
# type = DelayedNeutronSource
# variable = group1
# [../]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# [./time_group2]
# type = NtTimeDerivative
# variable = group2
# group_number = 2
# [../]
[]
# [BCs]
# [./vacuum_group1]
# type = VacuumConcBC
# boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
# # boundary = 'fuel_bottom moderator_bottoms'
# variable = group1
# [../]
# [./vacuum_group2]
# type = VacuumConcBC
# boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
# # boundary = 'fuel_bottom moderator_bottoms'
# variable = group2
# [../]
# []
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[]
[]
[ICs]
[group1]
type = FunctionIC
variable = group1
function = nt_ic
[]
[group2]
type = FunctionIC
variable = group2
function = nt_ic
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/nts-temp-delayed.i)
[GlobalParams]
num_groups = 2
# temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
# power = 20
[]
[Mesh]
file = 'cylinder.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
# [./temp]
# order = FIRST
# family = LAGRANGE
# # scaling = 1e-3
# [../]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# [../]
# # Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# save_in = 'diffus_resid tot_resid'
# [../]
# [./temp_source]
# type = FissionHeatSource
# tot_fissions = tot_fissions
# variable = temp
# save_in = 'src_resid tot_resid'
# [../]
[]
[AuxVariables]
# [./Qf]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
# [./Qf]
# type = FissionHeatSourceAux
# variable = Qf
# tot_fissions = tot_fissions
# [../]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
# [./temp]
# boundary = boundary
# type = DirichletBC
# variable = temp
# value = 900
# save_in = 'bc_resid tot_resid'
# [../]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'all_top all_bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'all_top all_bottom'
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 2
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = false
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/publication_level_cases/manuBench/manubox.i)
library_path=/home/gavin/projects/moose/modules/navier_stokes/lib/
[GlobalParams]
# neutronics
num_groups=6
num_precursor_groups=8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
account_delayed = true
# fluids
gravity = '0 -9.81 0'
pspg = true
convective_term = true
integrate_p_by_parts = true
laplace = true
u = vel_x
v = vel_y
p = p
alpha = 1e-6 # stabilisation parameter
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[MeshModifiers]
[./corner_node]
type = AddExtraNodeset
new_boundary = 'pinned_node'
nodes = '0'
[../]
[]
[Variables]
# velocities
[./vel_x]
family = LAGRANGE
order = FIRST
[../]
[./vel_y]
family = LAGRANGE
order = FIRST
[../]
# pressure
[./p]
family = LAGRANGE
order = FIRST
[../]
# temperature
[./temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
scaling = 1e-4
[../]
[]
# nt -> neutron
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
[]
[Precursors]
[./preblock]
var_name_base = pre
# block = 'fuel'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
outlet_boundaries = ''
uvel = vel_x
vvel = vel_y
transient = false
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
[../]
[./tempAdvectionDiffusion]
type = INSTemperature
variable = temp
u = vel_x
v = vel_y
[../]
[./buoyancy_y]
type = INSBoussinesqBodyForce
variable = vel_y
dT = deltaT
component = 1
temperature = temp
[../]
[./heatRemoval]
type = ConvectiveHeatExchanger
variable = temp
tref = 900.0
htc = 1.0
[../]
[]
[BCs]
[./ux_dirichlet]
type = DirichletBC
boundary = 'left right bottom top'
variable = vel_x
value = 0
[../]
[./uy_dirichlet]
type = DirichletBC
boundary = 'left right bottom top'
variable = vel_y
value = 0
[../]
[./p_pin]
type=DirichletBC
boundary = 'pinned_node'
variable = p
value = 0
[../]
[]
[Materials]
# alpha = coefficient of thermal expansion where rho = rho0 -alpha * rho0 * delta T
# Dr. Aufiero uses nu rather than mu, (kinematic rather than absolute viscosity)
# likewise, \rho c_p is given rather than separate \rho, c_p
# accordingly, we let \rho = 1 to obtain equivalent results
# also, Manu gives a length expansion coefficient. Boussinesq approximations
# typically use an expansion coefficient with units 1/K, but for mass instead.
# The relation between the two is alpha = -3 beta, if linearized.
# Also, had to use Pr = mu * cp / k
[./const]
type = GenericConstantMaterial
prop_names = 'mu rho alpha k cp'
prop_values = '0.025 1.0 6.0e-4 0.5 6.15e6'
[../]
[./fuelneutronicproperties]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none' # 'spline'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'PJFNK'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
# fission power normalization:
normalization = powernorm
normal_factor = 1e9 # watts
# power iteration options
xdiff = 'group1diff'
bx_norm = 'bnorm'
pfactor = 1e-2
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[../]
[]
[AuxVariables]
[./deltaT]
type = ConstantDifferenceAux
variable = deltaT
comparevar = temp
constant = 900
[../]
[]
[AuxKernels]
[./deltaTCalc]
type = ConstantDifferenceAux
variable = deltaT
compareVar = temp
constant = 900
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-two-mat-multiple-pin.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-msr-more-pins.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/msr-couple-temp-nts-2x2-10xPow.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 20
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
# scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = boundary
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-57-mc-gcs.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 57
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/msr-small-vacuum.i)
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[../]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
eigen = true
[../]
[]
[Kernels]
[./diff_u]
type = MatDiffusion
variable = u
prop_name = d_u
[../]
[./diff_v]
type = MatDiffusion
variable = v
prop_name = d_v
[../]
[./sigma_r_u]
type = SigmaR
variable = u
sigma_r = sigma_r_u
[../]
[./sigma_r_v]
type = SigmaR
variable = v
sigma_r = sigma_r_v
[../]
[./inscatter_v]
type = InScatter
variable = v
scattered_group = u
sigma_s = sigma_12
[../]
[./fission_source_u_from_v]
type = CoupledFissionEigenKernel
variable = u
fissioning_group = v
nu_f = nu_f_v
sigma_f = sigma_f_v
[../]
[./fission_source_u_from_u]
type = SelfFissionEigenKernel
variable = u
nu_f = nu_f_u
sigma_f = sigma_f_u
[../]
[]
[Materials]
[./fuel]
type = GenericConstantMaterial
block = 'fuel'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.5941650 .9912190 3.2802e-3 1.8537e-2 1.6001e-3 2.43575 8.7632e-4 2.43620 1.3699e-2'
[../]
[./moder]
type = GenericConstantMaterial
block = 'moder'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.8277580 .0307684 3.0658e-3 2.3705e-3 2.2285e-3 0 0 0 0'
[../]
[]
[BCs]
[./homogeneous_u]
type = VacuumBC
variable = u
boundary = 'boundary'
alpha = .5941650
[../]
[./homogeneous_v]
type = VacuumBC
variable = v
boundary = 'boundary'
alpha = .9912190
[../]
[]
[Executioner]
type = NonlinearEigen
bx_norm = 'vnorm'
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-50
k0 = 1.0
output_after_power_iterations = true
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
[./vnorm]
type = ElementIntegralVariablePostprocessor
variable = v
# execute on residual is important for nonlinear eigen solver!
execute_on = linear
[../]
[./udiff]
type = ElementL2Diff
variable = u
outputs = console
[../]
[]
[Outputs]
[./out]
type = Exodus
execute_on = 'timestep_end'
[../]
[]
(problems/060717_dimension_testing/one_group_nts_only.i)
[GlobalParams]
num_groups = 1
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1'
temperature = 972
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_one_group_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_one_group_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
file_base = ''
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/nts/gen-mesh-one-material.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
use_exp_form = false
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 6
ymax = 6
nx = 15
ny = 15
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
diffusivity = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fission_heat = tot_fission_heat
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fission_heat = tot_fission_heat
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
interp_type = spline
[]
[]
[BCs]
[temp]
boundary = 'left right top bottom'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fission_heat]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-one-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 1
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
# [BCs]
# [./vacuum1]
# type = VacuumConcBC
# boundary = 'right top bottom'
# variable = group1
# [../]
# []
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-0/nts.i)
# Step 0.2: Neutronics input file
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 50
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = true
u_def = 0
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization settings
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
initial_eigenvalue = 0.99600
free_power_iterations = 2
eigen_tol = 1e-7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
## Use the settings below instead if running on computing cluster/supercomputer with a finer mesh
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[aa]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '0 100 0'
end_point = '200 100 0'
num_points = 201
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-problem.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
file = 'cylinder_rad_57.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'boundaries'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'boundaries'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 'reactor'
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/ne_deficient_b.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1.25
nx = 16
[]
[MeshModifiers]
[./uranium]
type = SubdomainBoundingBox
bottom_left = '.3125 0 0 '
top_right = '.9375 1 0'
block_id = 1
[../]
[./right_water]
type = SubdomainBoundingBox
bottom_left = '.9375 0 0'
top_right = '1.25 1 0'
block_id = 2
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
eigen = true
[../]
[]
[Kernels]
[./diff_u]
type = MatDiffusion
variable = u
prop_name = d_u
[../]
[./diff_v]
type = MatDiffusion
variable = v
prop_name = d_v
[../]
[./sigma_r_u]
type = SigmaR
variable = u
sigma_r = sigma_r_u
[../]
[./sigma_r_v]
type = SigmaR
variable = v
sigma_r = sigma_r_v
[../]
[./inscatter_v]
type = InScatter
variable = v
scattered_group = u
sigma_s = sigma_12
[../]
[./fission_source_u]
type = CoupledFissionEigenKernel
variable = u
fissioning_group = v
nu_f = nu_f_v
sigma_f = sigma_f_v
[../]
[]
[Materials]
[./water]
type = GenericConstantMaterial
block = '0 2'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_v sigma_f_v'
prop_values = '1.67 .30303 .03 0 .03 0 0'
[../]
[./fuel]
type = GenericConstantMaterial
block = 1
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_v sigma_f_v'
prop_values = '1.67 .3333 .015 .1 .015 1.5 .1'
[../]
[]
# [BCs]
# [./homogeneous_u]
# type = DirichletBC
# variable = u
# boundary = '0 1 2 3'
# value = 0
# [../]
# [./homogeneous_v]
# type = DirichletBC
# variable = v
# boundary = '0 1 2 3'
# value = 0
# [../]
# []
[Executioner]
type = NonlinearEigen
bx_norm = 'vnorm'
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-50
k0 = 1.0
output_after_power_iterations = false
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
[./vnorm]
type = ElementIntegralVariablePostprocessor
variable = v
# execute on residual is important for nonlinear eigen solver!
execute_on = linear
[../]
[./udiff]
type = ElementL2Diff
variable = u
outputs = console
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = ne_deficient_b
exodus = true
[]
(problems/msr-10x10-vacuum.i)
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-10x10.msh'
[../]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
eigen = true
[../]
[]
[Kernels]
[./diff_u]
type = MatDiffusion
variable = u
prop_name = d_u
[../]
[./diff_v]
type = MatDiffusion
variable = v
prop_name = d_v
[../]
[./sigma_r_u]
type = SigmaR
variable = u
sigma_r = sigma_r_u
[../]
[./sigma_r_v]
type = SigmaR
variable = v
sigma_r = sigma_r_v
[../]
[./inscatter_v]
type = InScatter
variable = v
scattered_group = u
sigma_s = sigma_12
[../]
[./fission_source_u_from_v]
type = CoupledFissionEigenKernel
variable = u
fissioning_group = v
nu_f = nu_f_v
sigma_f = sigma_f_v
[../]
[./fission_source_u_from_u]
type = SelfFissionEigenKernel
variable = u
nu_f = nu_f_u
sigma_f = sigma_f_u
[../]
[]
[Materials]
[./fuel]
type = GenericConstantMaterial
block = 'fuel'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.5941650 .9912190 3.2802e-3 1.8537e-2 1.6001e-3 2.43575 8.7632e-4 2.43620 1.3699e-2'
[../]
[./moder]
type = GenericConstantMaterial
block = 'moder'
prop_names = 'd_u d_v sigma_r_u sigma_r_v sigma_12 nu_f_u sigma_f_u nu_f_v sigma_f_v'
prop_values = '.8277580 .0307684 3.0658e-3 2.3705e-3 2.2285e-3 0 0 0 0'
[../]
[]
[BCs]
[./homogeneous_u]
type = VacuumBC
variable = u
boundary = 'boundary'
alpha = .5941650
[../]
[./homogeneous_v]
type = VacuumBC
variable = v
boundary = 'boundary'
alpha = .9912190
[../]
[]
[Executioner]
# type = NonlinearEigen
type = InversePowerMethod
bx_norm = 'vnorm'
# free_power_iterations = 2
# source_abs_tol = 1e-12
# source_rel_tol = 1e-50
# output_after_power_iterations = false
# l_max_its = 25
k0 = 1.0
min_power_iterations = 11
max_power_iterations = 400
eig_check_tol = 1e-12
Chebyshev_acceleration_on = true
xdiff = 'udiff'
normalization = 'vnorm'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
[]
[Postprocessors]
[./vnorm]
type = ElementIntegralVariablePostprocessor
variable = v
# execute on residual is important for nonlinear eigen solver!
execute_on = linear
[../]
[./udiff]
type = ElementL2Diff
variable = u
outputs = console
execute_on = 'linear timestep_end'
[../]
[]
[Outputs]
[./out]
type = Exodus
execute_on = 'timestep_end'
[../]
[]
(problems/axi-nts-temp-delayed.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 200000
[]
[Mesh]
file = 'axisymm_cylinder.msh'
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
temperature = temp
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
temperature = temp
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
temperature = temp
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
temperature = temp
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# [../]
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
[]
[]
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
block = 'fuel'
inlet_boundary = 'fuel_bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_dirichlet_value = -20
outlet_boundary = 'fuel_top'
T = temp
incompressible_flow = false
use_exp_form = true
initial_condition = -20
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[pre1_lin]
family = MONOMIAL
order = CONSTANT
[]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[pre1_lin]
variable = pre1_lin
density_log = pre1
type = Density
[]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
temperature = temp
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
temperature = temp
[]
[]
[BCs]
[temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = 900
[]
[temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.7
pfactor = 1e-2
l_max_its = 100
# line_search = none
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-pc_type -sub_pc_type -sub_ksp_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu preonly 2 31'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-two-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_two_group_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-1/power-coupling-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = ux
vvel = uy
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[ux]
family = LAGRANGE
order = FIRST
[]
[uy]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[UserObjects]
[velocities]
type = SolutionUserObject
mesh = '../phase-0/vel-field_exodus.e'
system_variables = 'vel_x vel_y'
timestep = LATEST
execute_on = INITIAL
[]
[]
[AuxKernels]
[ux]
type = SolutionAux
variable = ux
from_variable = vel_x
solution = velocities
[]
[uy]
type = SolutionAux
variable = uy
from_variable = vel_y
solution = velocities
[]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Functions]
[velxf]
type = SolutionFunction
from_variable = vel_x
solution = velocities
[]
[velyf]
type = SolutionFunction
from_variable = vel_y
solution = velocities
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
scaling_group_variables = 'group1 group2 group3 group4 group5 group6;
pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
initial_eigenvalue = 1.00
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'
petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[flux_aa]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '0 100 0'
end_point = '200 100 0'
num_points = 201
sort_by = x
execute_on = FINAL
outputs = 'csv'
[]
[flux_bb]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '100 0 0'
end_point = '100 200 0'
num_points = 201
sort_by = y
execute_on = FINAL
outputs = 'csv'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/021417_MSRE_materials/CG_no_temp.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = false
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
petsc_options_iname = '-snes_type'
petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/gen-mesh-one-material.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 6
ymax = 6
nx = 15
ny = 15
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'left right top bottom'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/publication_level_cases/manuBench/manuboxNoStokes.i)
library_path=/home/gavin/projects/moose/modules/navier_stokes/lib/
[GlobalParams]
# neutronics
num_groups=6
num_precursor_groups=8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[Variables]
# temperature
[./temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
scaling = 1e-4
[../]
[]
# nt -> neutron
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
scaling = 1e-10
[]
[Precursors]
[./preblock]
var_name_base = pre
# block = 'fuel'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
outlet_boundaries = ''
transient = false
u_func = 0.0
v_func = 0.0
w_func = 0.0
[../]
[]
[Kernels]
[./heating]
type = TransientFissionHeatSource
variable = temp
group_fluxes = 'group1 group2 group3 group4 group5 group6'
[../]
[./heatRemoval]
type = ConvectiveHeatExchanger
variable = temp
tref = 900.0
htc = 1.0
[../]
[]
[BCs]
[]
[Materials]
# alpha = coefficient of thermal expansion where rho = rho0 -alpha * rho0 * delta T
# Dr. Aufiero uses nu rather than mu, (kinematic rather than absolute viscosity)
# likewise, \rho c_p is given rather than separate \rho, c_p
# accordingly, we let \rho = 1 to obtain equivalent results
# also, Manu gives a length expansion coefficient. Boussinesq approximations
# typically use an expansion coefficient with units 1/K, but for mass instead.
# The relation between the two is alpha = -3 beta, if linearized.
# Also, had to use Pr = mu * cp / k
[./const]
type = GenericConstantMaterial
prop_names = 'mu rho alpha k cp'
prop_values = '0.025 1.0 6.0e-4 0.5 6.15e6'
[../]
[./fuelneutronicproperties]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none' # 'spline'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'PJFNK'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
# fission power normalization:
normalization = powernorm
normal_factor = 1e9 # watts
# power iteration options
xdiff = 'group1diff'
bx_norm = 'bnorm'
pfactor = 1e-2
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 100
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[../]
[]
[AuxVariables]
[./deltaT]
type = ConstantDifferenceAux
variable = deltaT
comparevar = temp
constant = 900
[../]
[]
[AuxKernels]
[./deltaTCalc]
type = ConstantDifferenceAux
variable = deltaT
compareVar = temp
constant = 900
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-1/circ-fuel.i)
# Step 1.1: Circulating fuel input file
# Requires velocity fields from Step 0.1
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a desktop/small cluster
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = ux
vvel = uy
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[ux]
family = LAGRANGE
order = FIRST
[]
[uy]
family = LAGRANGE
order = FIRST
[]
[]
[UserObjects]
[velocities]
type = SolutionUserObject
mesh = '../phase-0/vel-field_exodus.e'
system_variables = 'vel_x vel_y'
timestep = LATEST
execute_on = INITIAL
[]
[]
[AuxKernels]
[ux]
type = SolutionAux
variable = ux
from_variable = vel_x
solution = velocities
[]
[uy]
type = SolutionAux
variable = uy
from_variable = vel_y
solution = velocities
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
initial_eigenvalue = 0.99600
eigen_tol = 1e-7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
# petsc_options_value = 'lu NONZERO superlu_dist'
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-four-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[group3]
[]
[group4]
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[diff_group3]
type = GroupDiffusion
variable = group3
group_number = 3
[]
[sigma_r_group3]
type = SigmaR
variable = group3
group_number = 3
[]
[fission_source_group3]
type = CoupledFissionEigenKernel
variable = group3
group_number = 3
[]
[inscatter_group3]
type = InScatter
variable = group3
group_number = 3
[]
[diff_group4]
type = GroupDiffusion
variable = group4
group_number = 4
[]
[sigma_r_group4]
type = SigmaR
variable = group4
group_number = 4
[]
[fission_source_group4]
type = CoupledFissionEigenKernel
variable = group4
group_number = 4
[]
[inscatter_group4]
type = InScatter
variable = group4
group_number = 4
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_four_groups_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/mjm_spline.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = 'spline'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2017_annals_pub_msre_compare/2group_eigen.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
pre_concs = ''
account_delayed = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_fuel_'
interp_type = 'spline'
block = 'fuel'
temperature = 972
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_moder_'
interp_type = 'spline'
block = 'moder'
temperature = 972
[]
[]
[Executioner]
type = Eigenvalue
eigen_tol = 1e-6
normalization = bnorm
normal_factor = 1
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = 'nonlinear linear timestep_end'
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'nonlinear linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/single_msre_channel_velocity_heat_nts/unit-cell-nts-eigenvalue.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
width = 3.048
height = 1.016
length = 162.56
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = msre_squares.msh
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# outlet_boundaries = 'fuel_top'
# u_func = vel_x_func
# v_func = vel_y_func
# w_func = vel_z_func
# constant_velocity_values = false
# nt_exp_form = false
# family = MONOMIAL
# order = CONSTANT
# # jac_test = true
# []
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# variable = group1
# group_number = 1
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
# [./delayed_group1]
# type = DelayedNeutronSource
# variable = group1
# [../]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# [./time_group2]
# type = NtTimeDerivative
# variable = group2
# group_number = 2
# [../]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
# boundary = 'fuel_bottom moderator_bottoms'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
# boundary = 'fuel_bottom moderator_bottoms'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[]
[]
[ICs]
[group1]
type = FunctionIC
variable = group1
function = nt_ic
[]
[group2]
type = FunctionIC
variable = group2
function = nt_ic
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/rodMatchSerpentWorth/adjustAbsorb/rodded.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
eigen = true
[]
[Kernels]
[temp_source_fuel]
type = FissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
power = 7.5e6
tot_fissions = tot_fissions
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'tot_fissions'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = DirichletBC
variable = temp
value = ${diri_temp}
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[]
[cRod]
type = RoddedMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = 23.622
absorb_factor = 14.22 # how much more absorbing than usual in absorbing region?
[]
[rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'asm lu NONZERO 1e-10'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/transient-jac-test.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
# power = 200000
temperature = temp
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
block_id = '0'
block_name = 'fuel'
[]
[MeshModifiers]
[bounding_box]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = '1'
block_name = 'moder'
[]
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
group_number = 1
variable = group1
[]
[time_group2]
type = NtTimeDerivative
group_number = 2
variable = group2
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = TransientFissionHeatSource
variable = temp
[]
[]
# Delayed neutron precursors
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
# block = 'fuel'
inlet_boundary = 'bottom'
inlet_boundary_condition = 'NeumannBC'
inlet_bc_value = 1.1
outlet_boundary = 'top'
temperature = temp
incompressible_flow = false
transient_simulation = true
use_exp_form = false
jac_test = true
# initial_condition = -20
[]
# [AuxVariables]
# [./pre1_lin]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./Qf]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [../]
# [AuxKernels]
# [./pre1_lin]
# variable = pre1_lin
# density_log = pre1
# type = Density
# [../]
# [./Qf]
# type = FissionHeatSourceAux
# variable = Qf
# tot_fissions = tot_fissions
# [../]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
# []
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
[]
[]
[BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = 900
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./group1_vacuum]
# type = VacuumBC
# variable = group1
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
# [./group2_vacuum]
# type = VacuumBC
# variable = group2
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
[]
[Problem]
type = FEProblem
coord_type = RZ
kernel_coverage_check = false
[]
[Executioner]
type = Transient
end_time = 10
nl_abs_tol = 1e-11
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-snes_type'
petsc_options_value = 'test'
dtmin = 1e-7
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
nl_max_its = 50
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
# [Postprocessors]
# [./bnorm]
# type = ElmIntegTotFissNtsPostprocessor
# group_fluxes = 'group1 group2'
# execute_on = linear
# [../]
# [./tot_fissions]
# type = ElmIntegTotFissPostprocessor
# execute_on = linear
# [../]
# [./group1norm]
# type = ElementIntegralVariablePostprocessor
# variable = group1
# execute_on = linear
# [../]
# [./group2norm]
# type = ElementIntegralVariablePostprocessor
# variable = group2
# execute_on = linear
# [../]
# [./group1max]
# type = NodalExtremeValue
value_type = max
# variable = group1
# execute_on = timestep_end
# [../]
# [./group2max]
# type = NodalExtremeValue
value_type = max
# variable = group2
# execute_on = timestep_end
# [../]
# [./group1diff]
# type = ElementL2Diff
# variable = group1
# execute_on = 'linear timestep_end'
# use_displaced_mesh = false
# [../]
# []
[Outputs]
[out]
type = Exodus
execute_on = 'initial timestep_end'
[]
[dof_map]
type = DOFMap
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = RandomIC
variable = temp
min = 900
max = 1400
[]
[group1_ic]
type = RandomIC
variable = group1
min = 0
max = 600
[]
[group2_ic]
type = RandomIC
variable = group2
min = 0
max = 600
[]
# [./pre1_ic]
# type = ConstantIC
# variable = pre1
# value = -20
# [../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '1 1 .99'
[]
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(tests/coupled/coupled_eigenvalue.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Problem]
type = EigenProblem
bx_norm = fiss_neutrons
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
pre_blocks = 'fuel'
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
transient = false
eigen = true
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
l_max_its = 100
eigen_tol = 1e-7
free_power_iterations = 2
normalization = powernorm
normal_factor = 1e7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'coupled_eigenvalue'
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-should-be-crit-one-group.i)
global_temperature = 922
[GlobalParams]
num_groups = 1
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 180
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/homo_critical_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/mjm_monotone_cubic.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = 'monotone_cubic'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/mjm_none.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 900
sss2_input = true
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
base_file = 'xsdata-900K.json'
material_key = 'fuel'
interp_type = 'none'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]