- interp_typeThe type of interpolation to perform.
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The type of interpolation to perform.
- num_groupsThe number of groups the energy spectrum is divided into.
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of groups the energy spectrum is divided into.
- num_precursor_groupsThe number of delayed neutron precursor groups.
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of delayed neutron precursor groups.
- 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
- property_tables_rootThe file root name containing interpolation tables for material properties.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:The file root name containing interpolation tables for material properties.
GenericMoltresMaterial
The GenericMoltresMaterial 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_onNONEWhen 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:NONE
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
- controller_gain0.01For every W/cm^3 that the peak power density is greater than the peak power density set point, the absorption cross section gets incremented by this amount
Default:0.01
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:For every W/cm^3 that the peak power density is greater than the peak power density set point, the absorption cross section gets incremented by this amount
- 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.
- fuel_temp_pointsThe fuel temperature interpolation points.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The fuel temperature interpolation points.
- materialMust specify either *fuel* or *moderator*.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Must specify either *fuel* or *moderator*.
- mod_temp_pointsThe moderator temperature interpolation points.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The moderator temperature interpolation points.
- other_temp0If doing bivariable interpolation, need to supply a postprocessor for the average temperature of the other material.
Default:0
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:If doing bivariable interpolation, need to supply a postprocessor for the average temperature of the other material.
- peak_power_density0The postprocessor which holds the peak power density.
Default:0
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:The postprocessor which holds the peak power density.
- peak_power_density_set_point10The peak power density set point in W/cm^3
Default:10
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The peak power density set point in W/cm^3
- 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.
- sss2_inputTrueWhether serpent 2 was used to generate the input files.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether serpent 2 was used to generate the input files.
- 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_nts_only.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-scale-two-mat-inverted-file-msh.i)
- (problems/rodMatchSerpentWorth/rodded.i)
- (problems/picard/nts_no_pres.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form.i)
- (problems/gmsh-mesh-one-material.i)
- (problems/2017_annals_pub_msre_compare/4group_eigen.i)
- (tests/materials/gmm_spline.i)
- (tests/temp/temp.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-inverted-file-mesh-two-grp-two-mat.i)
- (tests/materials/gmm_monotone_cubic.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-unit-cell.i)
- (problems/msr-interp-2x2-reflect.i)
- (problems/nts-temp-delayed.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-PJFNK.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-57-mc-gcs.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-channel-msre-dimensions.i)
- (problems/picard/temp_no_pres.i)
- (tests/nts/gen-mesh-one-material.i)
- (tests/pre/sub_ins.i)
- (problems/2021-cnrs-benchmark/phase-1/power-coupling-nts.i)
- (problems/2021-cnrs-benchmark/phase-1/circ-fuel.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_vacuum.i)
- (problems/publication_level_cases/dilute_absorber_controlled_by_peak_power_density/in.i)
- (problems/picard/pres.i)
- (problems/transient-jac-test.i)
- (tests/materials/gmm_none.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-922.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin.i)
- (problems/LOFA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
- (tests/pre/pre_loop.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-one-channel-two-grp-two-mat-scale.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp.i)
- (tests/coupled/auto_diff_rho_serpent.i)
- (problems/debug-precursor-action.i)
- (problems/LOSCA/sub.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-73-mc-gcs.i)
- (problems/publication_level_cases/LOSCA/sub.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive_PJFNK.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp-two-mat.i)
- (problems/gmsh-3d-coupled-nts-temp.i)
- (problems/publication_level_cases/manuBench/nts.i)
- (problems/2021-cnrs-benchmark/phase-1/full-coupling-nts.i)
- (problems/022317_test_critical_neutronics_only_reactor/critical_test_nts_only.i)
- (problems/060717_dimension_testing/one_group.i)
- (problems/LOSCA/HXFailure/auto_diff_rho.i)
- (problems/publication_level_cases/LOSCA/HXFail/auto_diff_rho.i)
- (problems/transient-axi-nts-temp-delayed.i)
- (problems/060717_dimension_testing/one_group_nts_only.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-nts-eigenvalue.i)
- (problems/2021-cnrs-benchmark/phase-0/temperature.i)
- (problems/publication_level_cases/LOSCA/auto_diff_rho.i)
- (tests/pre/sub.i)
- (tests/coupled/coupled_eigenvalue.i)
- (problems/picard/tmp_nts.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.i)
- (tests/materials/gmm_linear.i)
- (problems/rodded2D/rodded.i)
- (problems/picard/nts.i)
- (problems/060717_dimension_testing/test_case.i)
- (problems/publication_level_cases/LOSCA/HXFail/sub.i)
- (problems/picard/temp.i)
- (problems/msr-couple-temp-nts-2x2.i)
- (problems/033117_nts_temp_pre_parsed_mat/meigen.i)
- (problems/2021-cnrs-benchmark/phase-1/buoyancy-nts.i)
- (tests/decay_heat/decay_heat.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-1022.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function_moderator_heating.i)
- (problems/022317_test_critical_neutronics_only_reactor/small.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.i)
- (problems/070517_4group/eigen/eigen.i)
- (problems/LOFA/steady/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen.i)
- (problems/publication_level_cases/manuBench/manubox.i)
- (problems/gmsh-two-mat-multiple-pin.i)
- (problems/picard/auto_diff_rho.i)
- (problems/publication_level_cases/twod_control_rod_yank/rodded.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-two-grp.i)
- (problems/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-mat.i)
- (problems/gen-mesh-one-material.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-heat-and-nts.i)
- (problems/publication_level_cases/manuBench/manuboxNoStokes.i)
- (problems/rodMatchSerpentWorth/adjustAbsorb/rodded.i)
- (problems/072017_dg_temperature/auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-should-be-crit-one-group.i)
- (tests/pre/pre.i)
- (problems/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
- (problems/021417_MSRE_materials/CG_temp.i)
- (problems/LOSCA/HXFailure/sub.i)
- (problems/2021-cnrs-benchmark/phase-2/transient.i)
- (problems/gmsh-mesh-two-materials.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-b1-two-mat.i)
- (tests/nts/nts_no_action.i)
- (problems/022317_test_critical_neutronics_only_reactor/criticial_test_nts_only_rad_57.i)
- (problems/021417_MSRE_materials/mini_msre_cg_temp.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_restart.i)
- (problems/021417_MSRE_materials/CG_no_temp_eigen_b1_gcs.i)
- (problems/single_msre_channel_velocity_heat_nts/nts-eigenvalue-msre-channel-dimensions.i)
- (problems/2017_annals_pub_msre_compare/auto_diff_rho.i)
- (tests/nts/nts.i)
- (problems/021417_MSRE_materials/Input.i)
- (problems/msr-couple-temp-nts-2x2-10xPow.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_harsher_penalty.i)
- (problems/2017_annals_pub_msre_compare/4group.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-one-grp.i)
- (problems/2021-cnrs-benchmark/phase-0/nts.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-problem.i)
- (problems/axi-nts-temp-delayed.i)
- (problems/2017_annals_pub_msre_compare/2group.i)
- (tests/coupled/auto_diff_rho.i)
- (problems/021417_MSRE_materials/CG_no_temp.i)
- (problems/022317_test_critical_neutronics_only_reactor/analytic.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-four-grp.i)
- (problems/2017_annals_pub_msre_compare/2group_eigen.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.i)
- (tests/pre/pre_loop_ins.i)
- (problems/LOSCA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.i)
Child Objects
(problems/033117_nts_temp_pre_parsed_mat/3d_nts_only.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
[]
[group2]
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(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/rodMatchSerpentWorth/rodded.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
eigen = true
[]
[Kernels]
[temp_source_fuel]
type = FissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
power = 7.5e6
tot_fissions = tot_fissions
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'tot_fissions'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = DirichletBC
variable = temp
value = ${diri_temp}
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[]
[cRod]
type = RoddedMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = 200.0
absorb_factor = 1e6 # how much more absorbing than usual in absorbing region?
[]
[rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'asm lu NONZERO 1e-10'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/picard/nts_no_pres.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[]
[AuxVariables]
[./temp]
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
picard_max_its = 1
picard_rel_tol = 1e-6
picard_abs_tol = 1e-4
nl_rel_tol = 1e-6
nl_abs_tol = 1e-4
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 10
l_max_its = 100
dtmin = 1e-3
[./TimeStepper]
type = PostprocessorDT
postprocessor = 'limit_k'
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus csv'
[../]
[./limit_k]
type = LimitK
growth_factor = 1.1
cutback_factor = 0.4
k_threshold = 1.1
k_postprocessor = 'multiplication'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
csv = true
execute_on = 'final'
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./temp]
type = TransientMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = 'temp_no_pres.i'
[../]
[]
[Transfers]
[./temp_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp'
source_variable = temp
variable = temp
[../]
[./group1_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp'
source_variable = group1
variable = group1
[../]
[./group2_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp'
source_variable = group2
variable = group2
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = LinLogPenaltyDirichletBC
value = 0
penalty = 1
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/gmsh-mesh-one-material.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-one-mat.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/2017_annals_pub_msre_compare/4group_eigen.i)
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = 922
sss2_input = true
pre_concs = ''
account_delayed = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = Eigenvalue
eigen_tol = 1e-6
normalization = bnorm
normal_factor = 1
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = 'nonlinear linear timestep_end'
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'nonlinear linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/gmm_spline.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/temp/temp.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
sss2_input = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured_smaller.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
[]
[]
[Kernels]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
group_fluxes = '1 1'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = 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}'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = temp
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'
temperature = temp
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 = Steady
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
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'console'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(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/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_b1_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-inverted-file-mesh-two-grp-two-mat.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
# file = 'inverted_29x29_h_143.msh'
file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/materials/gmm_monotone_cubic.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'monotone_cubic'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/msr-interp-2x2-reflect.i)
[GlobalParams]
num_groups = 2
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[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'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
[]
[]
[Executioner]
type = NonlinearEigen
bx_norm = 'bnorm'
free_power_iterations = 2
source_abs_tol = 1e-50
source_rel_tol = 1e-8
k0 = 1.0
output_after_power_iterations = true
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
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
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
(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/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/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-57-mc-gcs.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 57
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/single_msre_channel_velocity_heat_nts/heat-nts-single-channel-msre-dimensions.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
width = 3.048
height = 1.016
length = 162.56
nt_scale=1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = single_channel_msre_dimensions.msh
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./vel_x]
block = 'fuel'
[../]
[./vel_y]
block = 'fuel'
[../]
[./vel_z]
block = 'fuel'
[../]
[./p]
block = 'fuel'
[../]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# outlet_boundaries = 'fuel_top'
# u_func = vel_x_func
# v_func = vel_y_func
# w_func = vel_z_func
# constant_velocity_values = false
# nt_exp_form = false
# family = MONOMIAL
# order = CONSTANT
# # jac_test = true
# []
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
# [./delayed_group1]
# type = DelayedNeutronSource
# variable = group1
# [../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_fuel_transport]
type = INSTemperature
u = vel_x
v = vel_y
w = vel_z
variable = temp
block = 'fuel'
[../]
[./temp_mod_transport]
type = MatDiffusion
diffusivity = 'k'
variable = temp
block = 'moderator'
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moderator'
average_fission_heat = 'average_fission_heat'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moderator'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[BCs]
[./temp_inlet]
boundary = 'fuel_bottom'
variable = temp
value = 900
type = DirichletBC
[../]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
variable = group2
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-4
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
peak_power_density = peak_power_density
controller_gain = 0
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = PJFNK
ksp_norm = none
[../]
[]
# [Executioner]
# # type = Steady
# type = Transient
# dt = 1
# num_steps = 1
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# # line_search = none
# nl_rel_tol = 1e-8
# nl_max_its = 50
# l_max_its = 300
# []
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[./nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[../]
[./temp_ic]
type = ParsedFunction
value = '900 + 100 / ${length} * z'
[../]
[]
[ICs]
[./temp]
type = FunctionIC
variable = temp
function = temp_ic
[../]
[./group1]
type = FunctionIC
variable = group1
function = nt_ic
[../]
[./group2]
type = FunctionIC
variable = group2
function = nt_ic
[../]
[]
[MultiApps]
[./sub]
type = FullSolveMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = solution_aux_exodus.i
execute_on = 'initial'
[../]
[]
[Transfers]
[./vel_x]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_x
variable = vel_x
execute_on = 'initial'
[../]
[./vel_y]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_y
variable = vel_y
execute_on = 'initial'
[../]
[./vel_z]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = vel_z
variable = vel_z
execute_on = 'initial'
[../]
[./p]
type = MultiAppNearestNodeTransfer
direction = from_multiapp
multi_app = sub
source_variable = p
variable = p
execute_on = 'initial'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moderator'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[../]
[]
(problems/picard/temp_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 = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./temp]
initial_condition = ${ini_temp}
[../]
[]
[AuxVariables]
[./group1]
[../]
[./group2]
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./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-5
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 = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 6
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console csv'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console csv'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
csv = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/nts/gen-mesh-one-material.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
use_exp_form = false
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 6
ymax = 6
nx = 15
ny = 15
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
diffusivity = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fission_heat = tot_fission_heat
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fission_heat = tot_fission_heat
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
interp_type = spline
[]
[]
[BCs]
[temp]
boundary = 'left right top bottom'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fission_heat]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(tests/pre/sub_ins.i)
flow_velocity = 20
global_temperature = 922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
temperature = ${global_temperature}
group_fluxes = ''
sss2_input = false
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
xmax = 100
elem_type = EDGE2
[]
[Precursors]
[core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = true
inlet_boundaries = 'left'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
num_groups = 2
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Transient
end_time = 400
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_max_its = 20
l_max_its = 50
dtmin = 1e-2
dtmax = 4
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-2
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-1/power-coupling-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = ux
vvel = uy
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[ux]
family = LAGRANGE
order = FIRST
[]
[uy]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[UserObjects]
[velocities]
type = SolutionUserObject
mesh = '../phase-0/vel-field_exodus.e'
system_variables = 'vel_x vel_y'
timestep = LATEST
execute_on = INITIAL
[]
[]
[AuxKernels]
[ux]
type = SolutionAux
variable = ux
from_variable = vel_x
solution = velocities
[]
[uy]
type = SolutionAux
variable = uy
from_variable = vel_y
solution = velocities
[]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Functions]
[velxf]
type = SolutionFunction
from_variable = vel_x
solution = velocities
[]
[velyf]
type = SolutionFunction
from_variable = vel_y
solution = velocities
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
scaling_group_variables = 'group1 group2 group3 group4 group5 group6;
pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
initial_eigenvalue = 1.00
free_power_iterations = 2
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[flux_aa]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '0 100 0'
end_point = '200 100 0'
num_points = 201
sort_by = x
execute_on = FINAL
outputs = 'csv'
[]
[flux_bb]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '100 0 0'
end_point = '100 200 0'
num_points = 201
sort_by = y
execute_on = FINAL
outputs = 'csv'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/2021-cnrs-benchmark/phase-1/circ-fuel.i)
# Step 1.1: Circulating fuel input file
# Requires velocity fields from Step 0.1
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a desktop/small cluster
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = ux
vvel = uy
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[ux]
family = LAGRANGE
order = FIRST
[]
[uy]
family = LAGRANGE
order = FIRST
[]
[]
[UserObjects]
[velocities]
type = SolutionUserObject
mesh = '../phase-0/vel-field_exodus.e'
system_variables = 'vel_x vel_y'
timestep = LATEST
execute_on = INITIAL
[]
[]
[AuxKernels]
[ux]
type = SolutionAux
variable = ux
from_variable = vel_x
solution = velocities
[]
[uy]
type = SolutionAux
variable = uy
from_variable = vel_y
solution = velocities
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
initial_eigenvalue = 0.99600
eigen_tol = 1e-7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
# petsc_options_value = 'lu NONZERO superlu_dist'
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_vacuum.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'left right'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/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/picard/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 = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[AuxVariables]
[./temp]
[../]
[./group1]
[../]
[./group2]
[../]
[]
[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
[../]
[]
[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
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
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/transient-jac-test.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
# power = 200000
temperature = temp
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
block_id = '0'
block_name = 'fuel'
[]
[MeshModifiers]
[bounding_box]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = '1'
block_name = 'moder'
[]
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
group_number = 1
variable = group1
[]
[time_group2]
type = NtTimeDerivative
group_number = 2
variable = group2
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = TransientFissionHeatSource
variable = temp
[]
[]
# Delayed neutron precursors
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
# block = 'fuel'
inlet_boundary = 'bottom'
inlet_boundary_condition = 'NeumannBC'
inlet_bc_value = 1.1
outlet_boundary = 'top'
temperature = temp
incompressible_flow = false
transient_simulation = true
use_exp_form = false
jac_test = true
# initial_condition = -20
[]
# [AuxVariables]
# [./pre1_lin]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./Qf]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [../]
# [AuxKernels]
# [./pre1_lin]
# variable = pre1_lin
# density_log = pre1
# type = Density
# [../]
# [./Qf]
# type = FissionHeatSourceAux
# variable = Qf
# tot_fissions = tot_fissions
# [../]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
# []
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
[]
[]
[BCs]
# [./temp_inlet]
# boundary = 'fuel_bottom graphite_bottom'
# type = DirichletBC
# variable = temp
# value = 900
# [../]
# [./temp_outlet]
# boundary = 'fuel_top'
# type = MatINSTemperatureNoBCBC
# variable = temp
# k = 'k'
# [../]
# [./group1_vacuum]
# type = VacuumBC
# variable = group1
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
# [./group2_vacuum]
# type = VacuumBC
# variable = group2
# boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
# [../]
[]
[Problem]
type = FEProblem
coord_type = RZ
kernel_coverage_check = false
[]
[Executioner]
type = Transient
end_time = 10
nl_abs_tol = 1e-11
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-snes_type'
petsc_options_value = 'test'
dtmin = 1e-7
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-4
growth_factor = 1.2
optimal_iterations = 20
nl_max_its = 50
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
# [Postprocessors]
# [./bnorm]
# type = ElmIntegTotFissNtsPostprocessor
# group_fluxes = 'group1 group2'
# execute_on = linear
# [../]
# [./tot_fissions]
# type = ElmIntegTotFissPostprocessor
# execute_on = linear
# [../]
# [./group1norm]
# type = ElementIntegralVariablePostprocessor
# variable = group1
# execute_on = linear
# [../]
# [./group2norm]
# type = ElementIntegralVariablePostprocessor
# variable = group2
# execute_on = linear
# [../]
# [./group1max]
# type = NodalExtremeValue
value_type = max
# variable = group1
# execute_on = timestep_end
# [../]
# [./group2max]
# type = NodalExtremeValue
value_type = max
# variable = group2
# execute_on = timestep_end
# [../]
# [./group1diff]
# type = ElementL2Diff
# variable = group1
# execute_on = 'linear timestep_end'
# use_displaced_mesh = false
# [../]
# []
[Outputs]
[out]
type = Exodus
execute_on = 'initial timestep_end'
[]
[dof_map]
type = DOFMap
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = RandomIC
variable = temp
min = 900
max = 1400
[]
[group1_ic]
type = RandomIC
variable = group1
min = 0
max = 600
[]
[group2_ic]
type = RandomIC
variable = group2
min = 0
max = 600
[]
# [./pre1_ic]
# type = ConstantIC
# variable = pre1
# value = -20
# [../]
[]
(tests/materials/gmm_none.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/inf_crit_small_two_group_'
interp_type = 'none'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-922.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
file = 'inverted_29x29_h_133.msh'
# file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[../]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/033117_nts_temp_pre_parsed_mat/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/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/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
# [../]
# []
(tests/pre/pre_loop.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
group_fluxes = '1 1'
temperature = ${global_temperature}
sss2_input = false
transient = true
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured_smaller.msh'
[]
[Problem]
kernel_coverage_check = false
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'fuel_bottoms'
block = 'fuel'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Transient
end_time = 400
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
fixed_point_max_its = 5
fixed_point_rel_tol = 1e-6
fixed_point_abs_tol = 1e-5
dtmin = 1e-2
dtmax = 5
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-2
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
execute_on = 'final'
[]
[]
[MultiApps]
[loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '200.0 200.0 0.0'
input_files = 'sub.i'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-one-channel-two-grp-two-mat-scale.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
eig_check_tol = 1e-9
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/coupled/auto_diff_rho_serpent.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
ini_temp = 922
diri_temp = 922
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 80
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
steady_state_detection = true
steady_state_tolerance = 1e-10
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 5
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'auto_diff_rho_serpent'
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/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/LOSCA/sub.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
use_exp_form = false
group_fluxes = ''
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
# account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 600
xmax = 500
elem_type = EDGE2
[../]
[Variables]
[./temp]
initial_condition = 930 #approx steady outlet of other problem
scaling = 1e-4
family = MONOMIAL
order = CONSTANT
[../]
[]
[Precursors]
[./core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = true
inlet_boundaries = left
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
# [./temp_source_fuel]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./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 = '${flow_velocity} 0 0'
# variable = temp
# [../]
[]
[DGKernels]
[./temp_adv]
type = DGTemperatureAdvection
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[DiracKernels]
[./heat_exchanger]
type = DiracHX
variable = temp
power = 4e3 # see controls
point = '250 0 0'
[../]
[]
[BCs]
[./fuel_bottoms_looped]
boundary = 'left'
type = PostprocessorTemperatureInflowBC
postprocessor = coreEndTemp
variable = temp
uu = ${flow_velocity}
[../]
# [./diri]
# boundary = 'left'
# type = DirichletBC
# variable = temp
# value = 930
# [../]
[./temp_advection_outlet]
boundary = 'right'
type = TemperatureOutflowBC
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
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
[../]
[]
[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'
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]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'exodus console'
[../]
[./loopEndTemp]
type = SideAverageValue
variable = temp
boundary = 'right'
[../]
[./coreEndTemp]
type = Receiver
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'sub'
execute_on = 'timestep_begin'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# connect inlet and outlet to multiapp
# [Transfers]
# [./to_core]
# type = MultiAppPostprocessorTransfer
# multi_app = MoltresApp
# from_postprocessor = loopEndTemp
# to_postprocessor = inlet_mean_temp
# direction = to_multiapp
# [../]
# [./from_core]
# type = MultiAppPostprocessorTransfer
# multi_app = MoltresApp
# from_postprocessor = coreEndTemp
# to_postprocessor = coreEndTemp
# direction = to_multiapp
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-73-mc-gcs.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 198.12
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/publication_level_cases/LOSCA/sub.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
use_exp_form = false
group_fluxes = ''
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
# account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 600
xmax = 500
elem_type = EDGE2
[../]
[Variables]
[./temp]
initial_condition = 930 #approx steady outlet of other problem
scaling = 1e-4
family = MONOMIAL
order = CONSTANT
[../]
[]
[Precursors]
[./core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
# [./temp_source_fuel]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./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 = '${flow_velocity} 0 0'
# variable = temp
# [../]
[]
[DGKernels]
[./temp_adv]
type = DGTemperatureAdvection
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[DiracKernels]
[./heat_exchanger]
type = DiracHX
variable = temp
power = 4e3 # see controls
point = '250 0 0'
[../]
[]
[BCs]
[./fuel_bottoms_looped]
boundary = 'left'
type = PostprocessorTemperatureInflowBC
postprocessor = coreEndTemp
variable = temp
uu = ${flow_velocity}
[../]
# [./diri]
# boundary = 'left'
# type = DirichletBC
# variable = temp
# value = 930
# [../]
[./temp_advection_outlet]
boundary = 'right'
type = TemperatureOutflowBC
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
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
[../]
[]
[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'
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]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'exodus console'
[../]
[./loopEndTemp]
type = SideAverageValue
variable = temp
boundary = 'right'
[../]
[./coreEndTemp]
type = Receiver
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'sub'
execute_on = 'timestep_begin'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# connect inlet and outlet to multiapp
# [Transfers]
# [./to_core]
# type = MultiAppPostprocessorTransfer
# multi_app = MoltresApp
# from_postprocessor = loopEndTemp
# to_postprocessor = inlet_mean_temp
# direction = to_multiapp
# [../]
# [./from_core]
# type = MultiAppPostprocessorTransfer
# multi_app = MoltresApp
# from_postprocessor = coreEndTemp
# to_postprocessor = coreEndTemp
# direction = to_multiapp
# [../]
# []
(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/022317_test_critical_neutronics_only_reactor/k-eig-msre-file-mesh-two-grp-two-mat.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = true
[]
[Mesh]
file = 'msre_26x26.msh'
# file = 'msre_cuboid_3x3.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_fuel_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_moder_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-3d-coupled-nts-temp.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 20
[]
[Mesh]
file = 'msr-small.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
# scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = boundary
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
# [./src_resid_post]
# type = NodalL2Norm
# variable = src_resid
# execute_on = nonlinear
# [../]
# [./diffus_resid_post]
# type = NodalL2Norm
# variable = diffus_resid
# execute_on = nonlinear
# [../]
# [./bc_resid_post]
# type = NodalL2Norm
# variable = bc_resid
# execute_on = nonlinear
# [../]
# [./tot_resid_post]
# type = NodalL2Norm
# variable = tot_resid
# execute_on = nonlinear
# [../]
# [./group1diff]
# type = ElementL2Diff
# variable = group1
# execute_on = 'linear timestep_end'
# use_displaced_mesh = false
# [../]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/publication_level_cases/manuBench/nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = 900
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-1/full-coupling-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = vel_x
vvel = vel_y
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[vel_x]
family = LAGRANGE
order = FIRST
[]
[vel_y]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[AuxKernels]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
initial_eigenvalue = 0.99600
nl_abs_tol = 1e-11
free_power_iterations = 2
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[max_temp]
type = NodalExtremeValue
value_type = max
variable = temp
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = TIMESTEP_END
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/critical_test_nts_only.i)
reactor_height=162.56
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 'reactor'
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/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/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/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/060717_dimension_testing/one_group_nts_only.i)
[GlobalParams]
num_groups = 1
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1'
temperature = 972
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_one_group_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_one_group_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
file_base = ''
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/single_msre_channel_velocity_heat_nts/unit-cell-nts-eigenvalue.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
width = 3.048
height = 1.016
length = 162.56
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = msre_squares.msh
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# outlet_boundaries = 'fuel_top'
# u_func = vel_x_func
# v_func = vel_y_func
# w_func = vel_z_func
# constant_velocity_values = false
# nt_exp_form = false
# family = MONOMIAL
# order = CONSTANT
# # jac_test = true
# []
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# variable = group1
# group_number = 1
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
# [./delayed_group1]
# type = DelayedNeutronSource
# variable = group1
# [../]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# [./time_group2]
# type = NtTimeDerivative
# variable = group2
# group_number = 2
# [../]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
# boundary = 'fuel_bottom moderator_bottoms'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moderator_bottoms moderator_tops'
# boundary = 'fuel_bottom moderator_bottoms'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[]
[]
[ICs]
[group1]
type = FunctionIC
variable = group1
function = nt_ic
[]
[group2]
type = FunctionIC
variable = group2
function = nt_ic
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/2021-cnrs-benchmark/phase-0/temperature.i)
# Step 0.3: Temperature input file
# Requires neutron fluxes from Step 0.2
density = .002 # kg cm-3
cp = 3075 # J kg-1 K-1, 6.15 / 2.0e-3
k = .005 # W cm-1 K-1
gamma = 1 # W cm-3 K-1, Volumetric heat transfer coefficient
viscosity = .5 # dynamic viscosity, mu = nu * rho, kg cm-1 s-1
alpha = 1 # INS SUPG and PSPG stabilization parameter
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
group_fluxes = 'group1 group2 group3 group4 group5 group6'
sss2_input = true
integrate_p_by_parts = true
[]
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[pin]
type = ExtraNodesetGenerator
input = square
new_boundary = 'pinned_node'
coord = '200 200'
[]
[]
[Problem]
type = FEProblem
[]
[Variables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[vel]
family = LAGRANGE_VEC
order = FIRST
[]
[p]
family = LAGRANGE
order = FIRST
[]
[]
[AuxVariables]
[group1]
family = LAGRANGE
order = FIRST
[]
[group2]
family = LAGRANGE
order = FIRST
[]
[group3]
family = LAGRANGE
order = FIRST
[]
[group4]
family = LAGRANGE
order = FIRST
[]
[group5]
family = LAGRANGE
order = FIRST
[]
[group6]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[UserObjects]
[fluxes]
type = SolutionUserObject
mesh = './nts_exodus.e'
system_variables = 'group1 group2 group3 group4 group5 group6'
timestep = LATEST
execute_on = INITIAL
[]
[]
[Kernels]
# Incompressible Navier-Stokes
[vel_mass]
type = INSADMass
variable = p
[]
[vel_pspg]
type = INSADMassPSPG
variable = p
rho_name = 'ad_rho'
[]
[vel_advection]
type = INSADMomentumAdvection
variable = vel
[]
[vel_viscous]
type = INSADMomentumViscous
variable = vel
mu_name = 'ad_mu'
[]
[vel_pressure]
type = INSADMomentumPressure
variable = vel
pressure = p
[]
[vel_supg]
type = INSADMomentumSUPG
variable = vel
velocity = vel
[]
# Temperature
[temp_source]
type = INSADEnergySource
variable = temp
source_variable = heat
[]
[temp_advection]
type = INSADEnergyAdvection
variable = temp
[]
[temp_conduction]
type = ADHeatConduction
variable = temp
thermal_conductivity = 'ad_k'
[]
[temp_supg]
type = INSADEnergySUPG
variable = temp
velocity = vel
[]
[temp_sink]
type = INSADEnergyAmbientConvection
variable = temp
alpha = ${gamma}
T_ambient = 900
[]
[]
[AuxKernels]
[group1]
type = SolutionAux
variable = group1
from_variable = group1
solution = fluxes
[]
[group2]
type = SolutionAux
variable = group2
from_variable = group2
solution = fluxes
[]
[group3]
type = SolutionAux
variable = group3
from_variable = group3
solution = fluxes
[]
[group4]
type = SolutionAux
variable = group4
from_variable = group4
solution = fluxes
[]
[group5]
type = SolutionAux
variable = group5
from_variable = group5
solution = fluxes
[]
[group6]
type = SolutionAux
variable = group6
from_variable = group6
solution = fluxes
[]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = 1e7
power = 1e7
[]
[]
[ICs]
[velocity]
type = VectorConstantIC
x_value = 1e-15
y_value = 1e-15
variable = vel
[]
[]
[BCs]
[no_slip]
type = VectorDirichletBC
variable = vel
boundary = 'bottom left right'
values = '0 0 0'
[]
[lid]
type = VectorDirichletBC
variable = vel
boundary = 'top'
values = '50 0 0'
[]
[pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
prop_names = 'k rho cp'
prop_values = '${k} ${density} ${cp}'
temperature = 900
[]
[ad_mat]
type = ADGenericConstantMaterial
prop_names = 'ad_k ad_rho ad_cp ad_mu'
prop_values = '${k} ${density} ${cp} ${viscosity}'
[]
[ins_mat]
type = INSADStabilized3Eqn
k_name = 'ad_k'
rho_name = 'ad_rho'
cp_name = 'ad_cp'
mu_name = 'ad_mu'
alpha = ${alpha}
velocity = vel
pressure = p
temperature = temp
[]
[]
[Executioner]
type = Steady
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'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[aa]
type = LineValueSampler
variable = 'temp'
start_point = '0 100 0'
end_point = '200 100 0'
num_points = 201
sort_by = x
execute_on = TIMESTEP_END
outputs = 'csv'
[]
[bb]
type = LineValueSampler
variable = 'temp'
start_point = '100 0 0'
end_point = '100 200 0'
num_points = 201
sort_by = y
execute_on = TIMESTEP_END
outputs = 'csv'
[]
[]
[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/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
[../]
[]
(tests/pre/sub.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
global_temperature = 922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
temperature = ${global_temperature}
group_fluxes = ''
sss2_input = false
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 14
xmax = 150
elem_type = EDGE2
[]
[Precursors]
[core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = true
inlet_boundaries = 'left'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
num_groups = 2
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Transient
end_time = 400
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_max_its = 20
l_max_its = 50
dtmin = 1e-2
dtmax = 5
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-2
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/coupled/coupled_eigenvalue.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Problem]
type = EigenProblem
bx_norm = fiss_neutrons
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
pre_blocks = 'fuel'
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
transient = false
eigen = true
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_converted_to_serpent/serpent_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
l_max_its = 100
eigen_tol = 1e-7
free_power_iterations = 2
normalization = powernorm
normal_factor = 1e7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'coupled_eigenvalue'
[]
[]
(problems/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/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
# [../]
# []
(tests/materials/gmm_linear.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
account_delayed = false
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Nt]
var_name_base = group
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_fuel_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
nl_abs_tol = 1e-12
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[fiss_neutrons]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/rodded2D/rodded.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[../]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[./rodPosition]
family = SCALAR
order = FIRST
initial_condition = 0.0
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[../]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[ScalarKernels]
[./tdRodPos]
type = ODETimeDerivative
variable = rodPosition
[../]
[./rodposForce]
type = ParsedODEKernel
function = 'rodPosition - 100'
variable = rodPosition
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[./cRod]
type = RoddedMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = rodPosition
absorb_factor = 1e6 # how much more absorbing than usual in absorbing region?
[../]
[./rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 0.1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'timestep_end final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/picard/nts.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[]
[AuxVariables]
[./temp]
[../]
[./pre1]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre2]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre3]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre4]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre5]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[./pre6]
family = MONOMIAL
order = CONSTANT
block = 'fuel'
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
picard_max_its = 10
picard_rel_tol = 1e-7
picard_abs_tol = 1e-10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./temp_pres]
type = TransientMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = 'temp.i'
[../]
[]
[Transfers]
[./temp_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = temp
variable = temp
[../]
[./pre1_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre1
variable = pre1
[../]
[./pre2_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre2
variable = pre2
[../]
[./pre3_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre3
variable = pre3
[../]
[./pre4_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre4
variable = pre4
[../]
[./pre5_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre5
variable = pre5
[../]
[./pre6_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'temp_pres'
source_variable = pre6
variable = pre6
[../]
[./group1_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp_pres'
source_variable = group1
variable = group1
[../]
[./group2_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'temp_pres'
source_variable = group2
variable = group2
[../]
[]
(problems/060717_dimension_testing/test_case.i)
flow_velocity=1
nt_scale = ${/ 1E0 1.6E-13}
ini_temp=1
diri_temp=1
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = false
group_fluxes = 'group1'
temperature = temp
sss2_input = false
account_delayed = false
[]
[Mesh]
type = GeneratedMesh
nx = 10
ny = 10
dim = 2
xmax = 2.42 # Bessel zero is 2.405
ymax = 3.149
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1
[../]
[./temp]
initial_condition = ${ini_temp}
# order = CONSTANT
# family = MONOMIAL
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
[../]
[]
# [DGKernels]
# [./temp]
# type = DGConvection
# variable = temp
# velocity = '0 ${flow_velocity} 0'
# [../]
# []
[BCs]
# [./vacuum_group1]
# type = VacuumConcBC
# boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
# variable = group1
# [../]
[./group1]
type = DirichletBC
value = 0
boundary = 'top right bottom'
variable = 'group1'
[../]
[./temp_diri_cg]
boundary = 'bottom right'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
# [./temp_advection_inlet]
# boundary = 'bottom'
# type = TemperatureInflowBC
# velocity = '0 ${flow_velocity} 0'
# variable = temp
# inlet_conc = 1
# [../]
[./temp_advection_outlet]
boundary = 'top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/dummy_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.1 1 1' # Robertson MSRE technical report @ 922 K
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
file_base = ''
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/publication_level_cases/LOSCA/HXFail/sub.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
use_exp_form = false
group_fluxes = ''
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
# account_delayed = true
[]
[Mesh]
file = '../sub.e'
[]
[Variables]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
family = MONOMIAL
order = CONSTANT
[../]
[]
[Precursors]
[./core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
init_from_file = true
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
# [./temp_source_fuel]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./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 = '${flow_velocity} 0 0'
# variable = temp
# [../]
[]
[DGKernels]
[./temp_adv]
type = DGTemperatureAdvection
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[DiracKernels]
[./heat_exchanger]
type = DiracHX
variable = temp
point = '250 0 0'
power = 4e3
[../]
[]
[BCs]
[./fuel_bottoms_looped]
boundary = 'left'
type = PostprocessorTemperatureInflowBC
postprocessor = coreEndTemp
variable = temp
uu = ${flow_velocity}
[../]
# [./diri]
# boundary = 'left'
# type = DirichletBC
# variable = temp
# value = 930
# [../]
[./temp_advection_outlet]
boundary = 'right'
type = TemperatureOutflowBC
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[Functions]
[./heatRemovalFcn]
type = ParsedFunction
value = '4e3 * ( 1 - tanh( (t-5) ) )' # start losing cooling at t=5s
[../]
[]
[Controls]
[./hxFuncCtrl]
type = RealFunctionControl
parameter = '*/*/power'
function = 'heatRemovalFcn'
execute_on = 'timestep_begin'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
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
[../]
[]
[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'
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]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'exodus console'
[../]
[./loopEndTemp]
type = SideAverageValue
variable = temp
boundary = 'right'
[../]
[./coreEndTemp]
type = Receiver
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'sub'
execute_on = 'timestep_begin'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/picard/temp.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]
[./temp]
initial_condition = ${ini_temp}
[../]
[]
[AuxVariables]
[./group1]
[../]
[./group2]
[../]
[./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]
# 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]
[./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-5
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]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./pres]
type = TransientMultiApp
app_type = MoltresApp
positions = '0 0 0'
input_files = 'pres.i'
[../]
[]
[Transfers]
[./temp_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'pres'
source_variable = temp
variable = temp
[../]
[./pre1_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre1
variable = pre1
[../]
[./pre2_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre2
variable = pre2
[../]
[./pre3_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre3
variable = pre3
[../]
[./pre4_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre4
variable = pre4
[../]
[./pre5_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre5
variable = pre5
[../]
[./pre6_from_sub]
type = MultiAppCopyTransfer
direction = from_multiapp
multi_app = 'pres'
source_variable = pre6
variable = pre6
[../]
[./group1_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'pres'
source_variable = group1
variable = group1
[../]
[./group2_to_sub]
type = MultiAppCopyTransfer
direction = to_multiapp
multi_app = 'pres'
source_variable = group2
variable = group2
[../]
[]
(problems/msr-couple-temp-nts-2x2.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[../]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
[../]
[./group2]
order = FIRST
family = LAGRANGE
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
# Neutronics
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[../]
[./fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[../]
[./fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[../]
# Temperature
[./temp_cond]
type = HeatConduction
diffusion_coefficient_name = k
diffusion_coefficient_dT_name = d_k_d_temp
use_displaced_mesh = false
variable = temp
[../]
[./temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
# MSRE full power = 10 MW; core volume 90 ft3
power = 7000 # Watts
variable = temp
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k d_k_d_temp'
prop_values = '.0123 0' # Cammi 2011 at 908 K
[../]
[./moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k d_k_d_temp'
prop_values = '.312 0' # Cammi 2011 at 908 K
[../]
[]
[BCs]
[./temp]
boundary = boundary
type = DirichletBC
variable = temp
value = 900
[../]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
type = NonlinearEigen
bx_norm = 'bnorm'
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-50
k0 = 1.0
output_after_power_iterations = true
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[../]
[./tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[../]
[]
[Outputs]
[./out]
type = Exodus
execute_on = 'timestep_end'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/meigen.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'moder_sides fuel_bottoms fuel_tops moder_bottoms moder_tops'
create_temperature_var = false
eigen = true
[]
#[Variables]
# [./group1]
# order = FIRST
# family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
# [../]
# [./group2]
# order = FIRST
# family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
# [../]
# [./temp]
# initial_condition = ${ini_temp}
# scaling = 1e-4
# [../]
#[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
#petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu ' #1 preonly 1e-3'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
#[Postprocessors]
# [./group1_current]
# type = IntegralNewVariablePostprocessor
# variable = group1
# outputs = 'console csv'
# [../]
# [./group1_old]
# type = IntegralOldVariablePostprocessor
# variable = group1
# outputs = 'console csv'
# [../]
# [./multiplication]
# type = DivisionPostprocessor
# value1 = group1_current
# value2 = group1_old
# outputs = 'console csv'
# [../]
# [./temp_fuel]
# type = ElementAverageValue
# variable = temp
# block = 'fuel'
# outputs = 'csv console'
# [../]
# [./temp_moder]
# type = ElementAverageValue
# variable = temp
# block = 'moder'
# outputs = 'csv console'
# [../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'console'
# # block = 'fuel'
# # [../]
#[]
[Outputs]
perf_graph = true
print_linear_residuals = true
# csv = true
[out]
type = Exodus
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/2021-cnrs-benchmark/phase-1/buoyancy-nts.i)
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 200
ny = 200
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = vel_x
vvel = vel_y
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[AuxVariables]
[temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
[]
[vel_x]
family = LAGRANGE
order = FIRST
[]
[vel_y]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[AuxKernels]
[heat_source]
type = FissionHeatSourceAux
variable = heat
tot_fission_heat = powernorm
power = 1e7
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
resid_vs_jac_scaling_param = .1
initial_eigenvalue = 0.99600
nl_abs_tol = 1e-11
free_power_iterations = 2
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[pre_elemental]
type = ElementValueSampler
variable = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
sort_by = id
execute_on = TIMESTEP_END
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(tests/decay_heat/decay_heat.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
group_fluxes = '1e9 1e9'
use_exp_form = false
decay_heat_fractions = '.01 .01 .01'
decay_heat_constants = '1 .1 .01'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured_smaller.msh'
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[heat1]
order = CONSTANT
family = MONOMIAL
block = 'fuel'
[]
[heat2]
order = CONSTANT
family = MONOMIAL
block = 'fuel'
[]
[heat3]
order = CONSTANT
family = MONOMIAL
block = 'fuel'
[]
[]
[Kernels]
[decay_heat1_source]
type = HeatPrecursorSource
variable = heat1
decay_heat_group_number = 1
block = 'fuel'
[]
[decay_heat1_decay]
type = HeatPrecursorDecay
variable = heat1
decay_heat_group_number = 1
block = 'fuel'
[]
[decay_heat2_source]
type = HeatPrecursorSource
variable = heat2
decay_heat_group_number = 2
block = 'fuel'
[]
[decay_heat2_decay]
type = HeatPrecursorDecay
variable = heat2
decay_heat_group_number = 2
block = 'fuel'
[]
[decay_heat3_source]
type = HeatPrecursorSource
variable = heat3
decay_heat_group_number = 3
block = 'fuel'
[]
[decay_heat3_decay]
type = HeatPrecursorDecay
variable = heat3
decay_heat_group_number = 3
block = 'fuel'
[]
[]
[DGKernels]
[decay_heat1_convection]
type = DGConvection
variable = heat1
velocity = '0 ${flow_velocity} 0'
block = 'fuel'
[]
[decay_heat2_convection]
type = DGConvection
variable = heat2
velocity = '0 ${flow_velocity} 0'
block = 'fuel'
[]
[decay_heat3_convection]
type = DGConvection
variable = heat3
velocity = '0 ${flow_velocity} 0'
block = 'fuel'
[]
[]
[BCs]
[decay_heat1_outflow]
type = OutflowBC
variable = heat1
velocity = '0 ${flow_velocity} 0'
boundary = 'fuel_tops'
[]
[decay_heat2_outflow]
type = OutflowBC
variable = heat2
velocity = '0 ${flow_velocity} 0'
boundary = 'fuel_tops'
[]
[decay_heat3_outflow]
type = OutflowBC
variable = heat3
velocity = '0 ${flow_velocity} 0'
boundary = 'fuel_tops'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Steady
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
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-1022.i)
global_temperature = 1022
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[]
[Mesh]
file = 'inverted_29x29_h_133.msh'
# file = 'inverted_3x3_h_15.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'moder_bottoms moder_tops fuel_bottoms fuel_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/small.i)
reactor_height=10
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
# group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder_small.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 'reactor'
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# uniform_refine = 1
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 100000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
# off_diag_row = 'temp pre1 pre2 pre3 pre4 pre5 pre6 temp pre1 pre2 pre3 pre4 pre5 pre6'
# off_diag_column = 'group1 group1 group1 group1 group1 group1 group1 group2 group2 group2 group2 group2 group2 group2'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[exodus]
type = Exodus
file_base = ''
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
# [Adaptivity]
# marker = errorfrac_temp
# max_h_level = 1
# [./Indicators]
# [./error_temp]
# type = GradientJumpIndicator
# variable = temp
# outputs = none
# [../]
# [../]
# [./Markers]
# [./errorfrac_temp]
# type = ErrorFractionMarker
# refine = 0.8
# coarsen = 0.1
# indicator = error_temp
# outputs = none
# [../]
# [../]
# []
(problems/070517_4group/eigen/eigen.i)
ini_temp=922
diri_temp=922
nt_scale=1e13
temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
sss2_input = false
account_delayed = false
temperature = 922
temp = 922
[]
flow_velocity = 21.7
[Mesh]
file = '../../033117_nts_temp_pre_parsed_mat/3d_msre_29x29_136.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'moder_sides fuel_bottoms fuel_tops moder_bottoms moder_tops'
create_temperature_var = false
eigen = true
[]
#[Variables]
# [./group1]
# [../]
# [./group2]
# [../]
# [./group3]
# [../]
# [./group4]
# [../]
# #[./temp]
# # initial_condition = ${ini_temp}
# # scaling = 1e-4
# #[../]
#[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[../]
[./vacuum_group3]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group3
[../]
[./vacuum_group4]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group4
[../]
#[./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms moder_sides'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
#[../]
#[./temp_advection_outlet]
# boundary = 'fuel_tops'
# type = TemperatureOutflowBC
# variable = temp
# velocity = '0 0 ${flow_velocity}'
#[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root ='../../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
block = 'moder'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[../]
[./group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[../]
[./group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[../]
[./group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[../]
[./group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/LOFA/steady/auto_diff_rho.i)
# walk the reactor into steady state with an attached primary loop
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '../2d_lattice_structured.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[PrecursorKernel]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./temp_postpr_inlet]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
variable = temp
postprocessor = inlet_mean_temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
#[Materials]
# [./fuel]
# type = GenericMoltresMaterial
# property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
# interp_type = 'spline'
# block = 'fuel'
# [../]
# [./rho_fuel]
# type = DerivativeParsedMaterial
# f_name = rho
# function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
# args = 'temp'
# derivative_order = 1
# block = 'fuel'
# [../]
# # fuel cp function
# [./cp_fuel]
# type = DerivativeParsedMaterial
# f_name = cp
# function = '1967 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'fuel'
# [../]
# # fuel k function
# [./k_fuel]
# type = DerivativeParsedMaterial
# f_name = k
# function = '0.0553 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'fuel'
# [../]
# [./moder]
# type = GenericMoltresMaterial
# property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
# interp_type = 'spline'
# block = 'moder'
# [../]
# [./rho_moder]
# type = DerivativeParsedMaterial
# f_name = rho
# function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
# args = 'temp'
# derivative_order = 1
# block = 'moder'
# [../]
# # moder cp fcn
# [./cp_moder]
# type = DerivativeParsedMaterial
# f_name = cp
# function = '1760 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'moder'
# [../]
# # moder k fcn
# [./k_moder]
# type = DerivativeParsedMaterial
# f_name = k
# function = '.312 + 1e-16 * temp'
# args = 'temp'
# derivative_order = 1
# block = 'moder'
# [../]
#[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
dtmax = 100
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
#multiapp
[./inlet_mean_temp]
type = Receiver
execute_on = 'timestep_begin'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = 'initial timestep_begin'
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = average
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/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/021417_MSRE_materials/CG_no_temp_eigen.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = true
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/publication_level_cases/manuBench/manubox.i)
library_path=/home/gavin/projects/moose/modules/navier_stokes/lib/
[GlobalParams]
# neutronics
num_groups=6
num_precursor_groups=8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
account_delayed = true
# fluids
gravity = '0 -9.81 0'
pspg = true
convective_term = true
integrate_p_by_parts = true
laplace = true
u = vel_x
v = vel_y
p = p
alpha = 1e-6 # stabilisation parameter
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[MeshModifiers]
[./corner_node]
type = AddExtraNodeset
new_boundary = 'pinned_node'
nodes = '0'
[../]
[]
[Variables]
# velocities
[./vel_x]
family = LAGRANGE
order = FIRST
[../]
[./vel_y]
family = LAGRANGE
order = FIRST
[../]
# pressure
[./p]
family = LAGRANGE
order = FIRST
[../]
# temperature
[./temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
scaling = 1e-4
[../]
[]
# nt -> neutron
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
[]
[Precursors]
[./preblock]
var_name_base = pre
# block = 'fuel'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
outlet_boundaries = ''
uvel = vel_x
vvel = vel_y
transient = false
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
[../]
[./tempAdvectionDiffusion]
type = INSTemperature
variable = temp
u = vel_x
v = vel_y
[../]
[./buoyancy_y]
type = INSBoussinesqBodyForce
variable = vel_y
dT = deltaT
component = 1
temperature = temp
[../]
[./heatRemoval]
type = ConvectiveHeatExchanger
variable = temp
tref = 900.0
htc = 1.0
[../]
[]
[BCs]
[./ux_dirichlet]
type = DirichletBC
boundary = 'left right bottom top'
variable = vel_x
value = 0
[../]
[./uy_dirichlet]
type = DirichletBC
boundary = 'left right bottom top'
variable = vel_y
value = 0
[../]
[./p_pin]
type=DirichletBC
boundary = 'pinned_node'
variable = p
value = 0
[../]
[]
[Materials]
# alpha = coefficient of thermal expansion where rho = rho0 -alpha * rho0 * delta T
# Dr. Aufiero uses nu rather than mu, (kinematic rather than absolute viscosity)
# likewise, \rho c_p is given rather than separate \rho, c_p
# accordingly, we let \rho = 1 to obtain equivalent results
# also, Manu gives a length expansion coefficient. Boussinesq approximations
# typically use an expansion coefficient with units 1/K, but for mass instead.
# The relation between the two is alpha = -3 beta, if linearized.
# Also, had to use Pr = mu * cp / k
[./const]
type = GenericConstantMaterial
prop_names = 'mu rho alpha k cp'
prop_values = '0.025 1.0 6.0e-4 0.5 6.15e6'
[../]
[./fuelneutronicproperties]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none' # 'spline'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'PJFNK'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
# fission power normalization:
normalization = powernorm
normal_factor = 1e9 # watts
# power iteration options
xdiff = 'group1diff'
bx_norm = 'bnorm'
pfactor = 1e-2
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[../]
[]
[AuxVariables]
[./deltaT]
type = ConstantDifferenceAux
variable = deltaT
comparevar = temp
constant = 900
[../]
[]
[AuxKernels]
[./deltaTCalc]
type = ConstantDifferenceAux
variable = deltaT
compareVar = temp
constant = 900
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-two-mat-multiple-pin.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-msr-more-pins.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/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/twod_control_rod_yank/rodded.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[../]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[./rodPosition]
family = SCALAR
order = FIRST
initial_condition = 0.0
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[../]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[ScalarKernels]
[./tdRodPos]
type = ODETimeDerivative
variable = rodPosition
[../]
[./rodposForce]
type = ParsedODEKernel
function = 'rodPosition - 100'
variable = rodPosition
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[./cRod]
type = RoddedMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = rodPosition
absorb_factor = 1e6 # how much more absorbing than usual in absorbing region?
[../]
[./rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
[./TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 0.1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[./limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'timestep_end final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-two-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_two_group_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/gen-mesh-one-material.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 6
ymax = 6
nx = 15
ny = 15
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 0
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'left right top bottom'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/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/publication_level_cases/manuBench/manuboxNoStokes.i)
library_path=/home/gavin/projects/moose/modules/navier_stokes/lib/
[GlobalParams]
# neutronics
num_groups=6
num_precursor_groups=8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 20
ny = 20
[]
[Variables]
# temperature
[./temp]
family = LAGRANGE
order = FIRST
initial_condition = 900
scaling = 1e-4
[../]
[]
# nt -> neutron
[Nt]
var_name_base = group
vacuum_boundaries = 'top bottom left right'
create_temperature_var = false
eigen = true
scaling = 1e-10
[]
[Precursors]
[./preblock]
var_name_base = pre
# block = 'fuel'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
outlet_boundaries = ''
transient = false
u_func = 0.0
v_func = 0.0
w_func = 0.0
[../]
[]
[Kernels]
[./heating]
type = TransientFissionHeatSource
variable = temp
group_fluxes = 'group1 group2 group3 group4 group5 group6'
[../]
[./heatRemoval]
type = ConvectiveHeatExchanger
variable = temp
tref = 900.0
htc = 1.0
[../]
[]
[BCs]
[]
[Materials]
# alpha = coefficient of thermal expansion where rho = rho0 -alpha * rho0 * delta T
# Dr. Aufiero uses nu rather than mu, (kinematic rather than absolute viscosity)
# likewise, \rho c_p is given rather than separate \rho, c_p
# accordingly, we let \rho = 1 to obtain equivalent results
# also, Manu gives a length expansion coefficient. Boussinesq approximations
# typically use an expansion coefficient with units 1/K, but for mass instead.
# The relation between the two is alpha = -3 beta, if linearized.
# Also, had to use Pr = mu * cp / k
[./const]
type = GenericConstantMaterial
prop_names = 'mu rho alpha k cp'
prop_values = '0.025 1.0 6.0e-4 0.5 6.15e6'
[../]
[./fuelneutronicproperties]
type = GenericMoltresMaterial
property_tables_root = './groupconstants/'
interp_type = 'none' # 'spline'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'PJFNK'
[../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
# fission power normalization:
normalization = powernorm
normal_factor = 1e9 # watts
# power iteration options
xdiff = 'group1diff'
bx_norm = 'bnorm'
pfactor = 1e-2
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 100
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[../]
[./group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[../]
[./powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[../]
[]
[AuxVariables]
[./deltaT]
type = ConstantDifferenceAux
variable = deltaT
comparevar = temp
constant = 900
[../]
[]
[AuxKernels]
[./deltaTCalc]
type = ConstantDifferenceAux
variable = deltaT
compareVar = temp
constant = 900
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/rodMatchSerpentWorth/adjustAbsorb/rodded.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_rodded_lattice.msh'
[]
[Problem]
coord_type = RZ
kernel_coverage_check = false
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall cRod_top cRod_bot'
create_temperature_var = false
eigen = true
[]
[Kernels]
[temp_source_fuel]
type = FissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
power = 7.5e6
tot_fissions = tot_fissions
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'tot_fissions'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = DirichletBC
variable = temp
value = ${diri_temp}
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gfuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[]
[cRod]
type = RoddedMaterial
property_tables_root = '../../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4gmoder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'cRod'
rodDimension = 'y'
rodPosition = 23.622
absorb_factor = 14.22 # how much more absorbing than usual in absorbing region?
[]
[rho_crod]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'cRod'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'asm lu NONZERO 1e-10'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
execute_on = 'final'
file_base = 'out'
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-should-be-crit-one-group.i)
global_temperature = 922
[GlobalParams]
num_groups = 1
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 73.86
ymax = 180
nx = 100
ny = 100
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'right top bottom'
variable = group1
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/homo_critical_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(tests/pre/pre.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
group_fluxes = '1 1'
temperature = ${global_temperature}
sss2_input = false
transient = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured_smaller.msh'
[]
[Problem]
kernel_coverage_check = false
[]
[Precursors]
[pres]
var_name_base = pre
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
block = 'fuel'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
[]
[]
[Executioner]
type = Steady
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
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
(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/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[../]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/CG_temp.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = false
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[Materials]
[./fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'fuel_bottoms moder_bottoms fuel_sides'
type = DirichletBC
variable = temp
value = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/LOSCA/HXFailure/sub.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 0
num_precursor_groups = 6
use_exp_form = false
group_fluxes = ''
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
# account_delayed = true
[]
[Mesh]
file = '../sub.e'
[]
[Variables]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
family = MONOMIAL
order = CONSTANT
[../]
[]
[Precursors]
[./core]
var_name_base = pre
outlet_boundaries = 'right'
u_def = ${flow_velocity}
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
init_from_file = true
loop_precursors = true
multi_app = loopApp
is_loopapp = true
inlet_boundaries = left
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
# [./temp_source_fuel]
# type = TransientFissionHeatSource
# variable = temp
# nt_scale=${nt_scale}
# [../]
# [./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 = '${flow_velocity} 0 0'
# variable = temp
# [../]
[]
[DGKernels]
[./temp_adv]
type = DGTemperatureAdvection
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[DiracKernels]
[./heat_exchanger]
type = DiracHX
variable = temp
point = '250 0 0'
power = 4e3
[../]
[]
[BCs]
[./fuel_bottoms_looped]
boundary = 'left'
type = PostprocessorTemperatureInflowBC
postprocessor = coreEndTemp
variable = temp
uu = ${flow_velocity}
[../]
# [./diri]
# boundary = 'left'
# type = DirichletBC
# variable = temp
# value = 930
# [../]
[./temp_advection_outlet]
boundary = 'right'
type = TemperatureOutflowBC
variable = temp
velocity = '${flow_velocity} 0 0'
[../]
[]
[Functions]
[./heatRemovalFcn]
type = ParsedFunction
value = '4e3 * ( 1 - tanh( (t-5) ) )' # start losing cooling at t=5s
[../]
[]
[Controls]
[./hxFuncCtrl]
type = RealFunctionControl
parameter = '*/*/power'
function = 'heatRemovalFcn'
execute_on = 'timestep_begin'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
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
[../]
[]
[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'
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]
[./temp_fuel]
type = ElementAverageValue
variable = temp
outputs = 'exodus console'
[../]
[./loopEndTemp]
type = SideAverageValue
variable = temp
boundary = 'right'
[../]
[./coreEndTemp]
type = Receiver
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'sub'
execute_on = 'timestep_begin'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-2/transient.i)
density = .002 # kg cm-3
cp = 3075 # J kg-1 K-1, 6.15 / 2.0e-3
k = .005 # W cm-1 K-1
gamma = 1 # W cm-3 K-1, Volumetric heat transfer coefficient
viscosity = .5 # dynamic viscosity
alpha = 1 # SUPG stabilization parameter
t_alpha = 2e-4 # K-1, Thermal expansion coefficient
# Change "freq" and "dt" values for different perturbation frequencies
freq = 0.8 # Perturbation frequency = 0.8 Hz
dt = 0.00625 # Timestep size = 1 / freq / 200 = 0.00625 s
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = temp
sss2_input = true
account_delayed = true
integrate_p_by_parts = true
eigenvalue_scaling = 0.9927821802
## Use the eigenvalue scaling factor below if running on a 40x40 mesh
# eigenvalue_scaling = 0.9926551482
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = '../phase-1/full-coupling_out_ntsApp0_exodus.e'
use_for_exodus_restart = true
[]
[corner_node]
type = ExtraNodesetGenerator
input = file_mesh
new_boundary = 'pinned_node'
coord = '200 200'
[]
[]
[Problem]
type = FEProblem
[]
[Variables]
[temp]
family = LAGRANGE
order = FIRST
[]
[vel]
family = LAGRANGE_VEC
order = FIRST
[]
[p]
family = LAGRANGE
order = FIRST
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
init_nts_from_file = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = false
uvel = velx
vvel = vely
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = true
init_from_file = true
[]
[]
[AuxVariables]
[velx]
family = LAGRANGE
order = FIRST
[]
[vely]
family = LAGRANGE
order = FIRST
[]
[heat]
family = MONOMIAL
order = FIRST
[]
[]
[Kernels]
[mass]
type = INSADMass
variable = p
[]
[mass_pspg]
type = INSADMassPSPG
variable = p
[]
[momentum_time]
type = INSADMomentumTimeDerivative
variable = vel
[]
[momentum_advection]
type = INSADMomentumAdvection
variable = vel
[]
[momentum_viscous]
type = INSADMomentumViscous
variable = vel
[]
[momentum_pressure]
type = INSADMomentumPressure
variable = vel
pressure = p
[]
[momentum_supg]
type = INSADMomentumSUPG
variable = vel
velocity = vel
[]
[buoyancy]
type = INSADBoussinesqBodyForce
variable = vel
# gravity vector, cm s-2
gravity = '0 -981 0'
alpha_name = 't_alpha'
ref_temp = 'temp_ref'
[]
[gravity]
type = INSADGravityForce
variable = vel
# gravity vector, cm s-2
gravity = '0 -981 0'
[]
[temp_time]
type = INSADHeatConductionTimeDerivative
variable = temp
[]
[temp_source]
type = INSADEnergySource
variable = temp
source_variable = heat
[]
[temp_advection]
type = INSADEnergyAdvection
variable = temp
[]
[temp_conduction]
type = ADHeatConduction
variable = temp
thermal_conductivity = 'k'
[]
[temp_supg]
type = INSADEnergySUPG
variable = temp
velocity = vel
[]
[temp_sink]
type = ConvectiveHeatExchanger
variable = temp
htc = ${gamma}
tref = 900
[]
[]
[AuxKernels]
[vel_x]
type = VectorVariableComponentAux
variable = velx
vector_variable = vel
component = 'x'
[]
[vel_y]
type = VectorVariableComponentAux
variable = vely
vector_variable = vel
component = 'y'
[]
[heat_source]
type = FissionHeatSourceTransientAux
variable = heat
[]
[]
[UserObjects]
[initial_th]
type = SolutionUserObject
mesh = '../phase-1/full-coupling_exodus.e'
system_variables = 'velx vely p temp heat'
timestep = LATEST
execute_on = INITIAL
[]
[]
[Controls]
[func_control]
type = RealFunctionControl
parameter = 'Kernels/temp_sink/htc'
function = func_alpha
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[func_alpha]
type = ParsedFunction
value = '1 + 0.1 * sin(2*pi*t*${freq})' # Perturbation frequency = 0.8Hz
[]
[velxf]
type = SolutionFunction
from_variable = velx
solution = initial_th
[]
[velyf]
type = SolutionFunction
from_variable = vely
solution = initial_th
[]
[pf]
type = SolutionFunction
from_variable = p
solution = initial_th
[]
[tempf]
type = SolutionFunction
from_variable = temp
solution = initial_th
[]
[heatf]
type = SolutionFunction
from_variable = heat
solution = initial_th
[]
[]
[ICs]
[vel_ic]
type = VectorFunctionIC
variable = vel
function_x = velxf
function_y = velyf
[]
[p_ic]
type = FunctionIC
variable = p
function = pf
[]
[temp_ic]
type = FunctionIC
variable = temp
function = tempf
[]
[heat_ic]
type = FunctionIC
variable = heat
function = heatf
[]
[]
[BCs]
[no_slip]
type = VectorDirichletBC
variable = vel
boundary = 'bottom left right'
values = '0 0 0'
[]
[lid]
type = VectorDirichletBC
variable = vel
boundary = 'top'
values = '50 0 0'
[]
[pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
prop_names = 'temp_ref'
prop_values = '900'
[]
[ad_mat]
type = ADGenericConstantMaterial
prop_names = 'k rho cp mu t_alpha'
prop_values = '${k} ${density} ${cp} ${viscosity} ${t_alpha}'
[]
[ins_temp]
type = INSADStabilized3Eqn
alpha = ${alpha}
velocity = vel
pressure = p
temperature = temp
[]
[]
[Executioner]
type = Transient
scheme = bdf2
num_steps = 5000
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = 'none'
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
scaling_group_variables = 'group1 group2 group3 group4 group5 group6; pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8; vel; p; temp'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-6
nl_max_its = 25
l_max_its = 400
l_tol = 1e-4
dt = ${dt}
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[memory]
type = MemoryUsage
execute_on = 'INITIAL TIMESTEP_END'
[]
[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
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[]
[VectorPostprocessors]
[]
[Outputs]
perf_graph = true
[exodus]
type = Exodus
interval = 20
[]
[csv]
type = CSV
append_restart = true
[]
[checkpoint]
type = Checkpoint
num_files = 3
interval = 20
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/gmsh-mesh-two-materials.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 10
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/2d-msr.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-6
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = 'boundary'
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/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
[]
(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
[]
(problems/022317_test_critical_neutronics_only_reactor/criticial_test_nts_only_rad_57.i)
reactor_height=162.56
global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
[../]
[Mesh]
file = 'cylinder_rad_57.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundaries'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 'reactor'
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/021417_MSRE_materials/mini_msre_cg_temp.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[Mesh]
file = 'mini_msre_cuboid.msh'
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = false
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[Materials]
[./fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_diri_cg]
boundary = 'fuel_bottoms moder_bottoms fuel_sides'
type = DirichletBC
variable = temp
value = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/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/3d_auto_diff_rho_restart.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_auto_diff_rho_out.e'
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_from_file_var = group1
initial_from_file_timestep = LATEST
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_from_file_var = group2
initial_from_file_timestep = LATEST
scaling = 1e4
[]
[temp]
initial_from_file_var = temp
initial_from_file_timestep = LATEST
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
init_from_file = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/021417_MSRE_materials/CG_no_temp_eigen_b1_gcs.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = true
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/B1_full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/B1_full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/single_msre_channel_velocity_heat_nts/nts-eigenvalue-msre-channel-dimensions.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
width = 3.048
height = 1.016
length = 162.56
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = single_channel_msre_dimensions.msh
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
# scaling = 1e4
[]
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# outlet_boundaries = 'fuel_top'
# u_func = vel_x_func
# v_func = vel_y_func
# w_func = vel_z_func
# constant_velocity_values = false
# nt_exp_form = false
# family = MONOMIAL
# order = CONSTANT
# # jac_test = true
# []
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# variable = group1
# group_number = 1
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
# [./delayed_group1]
# type = DelayedNeutronSource
# variable = group1
# [../]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# [./time_group2]
# type = NtTimeDerivative
# variable = group2
# group_number = 2
# [../]
[]
# [BCs]
# [./vacuum_group1]
# type = VacuumConcBC
# boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
# # boundary = 'fuel_bottom moderator_bottoms'
# variable = group1
# [../]
# [./vacuum_group2]
# type = VacuumConcBC
# boundary = 'fuel_bottom fuel_top moderator_bottoms moderator_tops'
# # boundary = 'fuel_bottom moderator_bottoms'
# variable = group2
# [../]
# []
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moderator'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 2.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
file_base = 'out'
[]
[Functions]
[nt_ic]
type = ParsedFunction
value = '10 * sin(pi * z / ${length})'
[]
[]
[ICs]
[group1]
type = FunctionIC
variable = group1
function = nt_ic
[]
[group2]
type = FunctionIC
variable = group2
function = nt_ic
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/2017_annals_pub_msre_compare/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 70.1675
H = 162.56
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/nts/nts.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]
coord_type = RZ
file = '2d_lattice_structured_smaller.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/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
[]
(problems/021417_MSRE_materials/Input.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
diri_temp=908
nt_scale=1e13
reactor_height=162.56
global_temperature=temp
# global_temperature=922
sigma_val=6
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
# u_def = 0
# v_def = 0
# w_def = ${flow_velocity}
[../]
[Mesh]
# file = 'msre_22x22_correct_vol_fraction.msh'
file = msre_cuboid_3x3.msh
[../]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'boundary'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = true
temperature = ${global_temperature}
# temperature_value = ${global_temperature}
dg_for_temperature = true
[]
# [Precursors]
# var_name_base = pre
# block = 'fuel'
# advection_boundaries = 'fuel_top fuel_bottom'
# family = MONOMIAL
# order = CONSTANT
# []
[Kernels]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[Materials]
[./fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[./moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[BCs]
[./temp_dirichlet_diffusion_inlet]
boundary = 'temp_diri_bnd'
type = DGFunctionDiffusionDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
function = 'diri_temp_func'
[../]
[./temp_advection_inlet]
boundary = 'temp_inflow_bnd'
type = TemperatureInflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
inlet_conc = ${diri_temp}
[../]
[./temp_advection_outlet]
boundary = 'temp_outflow_bnd'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
# [Problem]
# type = FEProblem
# coord_type = RZ
# [../]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type' # -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 preonly' # 31'
nl_max_its = 20
l_max_its = 10
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
[./out]
type = Exodus
execute_on = 'initial timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[./temp_all_ic_func]
type = FunctionIC
variable = temp
function = temp_ic_func
[../]
[]
[Functions]
[./temp_ic_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[./nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[../]
[./diri_temp_func]
type = ParsedFunction
value = '${diri_temp}'
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# # [./average_fission_heat]
# # type = AverageFissionHeat
# # nt_scale = ${nt_scale}
# # execute_on = 'linear nonlinear'
# # outputs = 'csv console'
# # block = 'fuel'
# # [../]
[]
(problems/msr-couple-temp-nts-2x2-10xPow.i)
[GlobalParams]
num_groups = 2
temperature = temp
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 20
[]
[Mesh]
file = '/home/lindsayad/gdrive/gmsh-scripts/msr-small.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
# scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
# Temperature
[temp_cond]
type = MatDiffusion
variable = temp
prop_name = 'k'
save_in = 'diffus_resid tot_resid'
[]
# [./temp_cond]
# type = HeatConduction
# diffusion_coefficient_name = k
# diffusion_coefficient_dT_name = d_k_d_temp
# use_displaced_mesh = false
# variable = temp
# [../]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
save_in = 'src_resid tot_resid'
[]
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[diffus_temp]
family = MONOMIAL
order = CONSTANT
[]
[diffus_resid]
family = LAGRANGE
order = FIRST
[]
[src_resid]
family = LAGRANGE
order = FIRST
[]
[bc_resid]
family = LAGRANGE
order = FIRST
[]
[tot_resid]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[diffus_temp]
type = MatDiffusionAux
variable = diffus_temp
diffuse_var = temp
prop_name = 'k'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.0123' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.0123 0' # Cammi 2011 at 908 K
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '/home/lindsayad/serpent/core/examples/serpent-input/msre/msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
prop_names = 'k'
prop_values = '.312' # Cammi 2011 at 908 K
# prop_names = 'k d_k_d_temp'
# prop_values = '.312 0' # Cammi 2011 at 908 K
[]
[]
[BCs]
[temp]
boundary = boundary
type = DirichletBC
variable = temp
value = 900
save_in = 'bc_resid tot_resid'
[]
# [./temp]
# boundary = boundary
# type = VacuumBC
# variable = temp
# [../]
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[src_resid_post]
type = NodalL2Norm
variable = src_resid
execute_on = nonlinear
[]
[diffus_resid_post]
type = NodalL2Norm
variable = diffus_resid
execute_on = nonlinear
[]
[bc_resid_post]
type = NodalL2Norm
variable = bc_resid
execute_on = nonlinear
[]
[tot_resid_post]
type = NodalL2Norm
variable = tot_resid
execute_on = nonlinear
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = ConstantIC
# variable = temp
# value = 900
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/analytic_exp_form_harsher_penalty.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = true
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = LinLogPenaltyDirichletBC
value = 0
penalty = 100
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda -sub_pc_factor_shift_type -sub_pc_factor_shift_amount'
petsc_options_value = 'asm lu 1 preonly 1e-3 NONZERO 1e-10'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/2017_annals_pub_msre_compare/4group.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 73
H = 162.56
[GlobalParams]
num_groups = 4
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_fuel_rod0_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../tutorial/step01_groupConstants/MSREProperties/msre_gentry_4g_moder_rod0_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-one-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 1
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[]
# [BCs]
# [./vacuum1]
# type = VacuumConcBC
# boundary = 'right top bottom'
# variable = group1
# [../]
# []
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2021-cnrs-benchmark/phase-0/nts.i)
# Step 0.2: Neutronics input file
[GlobalParams]
num_groups = 6
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4 group5 group6'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 50
## Use a 40-by-40 mesh instead if running on a less capable computer
# nx = 40
# ny = 40
xmin = 0
xmax = 200
ymin = 0
ymax = 200
elem_type = QUAD4
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'bottom left right top'
create_temperature_var = false
eigen = true
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = ''
constant_velocity_values = true
u_def = 0
v_def = 0
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = false
transient = false
eigen = true
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/cnrs-benchmark/benchmark_'
interp_type = 'linear'
[]
[]
[Executioner]
type = Eigenvalue
# fission power normalization settings
normalization = 'powernorm'
normal_factor = 1e7 # Watts, 1e9 / 100
# Tiberga et al. assumes the depth of their 2D domain is 1m.
# Tiberga et al. domain = 2m x 2m x 1m
# We divide the total power=1e9W by 100 because our length units are in cm.
# Our domain = 2m x 2m x 0.01m
initial_eigenvalue = 0.99600
free_power_iterations = 2
eigen_tol = 1e-7
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
## Use the settings below instead if running on computing cluster/supercomputer with a finer mesh
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
## Alternative PETSc settings if Hypre BoomerAMG is not installed
# petsc_options_iname = '-pc_type -sub_pc_type -ksp_gmres_restart -pc_asm_overlap -sub_pc_factor_shift_type'
# petsc_options_value = 'asm lu 200 1 NONZERO'
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[aa]
type = LineValueSampler
variable = 'group1 group2 group3 group4 group5 group6'
start_point = '0 100 0'
end_point = '200 100 0'
num_points = 201
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eigen-problem.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = true
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
[]
[Mesh]
file = 'cylinder_rad_57.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
[]
[]
[BCs]
[vacuum1]
type = VacuumConcBC
boundary = 'boundaries'
variable = group1
[]
[vacuum2]
type = VacuumConcBC
boundary = 'boundaries'
variable = group2
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 'reactor'
property_tables_root = '../property_file_dir/msre_homogeneous_critical_question_mark_'
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.0
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
# full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/axi-nts-temp-delayed.i)
flow_velocity = 147 # Cammi 147 cm/s
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
group_fluxes = 'group1 group2'
# MSRE full power = 10 MW; core volume 90 ft3
power = 200000
[]
[Mesh]
file = 'axisymm_cylinder.msh'
[]
[Variables]
# [./pre1]
# [../]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
scaling = 1e-3
[]
[]
[Kernels]
# Neutronics
# [./time_group1]
# type = NtTimeDerivative
# grou_number = 1
# variable = group1
# [../]
# [./time_group2]
# type = NtTimeDerivative
# grou_number = 2
# variable = group2
# [../]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
temperature = temp
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
temperature = temp
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
temperature = temp
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
temperature = temp
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
num_groups = 2
group_fluxes = 'group1 group2'
temperature = temp
[]
# [./fission_source_group1]
# type = CoupledFissionKernel
# variable = group1
# group_number = 1
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# [./fission_source_group2]
# type = CoupledFissionKernel
# variable = group2
# group_number = 2
# num_groups = 2
# group_fluxes = 'group1 group2'
# temperature = temp
# [../]
# Temperature
# [./temp_cond]
# type = MatDiffusion
# variable = temp
# prop_name = 'k'
# [../]
[temp_flow_fuel]
block = 'fuel'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
uz = ${flow_velocity}
[]
[temp_flow_moder]
block = 'moder'
type = MatINSTemperatureRZ
variable = temp
rho = 'rho'
k = 'k'
cp = 'cp'
[]
[temp_source]
type = FissionHeatSource
tot_fissions = tot_fissions
variable = temp
[]
[]
[Precursors]
var_name_base = pre
v_def = ${flow_velocity}
block = 'fuel'
inlet_boundary = 'fuel_bottom'
inlet_boundary_condition = 'DirichletBC'
inlet_dirichlet_value = -20
outlet_boundary = 'fuel_top'
T = temp
incompressible_flow = false
use_exp_form = true
initial_condition = -20
[]
[AuxVariables]
[Qf]
family = MONOMIAL
order = CONSTANT
[]
[pre1_lin]
family = MONOMIAL
order = CONSTANT
[]
# [./diffus_temp]
# family = MONOMIAL
# order = CONSTANT
# [../]
# [./diffus_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./src_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./bc_resid]
# family = LAGRANGE
# order = FIRST
# [../]
# [./tot_resid]
# family = LAGRANGE
# order = FIRST
# [../]
[]
[AuxKernels]
[Qf]
type = FissionHeatSourceAux
variable = Qf
tot_fissions = tot_fissions
[]
[pre1_lin]
variable = pre1_lin
density_log = pre1
type = Density
[]
# [./diffus_temp]
# type = MatDiffusionAux
# variable = diffus_temp
# diffuse_var = temp
# prop_name = 'k'
# [../]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = 'msr2g_enrU_mod_953_fuel_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.0123 3.327e-3 1357' # Cammi 2011 at 908 K
temperature = temp
[]
[moder]
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = 'msr2g_enrU_fuel_922_mod_interp_'
num_groups = 2
num_precursor_groups = 8
prop_names = 'k rho cp'
prop_values = '.312 1.843e-3 1760' # Cammi 2011 at 908 K
temperature = temp
[]
[]
[BCs]
[temp_inlet]
boundary = 'fuel_bottom graphite_bottom'
type = DirichletBC
variable = temp
value = 900
[]
[temp_outlet]
boundary = 'fuel_top'
type = MatINSTemperatureNoBCBC
variable = temp
k = 'k'
[]
[group1_vacuum]
type = VacuumBC
variable = group1
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[group2_vacuum]
type = VacuumBC
variable = group2
boundary = 'fuel_top graphite_top fuel_bottom graphite_bottom'
[]
[]
[Problem]
type = FEProblem
coord_type = RZ
[]
[Executioner]
type = NonlinearEigen
free_power_iterations = 2
source_abs_tol = 1e-12
source_rel_tol = 1e-8
output_after_power_iterations = false
# type = InversePowerMethod
# max_power_iterations = 50
# xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.7
pfactor = 1e-2
l_max_its = 100
# line_search = none
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# This system will not converge with default preconditioning; need to use asm
petsc_options_iname = '-pc_type -sub_pc_type -sub_ksp_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu preonly 2 31'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
[temp_ic]
type = ConstantIC
variable = temp
value = 900
[]
[]
(problems/2017_annals_pub_msre_compare/2group.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
gamma_frac = .075
R = 73
H = 162.56
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = true
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
nt_scale = ${nt_scale}
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Variables]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Kernels]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
gamma = gamma_func
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[temp_diri_cg]
boundary = 'fuel_bottoms outer_wall'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -27.8
variable = temp
[]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
gamma = gamma_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[gamma_func]
type = ParsedFunction
expression = '${gamma_frac} * pi^2 / 4 * cos(pi * x / (2. * ${R})) * sin(pi * y / ${H})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_moder_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = PostprocessorDT
postprocessor = limit_k
dt = 1e-3
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[]
[limit_k]
type = LimitK
execute_on = 'timestep_end'
k_postprocessor = multiplication
growth_factor = 1.2
cutback_factor = .4
k_threshold = 1.5
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(tests/coupled/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
ini_temp = 922
diri_temp = 922
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 80
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
steady_state_detection = true
steady_state_tolerance = 1e-10
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 5
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/021417_MSRE_materials/CG_no_temp.i)
reactor_height = 162.56
# global_temperature=temp
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
[]
[Mesh]
file = 'msre_22x22_correct_vol_fraction.msh'
[]
[Nt]
var_name_base = 'group'
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
temp_scaling = 1e0
nt_ic_function = 'nt_ic_func'
create_temperature_var = false
# temperature = ${global_temperature}
temperature_value = ${global_temperature}
dg_for_temperature = false
eigen = false
[]
[Materials]
[fuel]
# type = CammiFuel
type = GenericMoltresMaterial
block = 'fuel'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_fuel_data_func_of_fuel_temp_'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[moder]
# type = CammiModerator
type = GenericMoltresMaterial
block = 'moder'
property_tables_root = '../property_file_dir/full_core_cuboid_msre_comp_mod_data_func_of_mod_temp_'
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
interp_type = 'spline'
temperature = ${global_temperature}
[]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
petsc_options_iname = '-snes_type'
petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Functions]
[nt_ic_func]
type = ParsedFunction
value = '4/${reactor_height} * y * (1 - y/${reactor_height})'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
group_fluxes = 'group1 group2'
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
(problems/022317_test_critical_neutronics_only_reactor/analytic.i)
global_temperature=922
[GlobalParams]
num_groups = 1
num_precursor_groups = 1
use_exp_form = false
[../]
[Mesh]
type = GeneratedMesh
xmax = 3.141592653589793238462643383279502884197169399375105820974944592307816406286
nx = 100
dim = 1
[../]
[Nt]
var_name_base = 'group'
temp_scaling = 1e0
create_temperature_var = false
temperature_value = ${global_temperature}
dg_for_temperature = false
[]
[BCs]
[./diri]
type = DirichletBC
value = 0
boundary = 'left right'
variable = group1
[../]
[]
[Materials]
[./homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/unity_'
interp_type = 'spline'
temperature = ${global_temperature}
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Outputs]
csv = true
print_linear_residuals = true
perf_graph = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'csv console'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'csv console'
[../]
[]
(problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-four-grp.i)
global_temperature = 922
[GlobalParams]
num_groups = 4
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2 group3 group4'
temperature = ${global_temperature}
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 80
ymax = 80
nx = 100
ny = 100
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[group3]
[]
[group4]
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[diff_group3]
type = GroupDiffusion
variable = group3
group_number = 3
[]
[sigma_r_group3]
type = SigmaR
variable = group3
group_number = 3
[]
[fission_source_group3]
type = CoupledFissionEigenKernel
variable = group3
group_number = 3
[]
[inscatter_group3]
type = InScatter
variable = group3
group_number = 3
[]
[diff_group4]
type = GroupDiffusion
variable = group4
group_number = 4
[]
[sigma_r_group4]
type = SigmaR
variable = group4
group_number = 4
[]
[fission_source_group4]
type = CoupledFissionEigenKernel
variable = group4
group_number = 4
[]
[inscatter_group4]
type = InScatter
variable = group4
group_number = 4
[]
[]
[Materials]
[homo_reactor]
type = GenericMoltresMaterial
block = 0
property_tables_root = '../property_file_dir/inf_crit_small_four_groups_'
interp_type = 'none'
temperature = ${global_temperature}
[]
[]
[Executioner]
# type = NonlinearEigen
# free_power_iterations = 4
# source_abs_tol = 1e-12
# source_rel_tol = 1e-8
# output_after_power_iterations = true
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
[out]
type = Exodus
execute_on = 'timestep_end'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/2017_annals_pub_msre_compare/2group_eigen.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = true
pre_concs = ''
account_delayed = false
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
eigen = true
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_fuel_'
interp_type = 'spline'
block = 'fuel'
temperature = 972
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/serp3d2group0.78eV/2g0.78eV_moder_'
interp_type = 'spline'
block = 'moder'
temperature = 972
[]
[]
[Executioner]
type = Eigenvalue
eigen_tol = 1e-6
normalization = bnorm
normal_factor = 1
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
# petsc_options_iname = '-pc_type -sub_pc_type'
# petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 'fuel'
execute_on = 'nonlinear linear timestep_end'
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'nonlinear linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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
# [../]
# []
(tests/pre/pre_loop_ins.i)
flow_velocity = 20
global_temperature = 922
xmax = 50
ymax = 100
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
transient = true
pspg = true
integrate_p_by_parts = true
[]
[Mesh]
coord_type = RZ
[box]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = ${xmax}
ymin = 0
ymax = ${ymax}
nx = 20
ny = 20
[]
[corner_node]
type = ExtraNodesetGenerator
input = box
new_boundary = corner
coord = '0 ${ymax}'
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Precursors]
[pres]
var_name_base = pre
outlet_boundaries = 'top'
outlet_vel = uy
constant_velocity_values = false
uvel = ux
vvel = uy
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'bottom'
[]
[]
[Variables]
[ux]
family = LAGRANGE
order = FIRST
initial_condition = 0
[]
[uy]
family = LAGRANGE
order = FIRST
initial_condition = ${flow_velocity}
[]
[p]
family = LAGRANGE
order = FIRST
[]
[]
[AuxVariables]
[group1]
family = LAGRANGE
order = FIRST
[]
[group2]
family = LAGRANGE
order = FIRST
[]
[]
[Kernels]
# Use Navier-Stokes flow at steady state for quicker run
[mass]
type = INSMassRZ
variable = p
u = ux
v = uy
pressure = p
[]
[ux_momentum]
type = INSMomentumLaplaceFormRZ
variable = ux
u = ux
v = uy
pressure = p
component = 0
[]
[uy_momentum]
type = INSMomentumLaplaceFormRZ
variable = uy
u = ux
v = uy
pressure = p
component = 1
[]
[]
[AuxKernels]
[group1_flux]
type = FunctionAux
variable = group1
function = fluxFunc
[]
[group2_flux]
type = FunctionAux
variable = group2
function = fluxFunc
[]
[]
[BCs]
[ux_no_slip]
type = DirichletBC
variable = ux
boundary = 'right'
value = 0
[]
[uy_no_slip]
type = DirichletBC
variable = uy
boundary = 'right'
value = 0
[]
[ux_inlet]
type = DirichletBC
variable = ux
boundary = 'bottom'
value = 0
[]
[uy_inlet]
type = FunctionDirichletBC
variable = uy
boundary = 'bottom'
function = velFunc
[]
[p_pin]
type = DirichletBC
variable = p
boundary = 'corner'
value = 0
[]
[]
[Functions]
[velFunc]
type = ParsedFunction
expression = '2 * ${flow_velocity} * (1 - (x/${xmax})^2)'
[]
[fluxFunc]
type = ParsedFunction
expression = 'cos(pi / 2 * x / ${xmax}) * sin(pi * y / ${ymax})'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
prop_names = 'rho mu'
prop_values = '1e-3 1'
[]
[]
[Executioner]
type = Transient
end_time = 400
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
fixed_point_max_its = 5
fixed_point_rel_tol = 1e-6
fixed_point_abs_tol = 1e-5
dtmin = 1e-2
dtmax = 4
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-2
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
execute_on = 'final'
[]
[]
[MultiApps]
[loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '200.0 200.0 0.0'
input_files = 'sub_ins.i'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/LOSCA/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
[../]
[Problem]
coord_type = RZ
[]
[Nt]
var_name_base = group
vacuum_boundaries = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
create_temperature_var = false
scaling = 1e-4
pre_blocks = 'fuel'
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
[../]
[./temp]
scaling = 1e-4
initial_condition = 930
[../]
[]
[Precursors]
[./core]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'fuel_bottoms'
[../]
[]
[Kernels]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
# file = '3d_msre_29x29_136.msh'
file = split_mesh/3d_auto_diff_rho_in.e
nemesis = true
skip_partioning = true
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
nemesis = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(include/materials/RoddedMaterial.h)
#pragma once
#include "GenericMoltresMaterial.h"
#include "ODEKernel.h"
/**
* This class is meant to simulate a piece of material with a rod in it.
* In the future, it is expected that better, more accurate code will be written;
* this is a proof of concept to get pretty plots.
*
* The idea is to load material properties like any other moltres material,
* but if the quadrature point is above control rod position, a greatly increased absorbtion
* XS is returned.
*
* rodPosition : the scalar variable giving rod position
* absorb_factor : how much to scale up REMXS by
*
*/
class RoddedMaterial : public GenericMoltresMaterial
{
public:
RoddedMaterial(const InputParameters & parameters);
static InputParameters validParams();
protected:
void splineConstruct(std::string & property_tables_root, std::vector<std::string> xsec_names);
virtual void computeQpProperties() override;
virtual void computeSplineAbsorbingQpProperties();
Real _absorb_factor;
const VariableValue & _rod_pos;
MooseEnum _rod_dim;
};
(include/materials/CammiFuel.h)
#pragma once
#include "GenericMoltresMaterial.h"
#include "SplineInterpolation.h"
#include "BicubicSplineInterpolation.h"
class CammiFuel : public GenericMoltresMaterial
{
public:
CammiFuel(const InputParameters & parameters);
static InputParameters validParams();
protected:
virtual void computeQpProperties() override;
MaterialProperty<Real> & _rho;
MaterialProperty<Real> & _k;
};
(include/materials/CammiModerator.h)
#pragma once
#include "GenericMoltresMaterial.h"
#include "SplineInterpolation.h"
#include "BicubicSplineInterpolation.h"
class CammiModerator : public GenericMoltresMaterial
{
public:
CammiModerator(const InputParameters & parameters);
static InputParameters validParams();
protected:
virtual void computeQpProperties() override;
MaterialProperty<Real> & _k;
};