- prop_namesThe names of the properties this material will have
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:The names of the properties this material will have
- prop_valuesThe values associated with the named properties
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:Yes
Description:The values associated with the named properties
GraphiteTwoGrpXSFunctionMaterial
The GraphiteTwoGrpXSFunctionMaterial has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.
Declares material properties based on names and values prescribed by input parameters.
Overview
Example Input File Syntax
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onSUBDOMAINWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:SUBDOMAIN
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:NONE, ELEMENT, SUBDOMAIN
Controllable:No
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- temperature937.0The temperature field for determining group constants.
Default:937.0
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The temperature field for determining group constants.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
Input Files
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
- (problems/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
- (problems/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_ss.i)
(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/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '.369 .369 1'
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
# [./fuel]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_fuel_'
# interp_type = 'spline'
# block = 'fuel'
# [../]
# [./moder]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_mod_'
# interp_type = 'spline'
# block = 'moder'
# [../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
execute_on = 'timestep_end final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/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/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/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '1 1 .99'
[]
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(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/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[./scale]
type = Transform
transform = SCALE
vector_value = '1 1 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[./nt_ic_func]
type = ParsedFunction
value = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
[./group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[../]
[./group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[../]
[]
(problems/publication_level_cases/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
[]