- value1First value
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:First value
- value2Second value
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:Second value
DivisionPostprocessor
The DivisionPostprocessor 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 the difference between two postprocessors
Overview
Example Input File Syntax
Input Parameters
- 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_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
- 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
- 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
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
- (problems/LOFA/auto_diff_rho.i)
- (problems/011317_notebook_add_temperature_coupling/Input_serpent.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-scale-two-mat-inverted-file-msh.i)
- (problems/picard/tmp_nts.i)
- (problems/021417_MSRE_materials/CG_temp.i)
- (problems/picard/nts.i)
- (problems/060717_dimension_testing/test_case.i)
- (problems/rodded2D/rodded.i)
- (problems/picard/nts_no_pres.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form.i)
- (tests/coupled/auto_diff_rho_serpent.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
- (problems/020617_mod_heat_source_one_minus_beta_fission/Input.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_ss.i)
- (problems/012017_temperature_to_dg/Input.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive_PJFNK.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-b1-two-mat.i)
- (problems/033117_nts_temp_pre_parsed_mat/meigen.i)
- (problems/022317_test_critical_neutronics_only_reactor/criticial_test_nts_only_rad_57.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-unit-cell.i)
- (problems/022317_test_critical_neutronics_only_reactor/critical_test_nts_only.i)
- (problems/021417_MSRE_materials/mini_msre_cg_temp.i)
- (problems/011317_notebook_perfectly_bracketed_critical_buckling_height_from_newt/Input_serpent.i)
- (problems/060717_dimension_testing/one_group.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function_moderator_heating.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function.i)
- (problems/022317_test_critical_neutronics_only_reactor/small.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.i)
- (problems/LOSCA/HXFailure/auto_diff_rho.i)
- (problems/LOFA/steady/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_restart.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen.i)
- (problems/publication_level_cases/LOSCA/HXFail/auto_diff_rho.i)
- (problems/011717_precursors/Input.i)
- (problems/2017_annals_pub_msre_compare/auto_diff_rho.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen_b1_gcs.i)
- (problems/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
- (problems/transient-axi-nts-temp-delayed.i)
- (problems/011717_precursors/Input_restart_rdg_module.i)
- (problems/021417_MSRE_materials/Input.i)
- (problems/picard/auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_harsher_penalty.i)
- (problems/012017_temperature_to_dg/test_mat_props.i)
- (problems/2017_annals_pub_msre_compare/4group.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-PJFNK.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-channel-msre-dimensions.i)
- (problems/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
- (problems/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.i)
- (problems/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
- (problems/publication_level_cases/twod_control_rod_yank/rodded.i)
- (problems/2017_annals_pub_msre_compare/2group.i)
- (tests/coupled/auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-mat.i)
- (problems/021417_MSRE_materials/CG_no_temp.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-heat-and-nts.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_vacuum.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.i)
- (problems/011317_notebook_perfectly_bracketed_critical_buckling_height_from_newt/Input.i)
- (problems/publication_level_cases/dilute_absorber_controlled_by_peak_power_density/in.i)
- (problems/011317_notebook_add_temperature_coupling/Input.i)
- (problems/publication_level_cases/LOSCA/auto_diff_rho.i)
- (problems/072017_dg_temperature/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.i)
- (problems/020617_mod_heat_source_one_minus_beta_fission/Input_PJFNK.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin.i)
- (problems/LOSCA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.i)
(problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=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 = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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'
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
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=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 = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[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'
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'
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
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = 2d_split_mesh/auto_diff_rho_in.e
# file = auto_diff_rho_in.e
# nemesis = true
# parallel_type = DISTRIBUTED
[]
[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
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'NEWTON'
# solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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 = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
# exodus = true
nemesis = 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
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
base_height = 136
scale = .99
height = '${fparse base_height * scale}'
width = 145
offset = 2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
[file]
type = FileMeshGenerator
## Default to jac_test.msh for quicker syntax check tests.
## Switch to 3D mesh for actual simulations.
# file = '3d_msre_29x29_136.msh'
file = jac_test.msh
[]
[scale]
type = TransformGenerator
input = file
transform = SCALE
vector_value = '1 1 ${scale}'
[]
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[]
[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 = 0
w_def = ${flow_velocity}
nt_exp_form = false
loop_precursors = 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 = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
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 = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[nt_ic_func]
type = ParsedFunction
expression = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
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'
# 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 = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[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
# [../]
[group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[]
[group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[]
[]
(problems/LOFA/auto_diff_rho.i)
# take in steady state variable from the other core, and run a pump coastdown transient
# here, flow_velocity is only the initial flow velocity
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
tau = 5 # pump coastdown time constant
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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = 'steady/auto_diff_rho.e'
[../]
[Problem]
coord_type = RZ
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
u_func = nullFunc
v_func = coastDownFunc
w_func = nullFunc
init_from_file = true
[../]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group1
initial_from_file_timestep = LATEST [../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
order = FIRST
family = LAGRANGE
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = CtrlConservativeTemperatureAdvection
u_val = 0
v_val = ${flow_velocity} # this will be changed in ctrls block
w_val = 0
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_postpr_inlet]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
variable = temp
postprocessor = inlet_mean_temp
[../]
#[./temp_postpr_inlet]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = DirichletBC
# variable = temp
# value = 922
#[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = VelocityFunctionTemperatureOutflowBC
variable = temp
vel_x_func = nullFunc
vel_y_func = coastDownFunc
vel_z_func = nullFunc
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[./nullFunc]
type = ParsedFunction
value = '0'
[../]
[./coastDownFunc]
type = ParsedFunction
value = '${flow_velocity} * exp(-t / ${tau})'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[../]
[./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'
[../]
# fuel cp function
[./cp_fuel]
type = DerivativeParsedMaterial
f_name = cp
function = '1967 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
# fuel k function
[./k_fuel]
type = DerivativeParsedMaterial
f_name = k
function = '0.0553 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
interp_type = 'spline'
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'
[../]
# moder cp fcn
[./cp_moder]
type = DerivativeParsedMaterial
f_name = cp
function = '1760 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
# moder k fcn
[./k_moder]
type = DerivativeParsedMaterial
f_name = k
function = '.312 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_abs_tol = 3e-6
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 -snes_linesearch_minlambda'
petsc_options_value = 'lu' # NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.04
optimal_iterations = 5
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
execute_on = 'timestep_begin'
[../]
#multiapp
[./inlet_mean_temp]
type = Receiver
execute_on = 'initial timestep_begin'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Controls]
[./flowControl]
type = RealFunctionControl
parameter = '*/*/v_val'
function = coastDownFunc
execute_on = 'initial timestep_begin'
[../]
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = 'initial timestep_begin'
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/011317_notebook_add_temperature_coupling/Input_serpent.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e0
precursor_log_inlet_conc=-17
reactor_height=175 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=900
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
v_def = ${flow_velocity}
tau = 1
transient_simulation = true
incompressible_flow = false
# prec_scale = 1e5
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# inlet_boundary = 'fuel_bottom'
# inlet_boundary_condition = 'DirichletBC'
# inlet_bc_value = ${precursor_log_inlet_conc}
# outlet_boundary = 'fuel_top'
# initial_condition = ${precursor_log_inlet_conc}
# tau = 1
# use_source_stabilization = true
# offset = 24
# []
# [Kernels]
# # Temperature
# [./temp_flow_fuel]
# block = 'fuel'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# uz = ${flow_velocity}
# [../]
# [./temp_art_diff_fuel]
# block = 'fuel'
# type = ScalarAdvectionArtDiff
# variable = temp
# use_exp_form = false
# [../]
# [./temp_flow_moder]
# block = 'moder'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# [../]
# [./temp_source]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./temp_time_derivative]
# type = MatINSTemperatureTimeDerivative
# variable = temp
# rho = 'rho'
# cp = 'cp'
# [../]
# []
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/msr2g_Th_U_two_mat_homogenization_fuel_data_func_of_fuel_temp_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/msr2g_Th_U_two_mat_homogenization_mod_data_func_of_mod_temp_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
# [BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = ${inlet_temp}
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./temp_art_diff_fuel]
# boundary = 'fuel_top'
# type = ScalarAdvectionArtDiffNoBCBC
# variable = temp
# use_exp_form = false
# [../]
# []
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
# nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 10
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# # [./temp_ic]
# # type = ConstantIC
# # variable = temp
# # value = ${inlet_temp}
# # [../]
# [./temp_all_ic_func]
# type = FunctionIC
# variable = temp
# function = temp_ic_func
# [../]
# []
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
# [./temp_fuel]
# type = ElementAverageValue
# variable = temp
# block = 'fuel'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
# [./temp_moder]
# type = ElementAverageValue
# variable = temp
# block = 'moder'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
[]
(problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-scale-two-mat-inverted-file-msh.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=1022
diri_temp=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
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./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 = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[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'
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'
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
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/picard/tmp_nts.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 = temp
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[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
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
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 = '../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 3e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = PostprocessorDT
postprocessor = 'limit_k'
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./limit_k]
type = LimitK
growth_factor = 1.1
cutback_factor = 0.4
k_threshold = 1.25
k_postprocessor = 'multiplication'
[../]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = '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/021417_MSRE_materials/CG_temp.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[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 = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = false
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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}
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'fuel_bottoms moder_bottoms fuel_sides'
type = DirichletBC
variable = temp
value = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[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'
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'
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/picard/nts.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[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
[../]
[]
[AuxVariables]
[./temp]
[../]
[./pre1]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre2]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre3]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre4]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre5]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre6]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./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 = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_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_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
picard_max_its = 10
picard_rel_tol = 1e-7
picard_abs_tol = 1e-10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./temp_pres]
type = TransientMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = 'temp.i'
[../]
[]
[Transfers]
[./temp_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = temp
variable = temp
[../]
[./pre1_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre1
variable = pre1
[../]
[./pre2_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre2
variable = pre2
[../]
[./pre3_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre3
variable = pre3
[../]
[./pre4_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre4
variable = pre4
[../]
[./pre5_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre5
variable = pre5
[../]
[./pre6_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre6
variable = pre6
[../]
[./group1_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp_pres'
source_variable = group1
variable = group1
[../]
[./group2_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp_pres'
source_variable = group2
variable = group2
[../]
[]
(problems/060717_dimension_testing/test_case.i)
flow_velocity=1
nt_scale = ${/ 1E0 1.6E-13}
ini_temp=1
diri_temp=1
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = false
group_fluxes = 'group1'
temperature = temp
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
nx = 10
ny = 10
dim = 2
xmax = 2.42 # Bessel zero is 2.405
ymax = 3.149
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1
[../]
[./temp]
initial_condition = ${ini_temp}
# order = CONSTANT
# family = MONOMIAL
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
[../]
[]
# [DGKernels]
# [./temp]
# type = DGConvection
# variable = temp
# velocity = '0 ${flow_velocity} 0'
# [../]
# []
[BCs]
# [./vacuum_group1]
# type = VacuumConcBC
# boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
# variable = group1
# [../]
[./group1]
type = DirichletBC
value = 0
boundary = 'top right bottom'
variable = 'group1'
[../]
[./temp_diri_cg]
boundary = 'bottom right'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
# [./temp_advection_inlet]
# boundary = 'bottom'
# type = TemperatureInflowBC
# velocity = '0 ${flow_velocity} 0'
# variable = temp
# inlet_conc = 1
# [../]
[./temp_advection_outlet]
boundary = 'top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/dummy_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.1 1 1' # Robertson MSRE technical report @ 922 K
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
file_base = ''
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/rodded2D/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 = true
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[../]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[./rodPosition]
family = SCALAR
order = FIRST
initial_condition = 0.0
[../]
[]
[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
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[ScalarKernels]
[./tdRodPos]
type = ODETimeDerivative
variable = rodPosition
[../]
[./rodposForce]
type = ParsedODEKernel
function = 'rodPosition - 100'
variable = rodPosition
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[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'
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 = rodPosition
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 = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 0.1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'timestep_end final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/picard/nts_no_pres.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 = temp
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'
[../]
[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
[../]
[]
[AuxVariables]
[./temp]
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./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 = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_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_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
picard_max_its = 1
picard_rel_tol = 1e-6
picard_abs_tol = 1e-4
nl_rel_tol = 1e-6
nl_abs_tol = 1e-4
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 10
l_max_its = 100
dtmin = 1e-3
[./TimeStepper]
type = PostprocessorDT
postprocessor = 'limit_k'
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus csv'
[../]
[./limit_k]
type = LimitK
growth_factor = 1.1
cutback_factor = 0.4
k_threshold = 1.1
k_postprocessor = 'multiplication'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
csv = true
execute_on = 'final'
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./temp]
type = TransientMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = 'temp_no_pres.i'
[../]
[]
[Transfers]
[./temp_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp'
source_variable = temp
variable = temp
[../]
[./group1_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp'
source_variable = group1
variable = group1
[../]
[./group2_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp'
source_variable = group2
variable = group2
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = LinLogPenaltyDirichletBC
value = 0
penalty = 1
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
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 -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# 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
[]
[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'
[../]
[]
(tests/coupled/auto_diff_rho_serpent.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
ini_temp = 922
diri_temp = 922
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[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
# jac_test = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[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 = 'fuel'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[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 = 'fuel'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[]
[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
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
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'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 80
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
steady_state_detection = true
steady_state_tolerance = 1e-10
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 5
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'auto_diff_rho_serpent'
execute_on = '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/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = 3d_ss_out.e
[]
[MeshModifiers]
# [./scale]
# type = Transform
# transform = SCALE
# vector_value = '1 1 ${scale}'
# [../]
[]
[Problem]
[]
[Variables]
[./group1]
scaling = 1e4
initial_from_file_var = group1
initial_from_file_timestep = LATEST
[../]
[./group2]
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Precursors]
[./primary_fuel]
var_name_base = pre
block = 'fuel blocked_fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
init_from_file = true
kernel_block = 'fuel'
[../]
[./blocked_fuel]
var_name_base = pre
kernel_block = 'blocked_fuel'
outlet_boundaries = 'blocked_fuel_top'
u_def = 0
v_def = 0
w_def = 0
nt_exp_form = false
create_vars = false
object_suffix = blocked
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel blocked_fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel blocked_fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel blocked_fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel blocked_fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group2
[../]
[./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 = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel blocked_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 blocked_fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
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'
# 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 = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel blocked_fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
file_base = temp
[]
[Debug]
show_var_residual_norms = true
[]
(problems/020617_mod_heat_source_one_minus_beta_fission/Input.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'inlet_boundary_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottom'
type = TemperatureInflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
inlet_conc = 824
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 20
l_max_its = 10
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./forcing_func]
type = ParsedFunction
value = '1000'
[../]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./inlet_boundary_temp_func]
type = ParsedFunction
value = '${inlet_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[]
(problems/publication_level_cases/transient_single_channel_blockage/3d_ss.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = msre_vol_frac_29x29_h_136.msh
[]
[MeshModifiers]
[./scale]
type = Transform
transform = SCALE
vector_value = '1 1 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
scaling = 1e4
initial_condition = 1
[../]
[./group2]
scaling = 1e4
initial_condition = 1
[../]
[./temp]
scaling = 1e-4
initial_condition = ${ini_temp}
[../]
[]
[Precursors]
[./primary_fuel]
var_name_base = pre
block = 'fuel blocked_fuel'
outlet_boundaries = 'fuel_tops blocked_fuel_top'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
kernel_block = 'fuel blocked_fuel'
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel blocked_fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel blocked_fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel blocked_fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel blocked_fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel blocked_fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides blocked_fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops blocked_fuel_top'
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 = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel blocked_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 blocked_fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
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'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel blocked_fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/012017_temperature_to_dg/Input.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'inlet_boundary_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottom'
type = TemperatureInflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
inlet_conc = 824
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 20
l_max_its = 10
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./forcing_func]
type = ParsedFunction
value = '1000'
[../]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./inlet_boundary_temp_func]
type = ParsedFunction
value = '${inlet_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive_PJFNK.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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# uniform_refine = 1
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
# off_diag_row = 'temp pre1 pre2 pre3 pre4 pre5 pre6 temp pre1 pre2 pre3 pre4 pre5 pre6'
# off_diag_column = 'group1 group1 group1 group1 group1 group1 group1 group2 group2 group2 group2 group2 group2 group2'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[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
# [../]
# []
# [Adaptivity]
# marker = errorfrac_temp
# max_h_level = 1
# [./Indicators]
# [./error_temp]
# type = GradientJumpIndicator
# variable = temp
# outputs = none
# [../]
# [../]
# [./Markers]
# [./errorfrac_temp]
# type = ErrorFractionMarker
# refine = 0.8
# coarsen = 0.1
# indicator = error_temp
# outputs = none
# [../]
# [../]
# []
(problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-b1-two-mat.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
diri_temp=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
initial_condition = 1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
[../]
[./temp]
initial_condition = ${diri_temp}
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'fuel_bottoms moder_bottoms fuel_sides'
type = DirichletBC
variable = temp
value = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_moder_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[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'
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'
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
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/033117_nts_temp_pre_parsed_mat/meigen.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.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]
# order = FIRST
# family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
# [../]
# [./group2]
# order = FIRST
# family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
# [../]
# [./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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[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'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
#petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu ' #1 preonly 1e-3'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
#[Postprocessors]
# [./group1_current]
# type = IntegralNewVariablePostprocessor
# variable = group1
# outputs = 'console csv'
# [../]
# [./group1_old]
# type = IntegralOldVariablePostprocessor
# variable = group1
# outputs = 'console csv'
# [../]
# [./multiplication]
# type = DivisionPostprocessor
# value1 = group1_current
# value2 = group1_old
# outputs = 'console csv'
# [../]
# [./temp_fuel]
# type = ElementAverageValue
# variable = temp
# block = 'fuel'
# outputs = 'csv console'
# [../]
# [./temp_moder]
# type = ElementAverageValue
# variable = temp
# block = 'moder'
# outputs = 'csv console'
# [../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'console'
# # block = 'fuel'
# # [../]
#[]
[Outputs]
perf_graph = true
print_linear_residuals = true
# csv = true
[out]
type = Exodus
execute_on = '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/022317_test_critical_neutronics_only_reactor/criticial_test_nts_only_rad_57.i)
reactor_height=162.56
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder_rad_57.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[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 = 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'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[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
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[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/single_msre_channel_velocity_heat_nts/heat-nts-single-unit-cell.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 = temp
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
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./vel_x]
block = 'fuel'
[../]
[./vel_y]
block = 'fuel'
[../]
[./vel_z]
block = 'fuel'
[../]
[./p]
block = 'fuel'
[../]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
# [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 = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_fuel_transport]
type = INSTemperature
u = vel_x
v = vel_y
w = vel_z
variable = temp
block = 'fuel'
[../]
[./temp_mod_transport]
type = MatDiffusion
diffusivity = 'k'
variable = temp
block = 'moderator'
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moderator'
average_fission_heat = 'average_fission_heat'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moderator'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom'
variable = temp
value = 900
type = DirichletBC
[../]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
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
peak_power_density = peak_power_density
controller_gain = 1e-4
[../]
[./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'
peak_power_density = peak_power_density
controller_gain = 0
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = PJFNK
ksp_norm = none
[../]
[]
# [Executioner]
# # type = Steady
# type = Transient
# dt = 1
# num_steps = 1
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# # line_search = none
# nl_rel_tol = 1e-8
# nl_max_its = 50
# l_max_its = 300
# []
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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 = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[./nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[../]
[./temp_ic]
type = ParsedFunction
value = '900 + 100 / ${length} * z'
[../]
[]
[ICs]
[./temp]
type = FunctionIC
variable = temp
function = temp_ic
[../]
[./group1]
type = FunctionIC
variable = group1
function = nt_ic
[../]
[./group2]
type = FunctionIC
variable = group2
function = nt_ic
[../]
[]
[MultiApps]
[./sub]
type = FullSolveMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = solution_aux_exodus.i
execute_on = 'initial'
[../]
[]
[Transfers]
[./vel_x]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_x
variable = vel_x
execute_on = 'initial'
[../]
[./vel_y]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_y
variable = vel_y
execute_on = 'initial'
[../]
[./vel_z]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_z
variable = vel_z
execute_on = 'initial'
[../]
[./p]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = p
variable = p
execute_on = 'initial'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moderator'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/critical_test_nts_only.i)
reactor_height=162.56
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[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 = 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'
[../]
[]
(problems/021417_MSRE_materials/mini_msre_cg_temp.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[Mesh]
file = 'mini_msre_cuboid.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 = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = false
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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}
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'fuel_bottoms moder_bottoms fuel_sides'
type = DirichletBC
variable = temp
value = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[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'
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'
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/011317_notebook_perfectly_bracketed_critical_buckling_height_from_newt/Input_serpent.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e0
precursor_log_inlet_conc=-17
reactor_height=175 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=900
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
v_def = ${flow_velocity}
tau = 1
transient_simulation = true
incompressible_flow = false
# prec_scale = 1e5
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# inlet_boundary = 'fuel_bottom'
# inlet_boundary_condition = 'DirichletBC'
# inlet_bc_value = ${precursor_log_inlet_conc}
# outlet_boundary = 'fuel_top'
# initial_condition = ${precursor_log_inlet_conc}
# tau = 1
# use_source_stabilization = true
# offset = 24
# []
# [Kernels]
# # Temperature
# [./temp_flow_fuel]
# block = 'fuel'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# uz = ${flow_velocity}
# [../]
# [./temp_art_diff_fuel]
# block = 'fuel'
# type = ScalarAdvectionArtDiff
# variable = temp
# use_exp_form = false
# [../]
# [./temp_flow_moder]
# block = 'moder'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# [../]
# [./temp_source]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./temp_time_derivative]
# type = MatINSTemperatureTimeDerivative
# variable = temp
# rho = 'rho'
# cp = 'cp'
# [../]
# []
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/msr2g_Th_U_two_mat_homogenization_fuel_data_func_of_fuel_temp_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/msr2g_Th_U_two_mat_homogenization_mod_data_func_of_mod_temp_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
# [BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = ${inlet_temp}
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./temp_art_diff_fuel]
# boundary = 'fuel_top'
# type = ScalarAdvectionArtDiffNoBCBC
# variable = temp
# use_exp_form = false
# [../]
# []
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
# nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 10
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# # [./temp_ic]
# # type = ConstantIC
# # variable = temp
# # value = ${inlet_temp}
# # [../]
# [./temp_all_ic_func]
# type = FunctionIC
# variable = temp
# function = temp_ic_func
# [../]
# []
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
# [./temp_fuel]
# type = ElementAverageValue
# variable = temp
# block = 'fuel'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
# [./temp_moder]
# type = ElementAverageValue
# variable = temp
# block = 'moder'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
[]
(problems/060717_dimension_testing/one_group.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
# coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-6
[../]
[]
[Precursors]
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
scaling = 1
# 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 = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
# [./temp_diffusion_outlet]
# boundary = 'fuel_tops'
# type = DiffusiveFluxBC
# diffusivity = 'k'
# variable = temp
# [../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[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
[../]
[./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 = '../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'
[../]
[./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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
file_base = ''
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[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/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function_moderator_heating.i)
# flow_velocity=21.7 # cm/s. See MSRE-properties.ods
fuel_velocity_max_inlet = 43.4
fuel_sq_rad = 33.28
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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = VelocityFunctionTemperatureAdvection
vel_x_func = vel_x_func
vel_y_func = vel_y_func
vel_z_func = vel_z_func
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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 = VelocityFunctionTemperatureOutflowBC
variable = temp
vel_x_func = vel_x_func
vel_y_func = vel_y_func
vel_z_func = vel_z_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[vel_x_func]
type = ParsedFunction
expression = '0'
[]
[vel_y_func]
type = ParsedFunction
expression = '0'
[]
[vel_z_func]
type = ParsedFunction
expression = '${fuel_velocity_max_inlet} * cos(pi * x / (2 * ${fuel_sq_rad})) * cos(pi * y / (2 * ${fuel_sq_rad}))'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-4
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
peak_power_density = peak_power_density
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 100000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
line_search = none
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[]
[peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[]
[]
[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
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function.i)
# flow_velocity=21.7 # cm/s. See MSRE-properties.ods
fuel_velocity_max_inlet = 43.4
fuel_sq_rad = 33.28
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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = VelocityFunctionTemperatureAdvection
vel_x_func = vel_x_func
vel_y_func = vel_y_func
vel_z_func = vel_z_func
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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 = VelocityFunctionTemperatureOutflowBC
variable = temp
vel_x_func = vel_x_func
vel_y_func = vel_y_func
vel_z_func = vel_z_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[vel_x_func]
type = ParsedFunction
expression = '0'
[]
[vel_y_func]
type = ParsedFunction
expression = '0'
[]
[vel_z_func]
type = ParsedFunction
expression = '${fuel_velocity_max_inlet} * cos(pi * x / (2 * ${fuel_sq_rad})) * cos(pi * y / (2 * ${fuel_sq_rad}))'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[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
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/small.i)
reactor_height=10
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
# group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder_small.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[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 = 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'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# uniform_refine = 1
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 100000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
# off_diag_row = 'temp pre1 pre2 pre3 pre4 pre5 pre6 temp pre1 pre2 pre3 pre4 pre5 pre6'
# off_diag_column = 'group1 group1 group1 group1 group1 group1 group1 group2 group2 group2 group2 group2 group2 group2'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[exodus]
type = Exodus
file_base = ''
[]
[]
[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
# [../]
# []
# [Adaptivity]
# marker = errorfrac_temp
# max_h_level = 1
# [./Indicators]
# [./error_temp]
# type = GradientJumpIndicator
# variable = temp
# outputs = none
# [../]
# [../]
# [./Markers]
# [./errorfrac_temp]
# type = ErrorFractionMarker
# refine = 0.8
# coarsen = 0.1
# indicator = error_temp
# outputs = none
# [../]
# [../]
# []
(problems/LOSCA/HXFailure/auto_diff_rho.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 = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '../auto_diff_rho.e'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_from_file_var = group1
initial_from_file_timestep = LATEST
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Precursors]
[./core]
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
init_from_file = true
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'fuel_bottoms'
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
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 = '../../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-pc_type'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/LOFA/steady/auto_diff_rho.i)
# walk the reactor into steady state with an attached primary loop
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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '../2d_lattice_structured.msh'
[../]
[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
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[PrecursorKernel]
[./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
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_postpr_inlet]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
variable = temp
postprocessor = inlet_mean_temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
#[Materials]
# [./fuel]
# type = GenericMoltresMaterial
# property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
# interp_type = 'spline'
# block = 'fuel'
# [../]
# [./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'
# [../]
# # fuel cp function
# [./cp_fuel]
# type = DerivativeParsedMaterial
# f_name = cp
# function = '1967 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'fuel'
# [../]
# # fuel k function
# [./k_fuel]
# type = DerivativeParsedMaterial
# f_name = k
# function = '0.0553 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'fuel'
# [../]
# [./moder]
# type = GenericMoltresMaterial
# property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
# interp_type = 'spline'
# 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'
# [../]
# # moder cp fcn
# [./cp_moder]
# type = DerivativeParsedMaterial
# f_name = cp
# function = '1760 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'moder'
# [../]
# # moder k fcn
# [./k_moder]
# type = DerivativeParsedMaterial
# f_name = k
# function = '.312 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'moder'
# [../]
#[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
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 = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
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 -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
dtmax = 100
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
#multiapp
[./inlet_mean_temp]
type = Receiver
execute_on = 'timestep_begin'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = 'initial timestep_begin'
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = average
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_restart.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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_auto_diff_rho_out.e'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_from_file_var = group1
initial_from_file_timestep = LATEST
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_from_file_var = group2
initial_from_file_timestep = LATEST
scaling = 1e4
[]
[temp]
initial_from_file_var = temp
initial_from_file_timestep = LATEST
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
init_from_file = 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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[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/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/publication_level_cases/LOSCA/HXFail/auto_diff_rho.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 = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '../auto_diff_rho.e'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_from_file_var = group1
initial_from_file_timestep = LATEST
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Precursors]
[./core]
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
init_from_file = 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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../../property_file_dir/newt_msre_fuel_'
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 = '../../../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-pc_type'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/011717_precursors/Input.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
precursor_log_inlet_conc=-17
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
v_def = ${flow_velocity}
tau = 1
transient_simulation = true
incompressible_flow = false
# prec_scale = 1e5
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
[]
[Precursors]
var_name_base = pre
block = 'fuel'
inlet_boundary = 'fuel_bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_bc_value = ${precursor_log_inlet_conc}
outlet_boundary = 'fuel_top'
initial_condition = ${precursor_log_inlet_conc}
tau = 1
use_source_stabilization = true
offset = 24
[]
[Kernels]
# Temperature
[./temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[../]
[./temp_art_diff_fuel]
block = 'fuel'
type = ScalarAdvectionArtDiff
variable = temp
use_exp_form = false
[../]
[./temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[../]
[./temp_source]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
rho = 'rho'
cp = 'cp'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = ${inlet_temp}
[../]
[./temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[../]
[./temp_art_diff_fuel]
boundary = 'fuel_top'
type = ScalarAdvectionArtDiffNoBCBC
variable = temp
use_exp_form = false
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 10
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.05
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = ${inlet_temp}
# [../]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
(problems/2017_annals_pub_msre_compare/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 70.1675
H = 162.56
[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 = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[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
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[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 = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(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/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
[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 = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[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
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
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
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[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
peak_power_density = peak_power_density
controller_gain = 1e-5
[]
[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 = 'moder'
controller_gain = 0
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
# solve_type = 'NEWTON'
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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'
line_search = none
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[]
[average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[exodus]
type = Exodus
[]
[]
[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/transient-axi-nts-temp-delayed.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
nt_scale=1e18
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'axisymm_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
group_number = 1
variable = group1
[../]
[./time_group2]
type = NtTimeDerivative
group_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 = 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_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
nt_scale = ${nt_scale}
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
rho = 'rho'
cp = 'cp'
[../]
[]
# Delayed neutron precursors
# [Precursors]
# var_name_base = pre
# v_def = ${flow_velocity}
# block = 'fuel'
# inlet_boundary = 'fuel_bottom'
# inlet_boundary_condition = 'DirichletBC'
# inlet_bc_value = -20
# outlet_boundary = 'fuel_top'
# temperature = temp
# incompressible_flow = false
# transient_simulation = true
# use_exp_form = true
# initial_condition = -20
# []
# [AuxVariables]
# []
# [AuxKernels]
# []
[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
# prop_values = '.123 3.327e-3 1357'
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
# prop_values = '3.12 1.843e-3 1760'
temperature = temp
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = ${inlet_temp}
[../]
[./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 = Transient
end_time = 10000
nl_abs_tol = 4e-9
trans_ss_check = true
ss_check_tol = 4e-9
nl_rel_tol = 1e-6
# 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 -snes_linesearch_mindlambda'
# petsc_options_value = 'asm lu preonly 2 31 1e-3'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 superlu_dist'
nl_max_its = 20
l_max_its = 10
dtmin = 1e-6
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-6
growth_factor = 1.2
optimal_iterations = 10
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_ic]
type = ConstantIC
variable = temp
value = ${inlet_temp}
[../]
[./group1_ic]
type = ConstantIC
variable = group1
value = 1
[../]
[./group2_ic]
type = ConstantIC
variable = group2
value = 1
[../]
[]
[Postprocessors]
[./group1_current]
type = ElementIntegralVariablePostprocessor
variable = group1
outputs = 'csv console'
# outputs = 'csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
# outputs = 'csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
# outputs = 'csv'
[../]
[]
(problems/011717_precursors/Input_restart_rdg_module.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
precursor_log_inlet_conc=-25
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
tau = 1
transient_simulation = true
incompressible_flow = false
[../]
[Mesh]
file = 'Input_out.e'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
init_nts_from_file = true
init_temperature_from_file = true
[]
[Precursors]
var_name_base = pre
block = 'fuel'
advection_boundaries = 'fuel_top fuel_bottom'
family = MONOMIAL
order = CONSTANT
[]
[Kernels]
# Temperature
[./temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
uz = ${flow_velocity}
[../]
[./temp_art_diff_fuel]
block = 'fuel'
type = ScalarAdvectionArtDiff
variable = temp
use_exp_form = false
[../]
[./temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
[../]
[./temp_source]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = ${inlet_temp}
[../]
[./temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[../]
[./temp_art_diff_fuel]
boundary = 'fuel_top'
type = ScalarAdvectionArtDiffNoBCBC
variable = temp
use_exp_form = false
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 20
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.05
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_all_ic_func]
# type = FunctionIC
# variable = temp
# function = temp_ic_func
# [../]
# []
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
(problems/021417_MSRE_materials/Input.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[Mesh]
# file = 'msre_22x22_correct_vol_fraction.msh'
file = msre_cuboid_3x3.msh
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundary'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[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}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'temp_diri_bnd'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'diri_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'temp_inflow_bnd'
type = TemperatureInflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
inlet_conc = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'temp_outflow_bnd'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[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'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type' # -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 preonly' # 31'
nl_max_its = 20
l_max_its = 10
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/picard/auto_diff_rho.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[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
[../]
[./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
[../]
[]
[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 = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./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 = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
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 = '../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = '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/022317_test_critical_neutronics_only_reactor/analytic_exp_form_harsher_penalty.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = LinLogPenaltyDirichletBC
value = 0
penalty = 100
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
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 -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# 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
[]
[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'
[../]
[]
(problems/012017_temperature_to_dg/test_mat_props.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
[../]
[Mesh]
file = 'one_element.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./source]
# type = UserForcingFunction
# variable = temp
# function = 'forcing_func'
# block = 'fuel'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'inlet_boundary_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottom'
type = TemperatureInflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
inlet_conc = 824
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 1e-3
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 20
l_max_its = 10
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./forcing_func]
type = ParsedFunction
value = '1000'
[../]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./inlet_boundary_temp_func]
type = ParsedFunction
value = '${inlet_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
(problems/2017_annals_pub_msre_compare/4group.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 73
H = 162.56
[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 = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[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
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[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 = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-PJFNK.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=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 = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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'
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
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/single_msre_channel_velocity_heat_nts/heat-nts-single-channel-msre-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 = temp
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
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./vel_x]
block = 'fuel'
[../]
[./vel_y]
block = 'fuel'
[../]
[./vel_z]
block = 'fuel'
[../]
[./p]
block = 'fuel'
[../]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
# [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 = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_fuel_transport]
type = INSTemperature
u = vel_x
v = vel_y
w = vel_z
variable = temp
block = 'fuel'
[../]
[./temp_mod_transport]
type = MatDiffusion
diffusivity = 'k'
variable = temp
block = 'moderator'
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moderator'
average_fission_heat = 'average_fission_heat'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moderator'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom'
variable = temp
value = 900
type = DirichletBC
[../]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
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
peak_power_density = peak_power_density
controller_gain = 1e-4
[../]
[./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'
peak_power_density = peak_power_density
controller_gain = 0
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = PJFNK
ksp_norm = none
[../]
[]
# [Executioner]
# # type = Steady
# type = Transient
# dt = 1
# num_steps = 1
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# # line_search = none
# nl_rel_tol = 1e-8
# nl_max_its = 50
# l_max_its = 300
# []
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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 = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[./nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[../]
[./temp_ic]
type = ParsedFunction
value = '900 + 100 / ${length} * z'
[../]
[]
[ICs]
[./temp]
type = FunctionIC
variable = temp
function = temp_ic
[../]
[./group1]
type = FunctionIC
variable = group1
function = nt_ic
[../]
[./group2]
type = FunctionIC
variable = group2
function = nt_ic
[../]
[]
[MultiApps]
[./sub]
type = FullSolveMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = solution_aux_exodus.i
execute_on = 'initial'
[../]
[]
[Transfers]
[./vel_x]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_x
variable = vel_x
execute_on = 'initial'
[../]
[./vel_y]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_y
variable = vel_y
execute_on = 'initial'
[../]
[./vel_z]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_z
variable = vel_z
execute_on = 'initial'
[../]
[./p]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = p
variable = p
execute_on = 'initial'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moderator'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[../]
[]
(problems/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
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 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./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 = 0
w_def = ${flow_velocity}
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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./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)'
[../]
[./nt_ic_func]
type = ParsedFunction
value = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
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 = GraphiteTwoGrpXSFunctionMaterial
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
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'
# 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 = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[./out]
type = Exodus
[../]
[]
[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
# [../]
[./group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[../]
[./group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[../]
[]
(problems/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[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
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[AuxVariables]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
[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
[../]
[]
[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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'fuel_bottoms'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -50
variable = temp
[../]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[../]
[./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 = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[../]
[./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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[../]
[]
[VectorPostprocessors]
[./outlet_temps]
type = LineValueSampler
start_point = '0 153 0'
end_point = '72.5 153 0'
num_points = 1000
variable = temp
sort_by = 'x'
outputs = 'csv'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[./csv]
type = CSV
execute_on = '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/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
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 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./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 = 0
w_def = ${flow_velocity}
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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./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)'
[../]
[./nt_ic_func]
type = ParsedFunction
value = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
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 = GraphiteTwoGrpXSFunctionMaterial
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
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'
# 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 = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[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
# [../]
[./group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[../]
[./group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[../]
[]
(problems/publication_level_cases/twod_control_rod_yank/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 = true
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[../]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[./rodPosition]
family = SCALAR
order = FIRST
initial_condition = 0.0
[../]
[]
[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
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[ScalarKernels]
[./tdRodPos]
type = ODETimeDerivative
variable = rodPosition
[../]
[./rodposForce]
type = ParsedODEKernel
function = 'rodPosition - 100'
variable = rodPosition
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[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'
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 = rodPosition
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 = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 0.1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'timestep_end final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2017_annals_pub_msre_compare/2group.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 73
H = 162.56
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[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
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[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 = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_moder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/coupled/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
ini_temp = 922
diri_temp = 922
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[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
# jac_test = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[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 = 'fuel'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[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 = 'fuel'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[]
[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
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 80
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
steady_state_detection = true
steady_state_tolerance = 1e-10
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 5
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = '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/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-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_23x23.msh'
file = 'msre_cuboid_3x3.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
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 = CoupledFissionKernel
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 = Transient
num_steps = 100
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'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
outputs = 'console csv'
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
outputs = 'console csv'
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
outputs = 'console csv'
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
outputs = 'console csv'
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
[]
[csv]
type = CSV
[]
[]
[Debug]
show_var_residual_norms = true
[]
(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/single_msre_channel_velocity_heat_nts/unit-cell-heat-and-nts.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 = temp
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 = 1e2
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e2
[../]
[./temp]
order = FIRST
family = LAGRANGE
scaling = 1e-4
# initial_condition = 900
[../]
[]
[AuxVariables]
# [./vel_x]
# block = 'fuel'
# [../]
# [./vel_y]
# block = 'fuel'
# [../]
# [./vel_z]
# block = 'fuel'
# [../]
# [./p]
# block = 'fuel'
# [../]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
# [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 = CoupledFissionKernel
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 = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
# [./temp_fuel_transport]
# type = INSTemperature
# u = vel_x
# v = vel_y
# w = vel_z
# variable = temp
# block = 'fuel'
# [../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 21.73'
variable = temp
block = 'fuel'
[../]
[./temp_mod_transport]
type = MatDiffusion
diffusivity = 'k'
variable = temp
# block = 'moderator'
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moderator'
average_fission_heat = 'average_fission_heat'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moderator'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottoms'
variable = temp
value = 900
type = DirichletBC
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 21.73'
[../]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
variable = group2
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'linear'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-2
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'linear'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
peak_power_density = peak_power_density
controller_gain = 0
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
ksp_norm = 'none'
[../]
[]
# [Executioner]
# # type = Steady
# type = Transient
# dt = 1
# num_steps = 1
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# # line_search = none
# nl_rel_tol = 1e-8
# nl_max_its = 50
# l_max_its = 300
# []
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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 = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-5
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[./nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[../]
[./temp_ic]
type = ParsedFunction
value = '900 + 100 / ${length} * z'
[../]
[]
[ICs]
[./temp]
type = FunctionIC
variable = temp
function = temp_ic
[../]
[./group1]
type = FunctionIC
variable = group1
function = nt_ic
[../]
[./group2]
type = FunctionIC
variable = group2
function = nt_ic
[../]
[]
# [MultiApps]
# [./sub]
# type = FullSolveMultiApp
# app_type = MoltresApp
# positions = '0 0 0'
# input_files = solution_aux_exodus.i
# execute_on = 'initial'
# [../]
# []
# [Transfers]
# [./vel_x]
# type = MultiAppNearestNodeTransfer
# direction = from_multiapp
# multi_app = sub
# source_variable = vel_x
# variable = vel_x
# execute_on = 'initial'
# [../]
# [./vel_y]
# type = MultiAppNearestNodeTransfer
# direction = from_multiapp
# multi_app = sub
# source_variable = vel_y
# variable = vel_y
# execute_on = 'initial'
# [../]
# [./vel_z]
# type = MultiAppNearestNodeTransfer
# direction = from_multiapp
# multi_app = sub
# source_variable = vel_z
# variable = vel_z
# execute_on = 'initial'
# [../]
# [./p]
# type = MultiAppNearestNodeTransfer
# direction = from_multiapp
# multi_app = sub
# source_variable = p
# variable = p
# execute_on = 'initial'
# [../]
# []
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
# outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
# outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moderator'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = false
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = DirichletBC
value = 0
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
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
[]
[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'
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_vacuum.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'left right'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
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 -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# 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
[]
[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'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = 2d_split_mesh/auto_diff_rho_in.e
# file = auto_diff_rho_in.e
# nemesis = true
# parallel_type = DISTRIBUTED
[]
[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
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[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
[]
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-4
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
peak_power_density = peak_power_density
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear'
outputs = 'csv console'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
# nemesis = 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
# [../]
# []
(problems/011317_notebook_perfectly_bracketed_critical_buckling_height_from_newt/Input.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e0
precursor_log_inlet_conc=-17
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=950
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
v_def = ${flow_velocity}
tau = 1
transient_simulation = true
incompressible_flow = false
# prec_scale = 1e5
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# inlet_boundary = 'fuel_bottom'
# inlet_boundary_condition = 'DirichletBC'
# inlet_bc_value = ${precursor_log_inlet_conc}
# outlet_boundary = 'fuel_top'
# initial_condition = ${precursor_log_inlet_conc}
# tau = 1
# use_source_stabilization = true
# offset = 24
# []
# [Kernels]
# # Temperature
# [./temp_flow_fuel]
# block = 'fuel'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# uz = ${flow_velocity}
# [../]
# [./temp_art_diff_fuel]
# block = 'fuel'
# type = ScalarAdvectionArtDiff
# variable = temp
# use_exp_form = false
# [../]
# [./temp_flow_moder]
# block = 'moder'
# type = MatINSTemperatureRZ
# variable = temp
# rho = 'rho'
# k = 'k'
# cp = 'cp'
# [../]
# [./temp_source]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./temp_time_derivative]
# type = MatINSTemperatureTimeDerivative
# variable = temp
# rho = 'rho'
# cp = 'cp'
# [../]
# []
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
# [BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = ${inlet_temp}
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./temp_art_diff_fuel]
# boundary = 'fuel_top'
# type = ScalarAdvectionArtDiffNoBCBC
# variable = temp
# use_exp_form = false
# [../]
# []
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
# nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 10
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# # [./temp_ic]
# # type = ConstantIC
# # variable = temp
# # value = ${inlet_temp}
# # [../]
# [./temp_all_ic_func]
# type = FunctionIC
# variable = temp
# function = temp_ic_func
# [../]
# []
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
# [./temp_fuel]
# type = ElementAverageValue
# variable = temp
# block = 'fuel'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
# [./temp_moder]
# type = ElementAverageValue
# variable = temp
# block = 'moder'
# # execute_on = 'linear nonlinear'
# outputs = 'csv console'
# [../]
[]
(problems/publication_level_cases/dilute_absorber_controlled_by_peak_power_density/in.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = 2d_split_mesh/auto_diff_rho_in.e
# file = auto_diff_rho_in.e
# nemesis = true
# parallel_type = DISTRIBUTED
[../]
[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
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[AuxVariables]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
[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
[../]
[]
[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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-4
[../]
[./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 = '../../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
peak_power_density = peak_power_density
controller_gain = 0
[../]
[./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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[./peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
# nemesis = 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
# [../]
# []
(problems/011317_notebook_add_temperature_coupling/Input.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
precursor_log_inlet_conc=-17
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
v_def = ${flow_velocity}
tau = 1
transient_simulation = true
incompressible_flow = false
# prec_scale = 1e5
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# inlet_boundary = 'fuel_bottom'
# inlet_boundary_condition = 'DirichletBC'
# inlet_bc_value = ${precursor_log_inlet_conc}
# outlet_boundary = 'fuel_top'
# initial_condition = ${precursor_log_inlet_conc}
# tau = 1
# use_source_stabilization = true
# offset = 24
# []
[Kernels]
# Temperature
[./temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[../]
[./temp_art_diff_fuel]
block = 'fuel'
type = ScalarAdvectionArtDiff
variable = temp
use_exp_form = false
[../]
[./temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[../]
[./temp_source]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
rho = 'rho'
cp = 'cp'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = ${inlet_temp}
[../]
[./temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[../]
[./temp_art_diff_fuel]
boundary = 'fuel_top'
type = ScalarAdvectionArtDiffNoBCBC
variable = temp
use_exp_form = false
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
# line_search = none
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
# trans_ss_check = true
# ss_check_tol = 8e-9
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 -snes_linesearch_minlambda -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3 mumps'
nl_max_its = 10
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.05
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[./dof_map]
type = DOFMap
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = ${inlet_temp}
# [../]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
# execute_on = 'linear nonlinear'
outputs = 'csv console'
[../]
[]
(problems/publication_level_cases/LOSCA/auto_diff_rho.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 = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_condition = 1
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_condition = 1
[../]
[./temp]
scaling = 1e-4
initial_condition = 930
[../]
[]
[Precursors]
[./core]
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
[../]
[]
[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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
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 = '../../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/072017_dg_temperature/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
sigma_val=.6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[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
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
order = FIRST
family = MONOMIAL
[../]
[]
[AuxVariables]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
[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
[../]
[]
[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 = CoupledFissionKernel
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
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[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
[../]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottoms'
type = DGDiffusionPostprocessorDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diffusivity = 'k'
postprocessor = coreEndTemp
offset = -50
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottoms'
type = PostprocessorTemperatureInflowBC
variable = temp
uu = 0
vv = ${flow_velocity}
ww = 0
postprocessor = coreEndTemp
offset = -50
[../]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[../]
[./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 = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[../]
[./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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[../]
[]
[VectorPostprocessors]
[./outlet_temps]
type = LineValueSampler
start_point = '0 153 0'
end_point = '72.5 153 0'
num_points = 1000
variable = temp
sort_by = 'x'
outputs = 'csv'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./csv]
type = CSV
execute_on = 'final'
[../]
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
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.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 = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '1 1 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
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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 = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[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/020617_mod_heat_source_one_minus_beta_fission/Input_PJFNK.i)
flow_velocity=147 # Cammi 147 cm/s
inlet_temp=824
initial_outlet_temp=824
nt_scale=1e16
reactor_height=115 # Cammi 396 cm; critical_buckling_from_newt ~ 115 cm
global_temperature=temp
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = true
group_fluxes = 'group1 group2'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
[../]
[Mesh]
file = 'cylinder_structured.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_top graphite_top fuel_bottom graphite_bottom'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
# create_temperature_var = false
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[Materials]
[./fuel]
type = CammiFuel
block = 'fuel'
property_tables_root = '../property_file_dir/newt_fuel_'
prop_names = 'cp'
prop_values = '1357' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
type = CammiModerator
block = 'moder'
property_tables_root = '../property_file_dir/newt_mod_'
prop_names = 'rho cp'
prop_values = '1.843e-3 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'inlet_boundary_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottom'
type = TemperatureInflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
inlet_conc = 824
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Problem]
type = FEProblem
coord_type = RZ
[../]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -ksp_gmres_restart'
petsc_options_value = 'asm lu 2 preonly 31'
nl_max_its = 20
l_max_its = 10
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
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./forcing_func]
type = ParsedFunction
value = '1000'
[../]
[./temp_ic_func]
type = ParsedFunction
value = '(${initial_outlet_temp} - ${inlet_temp}) / ${reactor_height} * y + ${inlet_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./inlet_boundary_temp_func]
type = ParsedFunction
value = '${inlet_temp}'
[../]
[]
[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'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin.i)
# flow_velocity=21.7 # cm/s. See MSRE-properties.ods
fuel_velocity_max_inlet = 43.4
fuel_sq_rad = 39.94
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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
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 = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[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/LOSCA/auto_diff_rho.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 = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
[../]
[Problem]
coord_type = RZ
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
[../]
[./temp]
scaling = 1e-4
initial_condition = 930
[../]
[]
[Precursors]
[./core]
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
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'fuel_bottoms'
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[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
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
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 = '../../property_file_dir/newt_msre_mod_'
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'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.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 = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
# file = '3d_msre_29x29_136.msh'
file = split_mesh/3d_auto_diff_rho_in.e
nemesis = true
skip_partioning = true
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[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
[]
[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 = CoupledFissionKernel
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
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[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
[]
[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
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# 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'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
nemesis = 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
# [../]
# []