- account_delayedFalseWhether to account for delayed neutrons.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to account for delayed neutrons.
- group_fluxesAll the variables that hold the group fluxes. These MUST be listed by decreasing energy/increasing group number.
C++ Type:std::vector<VariableName>
Controllable:No
Description:All the variables that hold the group fluxes. These MUST be listed by decreasing energy/increasing group number.
- group_numberThe current energy group
C++ Type:unsigned int
Controllable:No
Description:The current energy group
- num_groupsThe total numer of energy groups
C++ Type:unsigned int
Controllable:No
Description:The total numer of energy groups
- temperatureThe temperature used to interpolate material properties
C++ Type:std::vector<VariableName>
Controllable:No
Description:The temperature used to interpolate material properties
- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Controllable:No
Description:The name of the variable that this residual object operates on
CoupledFissionKernel
Overview
This object adds the neutron source term of the multigroup neutron diffusion equations. If account_delayed=false
(i.e. no delayed neutron precursor modeling), the form is used instead.
Example Input File Syntax
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Controllable:No
Description:The displacements
- eigenvalue_scaling1Artificial scaling factor for the fission source. Primarily introduced to make super/sub-critical systems exactly critical for the CNRS benchmark.
Default:1
C++ Type:double
Controllable:No
Description:Artificial scaling factor for the fission source. Primarily introduced to make super/sub-critical systems exactly critical for the CNRS benchmark.
- 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
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_exp_formFalseWhether concentrations should be in an expotential/logarithmic format.
Default:False
C++ Type:bool
Controllable:No
Description:Whether concentrations should be in an expotential/logarithmic format.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Controllable:No
Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Controllable:No
Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive_PJFNK.i)
- (problems/debug-precursor-action.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-b1-two-mat.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
- (problems/nts-temp-delayed.i)
- (problems/060717_dimension_testing/test_case.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.i)
- (problems/transient-axi-nts-temp-delayed.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.i)
- (problems/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.i)
- (problems/picard/nts_no_pres.i)
- (problems/axi-nts-temp-delayed.i)
- (tutorial/transient/transient.i)
- (problems/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
- (problems/LOSCA/HXFailure/auto_diff_rho.i)
- (problems/publication_level_cases/LOSCA/HXFail/auto_diff_rho.i)
- (problems/LOFA/steady/auto_diff_rho.i)
- (tests/nts/nts_no_action.i)
- (tutorial/eigenvalue/nts.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-heat-and-nts.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-scale-two-mat-inverted-file-msh.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-PJFNK.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
- (problems/060717_dimension_testing/one_group.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function_moderator_heating.i)
- (problems/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-mat.i)
- (problems/picard/nts.i)
- (problems/LOFA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.i)
- (problems/picard/tmp_nts.i)
- (problems/picard/auto_diff_rho.i)
- (problems/publication_level_cases/LOSCA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_ss.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-channel-msre-dimensions.i)
- (tests/coupled/auto_diff_rho_serpent.i)
- (tests/coupled/auto_diff_rho.i)
- (problems/072017_dg_temperature/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-unit-cell.i)
- (problems/publication_level_cases/dilute_absorber_controlled_by_peak_power_density/in.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_restart.i)
- (problems/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
- (problems/transient-jac-test.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
(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/debug-precursor-action.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 1
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 200000
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
block_id = 0
block_name = 'fuel'
[]
[MeshModifiers]
[mod]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = 1
block_name = 'moder'
[]
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
temperature = temp
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
temperature = temp
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
temperature = temp
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
temperature = temp
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# [../]
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
[]
# # Delayed neutron precursors
# [./pre1_source]
# type = PrecursorSource
# variable = pre1
# precursor_group_number = 1
# temperature = temp
# [../]
# [./pre1_decay]
# type = PrecursorDecay
# variable = pre1
# precursor_group_number = 2
# temperature = temp
# [../]
[]
[Precursors]
var_name_base = pre
# v_def = ${flow_velocity}
# block = 'fuel'
inlet_boundary = 'bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_dirichlet_value = 0
outlet_boundary = 'top'
T = temp
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
temperature = temp
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
temperature = temp
[]
[]
[BCs]
[temp_inlet]
boundary = 'bottom'
type = DirichletBC
variable = temp
value = 900
[]
[temp_outlet]
boundary = 'top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'top bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'top bottom'
[]
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.7
pfactor = 1e-2
l_max_its = 100
line_search = none
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-pc_type -sub_pc_type -sub_ksp_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu preonly 2 31'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/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/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/nts-temp-delayed.i)
[GlobalParams]
num_groups = 2
# temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
# power = 20
[]
[Mesh]
file = 'cylinder.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
# [./temp]
# order = FIRST
# family = LAGRANGE
# # scaling = 1e-3
# [../]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# [../]
# # Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# save_in = 'diffus_resid tot_resid'
# [../]
# [./temp_source]
# type = FissionHeatSource
# tot_fissions = tot_fissions
# variable = temp
# save_in = 'src_resid tot_resid'
# [../]
[]
[AuxVariables]
# [./Qf]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
# [./Qf]
# type = FissionHeatSourceAux
# variable = Qf
# tot_fissions = tot_fissions
# [../]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
# [./temp]
# boundary = boundary
# type = DirichletBC
# variable = temp
# value = 900
# save_in = 'bc_resid tot_resid'
# [../]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'all_top all_bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'all_top all_bottom'
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 2
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = false
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/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/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
# [../]
# []
(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/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/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/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/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/axi-nts-temp-delayed.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 200000
[]
[Mesh]
file = 'axisymm_cylinder.msh'
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
temperature = temp
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
temperature = temp
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
temperature = temp
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
temperature = temp
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# [../]
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
[]
[]
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
block = 'fuel'
inlet_boundary = 'fuel_bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_dirichlet_value = -20
outlet_boundary = 'fuel_top'
T = temp
incompressible_flow = false
use_exp_form = true
initial_condition = -20
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[pre1_lin]
family = MONOMIAL
order = CONSTANT
[]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[pre1_lin]
variable = pre1_lin
density_log = pre1
type = Density
[]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
temperature = temp
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
temperature = temp
[]
[]
[BCs]
[temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = 900
[]
[temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.7
pfactor = 1e-2
l_max_its = 100
# line_search = none
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-pc_type -sub_pc_type -sub_ksp_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu preonly 2 31'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(tutorial/transient/transient.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = '../eigenvalue/mesh.e'
[]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1000
[]
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = 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 = '0'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
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 = '0'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = INSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
variable = temp
velocity = '0 18.085 0'
block = '0'
[]
[temp_diffusion]
type = MatDiffusion
variable = temp
diffusivity = 'k'
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = '0'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[temp_inlet_bc]
type = FunctionDirichletBC
variable = temp
boundary = 'fuel_bottom mod_bottom right'
function = 'temp_bc_func'
[]
[temp_outlet_bc]
type = TemperatureOutflowBC
variable = temp
boundary = 'fuel_top'
velocity = '0 18.085 0'
[]
[]
[ICs]
[group1_ic]
type = FunctionIC
variable = group1
function = ic_func
[]
[group2_ic]
type = FunctionIC
variable = group2
function = ic_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '1000 - (1000-965) * tanh(t/1)'
[]
[dt_func]
type = ParsedFunction
expression = 'if(t<50, if(t<30, .4, 5), 10)'
[]
[ic_func]
type = ParsedFunction
expression = '1e5 * (-x^2+70^2) * (-y * (y-150))'
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = '../eigenvalue/xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967'
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = '../eigenvalue/xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = 'rho k cp'
prop_values = '1.86e-3 .312 1760'
[]
[]
[Executioner]
type = Transient
end_time = 200
nl_rel_tol = 1e-6
nl_abs_tol = 1e-1
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
scaling_group_variables = 'group1 group2; pre1 pre2 pre3 pre4 pre5 pre6; temp'
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_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
line_search = none
dtmin = 1e-3
dtmax = 10
[TimeStepper]
type = FunctionDT
function = dt_func
[]
# [TimeStepper]
# type = IterationAdaptiveDT
# dt = .2
# cutback_factor = 0.4
# growth_factor = 1.2
# optimal_iterations = 20
# []
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[average_temp]
type = ElementAverageValue
variable = temp
execute_on = linear
[]
[inlet_temp]
type = SideAverageValue
variable = temp
boundary = fuel_bottom
[]
[outlet_temp]
type = SideAverageValue
variable = temp
boundary = fuel_top
[]
[]
[VectorPostprocessors]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
# print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
execute_on = FINAL
[]
[]
[Debug]
# show_var_residual_norms = true
[]
(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/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/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/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
[../]
[]
(tests/nts/nts_no_action.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Problem]
type = EigenProblem
bx_norm = fiss_neutrons
[]
[Mesh]
file = '2d_lattice_structured_smaller.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
[]
[group2]
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
extra_vector_tags = 'eigen'
[]
[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
extra_vector_tags = 'eigen'
[]
[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'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = Eigenvalue
eigen_tol = 1e-6
free_power_iterations = 2
normalization = fiss_neutrons
normal_factor = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fiss]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
contains_complete_history = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tutorial/eigenvalue/nts.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = 'mesh.e'
[]
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = false
eigen = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = '0'
extra_vector_tags = 'eigen'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = '0'
extra_vector_tags = 'eigen'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = 'xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 0
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/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/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/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/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/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_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/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/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/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/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/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/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/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/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/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/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/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'
[../]
[]
(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
# [../]
# []
(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/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/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/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/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/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/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/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/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/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/transient-jac-test.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
# power = 200000
temperature = temp
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
block_id = '0'
block_name = 'fuel'
[]
[MeshModifiers]
[bounding_box]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = '1'
block_name = 'moder'
[]
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
group_number = 1
variable = group1
[]
[time_group2]
type = NtTimeDerivative
group_number = 2
variable = group2
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = TransientFissionHeatSource
variable = temp
[]
[]
# Delayed neutron precursors
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
# block = 'fuel'
inlet_boundary = 'bottom'
inlet_boundary_condition = 'NeumannBC'
inlet_bc_value = 1.1
outlet_boundary = 'top'
temperature = temp
incompressible_flow = false
transient_simulation = true
use_exp_form = false
jac_test = true
# initial_condition = -20
[]
# [AuxVariables]
# [./pre1_lin]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./Qf]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [../]
# [AuxKernels]
# [./pre1_lin]
# variable = pre1_lin
# density_log = pre1
# type = Density
# [../]
# [./Qf]
# type = FissionHeatSourceAux
# variable = Qf
# tot_fissions = tot_fissions
# [../]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
# []
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
[]
[]
[BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = 900
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./group1_vacuum]
# type = VacuumBC
# variable = group1
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
# [./group2_vacuum]
# type = VacuumBC
# variable = group2
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
[]
[Problem]
type = FEProblem
coord_type = RZ
kernel_coverage_check = false
[]
[Executioner]
type = Transient
end_time = 10
nl_abs_tol = 1e-11
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-snes_type'
petsc_options_value = 'test'
dtmin = 1e-7
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
nl_max_its = 50
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
# [Postprocessors]
# [./bnorm]
# type = ElmIntegTotFissNtsPostprocessor
# group_fluxes = 'group1 group2'
# execute_on = linear
# [../]
# [./tot_fissions]
# type = ElmIntegTotFissPostprocessor
# execute_on = linear
# [../]
# [./group1norm]
# type = ElementIntegralVariablePostprocessor
# variable = group1
# execute_on = linear
# [../]
# [./group2norm]
# type = ElementIntegralVariablePostprocessor
# variable = group2
# execute_on = linear
# [../]
# [./group1max]
# type = NodalExtremeValue
value_type = max
# variable = group1
# execute_on = timestep_end
# [../]
# [./group2max]
# type = NodalExtremeValue
value_type = max
# variable = group2
# execute_on = timestep_end
# [../]
# [./group1diff]
# type = ElementL2Diff
# variable = group1
# execute_on = 'linear timestep_end'
# use_displaced_mesh = false
# [../]
# []
[Outputs]
[out]
type = Exodus
execute_on = 'initial timestep_end'
[]
[dof_map]
type = DOFMap
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = RandomIC
variable = temp
min = 900
max = 1400
[]
[group1_ic]
type = RandomIC
variable = group1
min = 0
max = 600
[]
[group2_ic]
type = RandomIC
variable = group2
min = 0
max = 600
[]
# [./pre1_ic]
# type = ConstantIC
# variable = pre1
# value = -20
# [../]
[]
(problems/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
[]