- boundaryThe list of boundary IDs from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The list of boundary IDs from the mesh where this object applies
- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
VacuumConcBC
Overview
This object adds the vacuum boundary condition of the multigroup neutron diffusion equations. The weak form after applying integration by parts to the neutron diffusion term (GroupDiffusion) is:
The value of varies depending on the BC type selected using the vacuum_bc_type
parameter. The available options are:
Marshak:
Mark:
Milne:
The Marshak and Mark BCs are derived from vacuum boundary condition approximations using and transport methods, respectively. The Milne BC is derived from the exact analytical solution of the Milne problem (Placzek and Seidel, 1947) and has been proven to be accurate for a wide range of diffusive problems (Rulko et al., 1995).
Example Input File Syntax
Input Parameters
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_exp_formFalseWhether concentrations should be in an expotential/logarithmic format.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether concentrations should be in an expotential/logarithmic format.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
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.
- vacuum_bc_typemarshakWhether to apply Marshak, Mark, or Milne vacuum boundary conditions. Defaults to Marshak.
Default:marshak
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:marshak, mark, milne
Controllable:No
Description:Whether to apply Marshak, Mark, or Milne vacuum boundary conditions. Defaults to Marshak.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
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
- save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-922.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale-mod-heat-PJFNK.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
- (problems/LOFA/auto_diff_rho.i)
- (problems/picard/tmp_nts.i)
- (problems/021417_MSRE_materials/transient-nts-cg-temp-two-grp-scale-two-mat-inverted-file-msh.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_nts_only.i)
- (problems/picard/nts.i)
- (problems/060717_dimension_testing/test_case.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin.i)
- (problems/picard/nts_no_pres.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)
- (tests/bcs/vacuum_bc.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-rad-73-mc-gcs.i)
- (problems/publication_level_cases/transient_single_channel_blockage/3d_ss.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/021417_MSRE_materials/transient-nts-cg-temp-two-grp-b1-two-mat.i)
- (tutorial/eigenvalue/nts.i)
- (problems/033117_nts_temp_pre_parsed_mat/meigen.i)
- (tests/nts/nts_no_action.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function_moderator_heating.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-1022.i)
- (problems/060717_dimension_testing/one_group.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)
- (problems/033117_nts_temp_pre_parsed_mat/3d_single_pin_velocity_function.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_single_pin_adaptive.i)
- (problems/LOSCA/HXFailure/auto_diff_rho.i)
- (problems/070517_4group/eigen/eigen.i)
- (problems/LOFA/steady/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_restart.i)
- (problems/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
- (problems/publication_level_cases/LOSCA/HXFail/auto_diff_rho.i)
- (problems/single_msre_channel_velocity_heat_nts/nts-eigenvalue-msre-channel-dimensions.i)
- (problems/single_msre_channel_velocity_heat_nts/heat-nts-single-unit-cell.i)
- (problems/picard/auto_diff_rho.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/060717_dimension_testing/one_group_nts_only.i)
- (problems/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eig-gen-msh-inf-one-grp.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-problem.i)
- (problems/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.i)
- (problems/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
- (tests/coupled/auto_diff_rho.i)
- (problems/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-mat.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-heat-and-nts.i)
- (problems/single_msre_channel_velocity_heat_nts/unit-cell-nts-eigenvalue.i)
- (problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.i)
- (problems/publication_level_cases/dilute_absorber_controlled_by_peak_power_density/in.i)
- (tutorial/transient/transient.i)
- (problems/publication_level_cases/LOSCA/auto_diff_rho.i)
- (problems/072017_dg_temperature/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
- (problems/022317_test_critical_neutronics_only_reactor/k-eigen-gen-mesh-should-be-crit-one-group.i)
- (problems/LOSCA/auto_diff_rho.i)
- (problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho_direct.i)
References
- G. Placzek and W. Seidel.
Milne's Problem in Transport Theory.
Physical Review, 72(7):550–555, October 1947.
Publisher: American Physical Society.
URL: https://link.aps.org/doi/10.1103/PhysRev.72.550 (visited on 2024-05-31), doi:10.1103/PhysRev.72.550.[BibTeX]
@article{placzek_milnes_1947, author = "Placzek, G. and Seidel, W.", title = "Milne's {Problem} in {Transport} {Theory}", volume = "72", url = "https://link.aps.org/doi/10.1103/PhysRev.72.550", doi = "10.1103/PhysRev.72.550", abstract = "A modified derivation of the Wiener-Hopf solution of Milne's problem is given in a form suitable for application to problems in the theory of neutron diffusion.", number = "7", urldate = "2024-05-31", journal = "Physical Review", month = "October", year = "1947", note = "Publisher: American Physical Society", pages = "550--555", file = "APS Snapshot:C\:\\Users\\Sun Myung\\Zotero\\storage\\IJVWPMDS\\PhysRev.72.html:text/html;Full Text PDF:C\:\\Users\\Sun Myung\\Zotero\\storage\\TVUWZQ6J\\Placzek and Seidel - 1947 - Milne's Problem in Transport Theory.pdf:application/pdf" }
- Robert P. Rulko, Djordje Tomašević, and Edward W. Larsen.
Variational P1 Approximations of General-Geometry Multigroup Transport Problems.
Nuclear Science and Engineering, 121(3):393–404, December 1995.
Publisher: Taylor & Francis _eprint: https://doi.org/10.13182/NSE121-393.
URL: https://doi.org/10.13182/NSE121-393 (visited on 2024-05-31), doi:10.13182/NSE121-393.[BibTeX]
@article{rulko_variational_1995, author = "Rulko, Robert P. and Tomašević, Djordje and Larsen, Edward W.", title = "Variational {P1} {Approximations} of {General}-{Geometry} {Multigroup} {Transport} {Problems}", volume = "121", issn = "0029-5639", url = "https://doi.org/10.13182/NSE121-393", doi = "10.13182/NSE121-393", abstract = "A variational approximation is developed for general-geometry multigroup transport problems with arbitrary anisotropic scattering. The variational principle is based on a functional that approximates a reaction rate in a subdomain of the system. In principle, approximations that result from this functional “optimally”determine such reaction rates. The functional contains an arbitrary parameter α and requires the approximate solutions of a forward and an adjoint transport problem. If the basis functions for the forward and adjoint solutions are chosen to be linear functions of the angular variable Ω, the functional yields the familiar multigroup P1 equations for all values of α. However, the boundary conditions that result from the functional depend on α. In particular, for problems with vacuum boundaries, one obtains the conventional mixed boundary condition, but with an extrapolation distance that depends continuously on α. The choice α = 0 yields a generalization of boundary conditions derived earlier by Federighi and Pomraning for a more limited class of problems. The choice α = 1 yields a generalization of boundary conditions derived previously by Davis for mono-energetic problems. Other boundary conditions are obtained by choosing different values of α. We discuss this indeterminancy of a in conjunction with numerical experiments.", number = "3", urldate = "2024-05-31", journal = "Nuclear Science and Engineering", month = "December", year = "1995", note = "Publisher: Taylor \\& Francis \\_eprint: https://doi.org/10.13182/NSE121-393", pages = "393--404", file = "Full Text PDF:C\:\\Users\\Sun Myung\\Zotero\\storage\\8NHDX7DM\\Rulko et al. - 1995 - Variational P1 Approximations of General-Geometry .pdf:application/pdf" }
(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-mod-heat-PJFNK.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[../]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/021417_MSRE_materials/transient-nts-cg-temp-one-channel-two-mat-scale.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
global_temperature=temp
# global_temperature=922
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = false
[../]
[Mesh]
file = 'cylinder_structured_for_msre_comp.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e1
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-3
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top graphite_bottom graphite_top'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'graphite_bottom fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
temperature = ${global_temperature}
block = 'fuel'
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
temperature = ${global_temperature}
prop_names = 'rho k cp'
prop_values = '1.843e-3 .312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
# num_steps = 1
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.025
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[]
[Outputs]
perf_graph = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/033117_nts_temp_pre_parsed_mat/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = 2d_split_mesh/auto_diff_rho_in.e
# file = auto_diff_rho_in.e
# nemesis = true
# parallel_type = DISTRIBUTED
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'NEWTON'
# solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1.e-10 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
# exodus = true
nemesis = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/3d_auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
base_height = 136
scale = .99
height = '${fparse base_height * scale}'
width = 145
offset = 2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
[file]
type = FileMeshGenerator
## Default to jac_test.msh for quicker syntax check tests.
## Switch to 3D mesh for actual simulations.
# file = '3d_msre_29x29_136.msh'
file = jac_test.msh
[]
[scale]
type = TransformGenerator
input = file
transform = SCALE
vector_value = '1 1 ${scale}'
[]
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[nt_ic_func]
type = ParsedFunction
expression = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
[group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[]
[group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[]
[]
(problems/LOFA/auto_diff_rho.i)
# take in steady state variable from the other core, and run a pump coastdown transient
# here, flow_velocity is only the initial flow velocity
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
tau = 5 # pump coastdown time constant
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = 'steady/auto_diff_rho.e'
[../]
[Problem]
coord_type = RZ
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
constant_velocity_values = false
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
u_func = nullFunc
v_func = coastDownFunc
w_func = nullFunc
init_from_file = true
[../]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group1
initial_from_file_timestep = LATEST [../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
order = FIRST
family = LAGRANGE
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = CtrlConservativeTemperatureAdvection
u_val = 0
v_val = ${flow_velocity} # this will be changed in ctrls block
w_val = 0
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./temp_postpr_inlet]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
variable = temp
postprocessor = inlet_mean_temp
[../]
#[./temp_postpr_inlet]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = DirichletBC
# variable = temp
# value = 922
#[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = VelocityFunctionTemperatureOutflowBC
variable = temp
vel_x_func = nullFunc
vel_y_func = coastDownFunc
vel_z_func = nullFunc
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[./nullFunc]
type = ParsedFunction
value = '0'
[../]
[./coastDownFunc]
type = ParsedFunction
value = '${flow_velocity} * exp(-t / ${tau})'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
# fuel cp function
[./cp_fuel]
type = DerivativeParsedMaterial
f_name = cp
function = '1967 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
# fuel k function
[./k_fuel]
type = DerivativeParsedMaterial
f_name = k
function = '0.0553 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '/home/gav/projects/moltres/property_file_dir/newt_msre_mod_'
interp_type = 'spline'
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
# moder cp fcn
[./cp_moder]
type = DerivativeParsedMaterial
f_name = cp
function = '1760 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
# moder k fcn
[./k_moder]
type = DerivativeParsedMaterial
f_name = k
function = '.312 + 1e-16 * temp'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_abs_tol = 3e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type' # -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu' # NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.04
optimal_iterations = 5
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
# ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
execute_on = 'timestep_begin'
[../]
#multiapp
[./inlet_mean_temp]
type = Receiver
execute_on = 'initial timestep_begin'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Controls]
[./flowControl]
type = RealFunctionControl
parameter = '*/*/v_val'
function = coastDownFunc
execute_on = 'initial timestep_begin'
[../]
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = 'initial timestep_begin'
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/picard/tmp_nts.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 3e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = PostprocessorDT
postprocessor = 'limit_k'
dt = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./limit_k]
type = LimitK
growth_factor = 1.1
cutback_factor = 0.4
k_threshold = 1.25
k_postprocessor = 'multiplication'
[../]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'final'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/021417_MSRE_materials/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/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections_eigen.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = false
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '.369 .369 1'
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
# [./fuel]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_fuel_'
# interp_type = 'spline'
# block = 'fuel'
# [../]
# [./moder]
# type = GenericMoltresMaterial
# property_tables_root = '../property_file_dir/newt_msre_mod_'
# interp_type = 'spline'
# block = 'moder'
# [../]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
execute_on = 'timestep_end final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/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/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/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/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/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
# [../]
# []
(tests/bcs/vacuum_bc.i)
[GlobalParams]
use_exp_form = false
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Variables]
[flux]
[]
[]
[Kernels]
[diffusion]
type = GroupDiffusion
variable = flux
group_number = 1
[]
[]
[BCs]
[dirichlet]
type = DirichletBC
variable = flux
boundary = 'left'
value = 1.002
[]
[vacuum]
type = VacuumConcBC
variable = flux
boundary = 'right'
vacuum_bc_type = marshak
[]
[]
[Materials]
[mat]
type = MoltresJsonMaterial
base_file = 'xsdata.json'
material_key = 0
interp_type = none
num_groups = 1
num_precursor_groups = 1
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Postprocessors]
[boundary_value]
type = SideAverageValue
variable = flux
boundary = 'right'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(problems/publication_level_cases/transient_single_channel_blockage/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = 3d_ss_out.e
[]
[MeshModifiers]
# [./scale]
# type = Transform
# transform = SCALE
# vector_value = '1 1 ${scale}'
# [../]
[]
[Problem]
[]
[Variables]
[./group1]
scaling = 1e4
initial_from_file_var = group1
initial_from_file_timestep = LATEST
[../]
[./group2]
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Precursors]
[./primary_fuel]
var_name_base = pre
block = 'fuel blocked_fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
init_from_file = true
kernel_block = 'fuel'
[../]
[./blocked_fuel]
var_name_base = pre
kernel_block = 'blocked_fuel'
outlet_boundaries = 'blocked_fuel_top'
u_def = 0
v_def = 0
w_def = 0
nt_exp_form = false
create_vars = false
object_suffix = blocked
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel blocked_fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel blocked_fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel blocked_fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel blocked_fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel blocked_fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel blocked_fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 5e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel blocked_fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
file_base = temp
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/transient_single_channel_blockage/3d_ss.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = msre_vol_frac_29x29_h_136.msh
[]
[MeshModifiers]
[./scale]
type = Transform
transform = SCALE
vector_value = '1 1 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
scaling = 1e4
initial_condition = 1
[../]
[./group2]
scaling = 1e4
initial_condition = 1
[../]
[./temp]
scaling = 1e-4
initial_condition = ${ini_temp}
[../]
[]
[Precursors]
[./primary_fuel]
var_name_base = pre
block = 'fuel blocked_fuel'
outlet_boundaries = 'fuel_tops blocked_fuel_top'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
kernel_block = 'fuel blocked_fuel'
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel blocked_fuel'
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel blocked_fuel'
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel blocked_fuel'
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel blocked_fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel blocked_fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides blocked_fuel_top blocked_fuel_bottom'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides blocked_fuel_bottom'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops blocked_fuel_top'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel blocked_fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel blocked_fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
dtmin = 1e-7
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel blocked_fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/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
[]
(tutorial/eigenvalue/nts.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = 900
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = 'mesh.e'
[]
[]
[Problem]
type = EigenProblem
bx_norm = bnorm
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = false
eigen = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = '0'
extra_vector_tags = 'eigen'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = '0'
extra_vector_tags = 'eigen'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = 'xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = 'xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = ''
prop_values = ''
[]
[]
[Executioner]
type = Eigenvalue
initial_eigenvalue = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
line_search = none
[]
[Postprocessors]
[k_eff]
type = VectorPostprocessorComponent
index = 0
vectorpostprocessor = k_vpp
vector_name = eigen_values_real
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
block = 0
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[VectorPostprocessors]
[k_vpp]
type = Eigenvalues
inverse_eigenvalue = true
[]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(problems/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
# [../]
# []
(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/033117_nts_temp_pre_parsed_mat/auto_diff_rho_monotone_interp.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[out]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/3d_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/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/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/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
[]
(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_single_pin_adaptive.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_single_unit_msre_vol_fraction.msh'
# uniform_refine = 1
# file = jac_test.msh
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'monotone_cubic'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'monotone_cubic'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 100000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-5
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
# off_diag_row = 'temp pre1 pre2 pre3 pre4 pre5 pre6 temp pre1 pre2 pre3 pre4 pre5 pre6'
# off_diag_column = 'group1 group1 group1 group1 group1 group1 group1 group2 group2 group2 group2 group2 group2 group2'
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[exodus]
type = Exodus
file_base = ''
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
# [Adaptivity]
# marker = errorfrac_temp
# max_h_level = 1
# [./Indicators]
# [./error_temp]
# type = GradientJumpIndicator
# variable = temp
# outputs = none
# [../]
# [../]
# [./Markers]
# [./errorfrac_temp]
# type = ErrorFractionMarker
# refine = 0.8
# coarsen = 0.1
# indicator = error_temp
# outputs = none
# [../]
# [../]
# []
(problems/LOSCA/HXFailure/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '../auto_diff_rho.e'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_from_file_var = group1
initial_from_file_timestep = LATEST
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_from_file_var = group2
initial_from_file_timestep = LATEST
[../]
[./temp]
scaling = 1e-4
initial_from_file_var = temp
initial_from_file_timestep = LATEST
[../]
[]
[Precursors]
[./core]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
init_from_file = true
loop_precursors = true
multi_app = loopApp
is_loopapp = false
inlet_boundaries = 'fuel_bottoms'
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-pc_type'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/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/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/033117_nts_temp_pre_parsed_mat/controlled_neutronics_only.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = 922
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp rho'
prop_values = '.0553 1967 2.146e-3' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-5
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp rho'
prop_values = '.312 1760 1.86e-3' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
# solve_type = 'NEWTON'
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
line_search = none
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear timestep_begin'
[]
[average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[exodus]
type = Exodus
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/publication_level_cases/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/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/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/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/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/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/publication_level_cases/3d_steady_state/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[./scale]
type = Transform
transform = SCALE
vector_value = '1 1 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[./nt_ic_func]
type = ParsedFunction
value = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
[./out]
type = Exodus
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
[./group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[../]
[./group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[../]
[]
(problems/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/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/constant_inlet_outlet_temp_no_heat_flux_at_walls/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[AuxVariables]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'fuel_bottoms'
type = FlexiblePostprocessorDirichletBC
postprocessor = coreEndTemp
offset = -50
variable = temp
[../]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[../]
[]
[VectorPostprocessors]
[./outlet_temps]
type = LineValueSampler
start_point = '0 153 0'
end_point = '72.5 153 0'
num_points = 1000
variable = temp
sort_by = 'x'
outputs = 'csv'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
exodus = true
[./csv]
type = CSV
execute_on = 'final'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/publication_level_cases/gamma_heating_3d_ss/3d_auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
base_height=136
scale=.99
height=${* ${base_height} ${scale}}
width=145
offset=2.5
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = true
temperature = temp
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[./scale]
type = Transform
transform = SCALE
vector_value = '1 1 ${scale}'
[../]
[]
[Problem]
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
# initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = 0
w_def = ${flow_velocity}
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
gamma = .0144 # Cammi .0144
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 0 ${flow_velocity}'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[../]
[./temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms moder_sides'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 0 ${flow_velocity}'
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[./nt_ic_func]
type = ParsedFunction
value = 'sin(pi * z / ${height}) * sin(pi * (x + ${offset}) / ${width}) * sin(pi * (y + ${offset}) / ${width})'
[../]
[]
[Materials]
[./fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
line_search = 'none'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 200
# dtmax = 1
dtmin = 1e-7
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-6
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
linear_iteration_ratio = 1000
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
ksp_norm = none
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
nt_scale = ${nt_scale}
execute_on = 'linear nonlinear'
outputs = 'console'
block = 'fuel'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
[ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
[./group1_ic]
type = FunctionIC
variable = group1
function = 'nt_ic_func'
[../]
[./group2_ic]
type = FunctionIC
variable = group2
function = 'nt_ic_func'
[../]
[]
(tests/coupled/auto_diff_rho.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
ini_temp = 922
diri_temp = 922
nt_scale = 1e13
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Mesh]
coord_type = RZ
file = '2d_lattice_structured.msh'
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
loop_precursors = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = 'fuel'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = 'fuel'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = 'fuel'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 80
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
steady_state_detection = true
steady_state_tolerance = 1e-10
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 5
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/022317_test_critical_neutronics_only_reactor/transient-msre-file-mesh-two-grp-two-b1-mat.i)
global_temperature = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 8
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = ${global_temperature}
sss2_input = true
[]
[Mesh]
# file = 'msre_23x23.msh'
file = 'msre_cuboid_3x3.msh'
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops fuel_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_fuel_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../property_file_dir/B1_msre_single_unit_cell_moder_'
interp_type = 'none'
temperature = ${global_temperature}
block = 'moder'
[]
[]
[Executioner]
type = Transient
num_steps = 100
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor -snes_test_display'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'asm lu 1 preonly 1e-3'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[TimeStepper]
type = IterationAdaptiveDT
cutback_factor = 0.4
dt = 1e-3
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
outputs = 'console csv'
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
outputs = 'console csv'
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
outputs = 'console csv'
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
outputs = 'console csv'
[]
[]
[Outputs]
perf_graph = true
[out]
type = Exodus
[]
[csv]
type = CSV
[]
[]
[Debug]
show_var_residual_norms = true
[]
(problems/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/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/033117_nts_temp_pre_parsed_mat/auto_diff_rho_control.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = 2d_split_mesh/auto_diff_rho_in.e
# file = auto_diff_rho_in.e
# nemesis = true
# parallel_type = DISTRIBUTED
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[AuxVariables]
[power_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Precursors]
[pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[]
[temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[AuxKernels]
[fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[]
[moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
peak_power_density = peak_power_density
controller_gain = 1e-4
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
peak_power_density = peak_power_density
controller_gain = 0
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[]
[average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[]
[peak_power_density]
type = ElementExtremeValue
value_type = max
variable = power_density
execute_on = 'linear nonlinear'
outputs = 'csv console'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
# nemesis = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/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
# [../]
# []
(tutorial/transient/transient.i)
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
temperature = temp
sss2_input = true
account_delayed = true
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = '../eigenvalue/mesh.e'
[]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
[]
[group2]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1000
[]
[]
[Precursors]
[pres]
var_name_base = pre
family = MONOMIAL
order = CONSTANT
block = 0
outlet_boundaries = 'fuel_top'
constant_velocity_values = true
u_def = 0
v_def = 18.085
w_def = 0
nt_exp_form = false
loop_precursors = false
transient = true
[]
[]
[Kernels]
#---------------------------------------------------------------------
# Group 1 Neutronics
#---------------------------------------------------------------------
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
block = '0'
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
block = '0'
group_number = 1
[]
#---------------------------------------------------------------------
# Group 2 Neutronics
#---------------------------------------------------------------------
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
block = '0'
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
#---------------------------------------------------------------------
# Temperature
#---------------------------------------------------------------------
[temp_time_derivative]
type = INSTemperatureTimeDerivative
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
variable = temp
velocity = '0 18.085 0'
block = '0'
[]
[temp_diffusion]
type = MatDiffusion
variable = temp
diffusivity = 'k'
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = '0'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottom fuel_top mod_bottom mod_top right'
variable = group2
[]
[temp_inlet_bc]
type = FunctionDirichletBC
variable = temp
boundary = 'fuel_bottom mod_bottom right'
function = 'temp_bc_func'
[]
[temp_outlet_bc]
type = TemperatureOutflowBC
variable = temp
boundary = 'fuel_top'
velocity = '0 18.085 0'
[]
[]
[ICs]
[group1_ic]
type = FunctionIC
variable = group1
function = ic_func
[]
[group2_ic]
type = FunctionIC
variable = group2
function = ic_func
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '1000 - (1000-965) * tanh(t/1)'
[]
[dt_func]
type = ParsedFunction
expression = 'if(t<50, if(t<30, .4, 5), 10)'
[]
[ic_func]
type = ParsedFunction
expression = '1e5 * (-x^2+70^2) * (-y * (y-150))'
[]
[]
[Materials]
[fuel]
type = MoltresJsonMaterial
block = '0'
base_file = '../eigenvalue/xsdata.json'
material_key = 'fuel'
interp_type = LINEAR
prop_names = 'rho k cp'
prop_values = '2.146e-3 .0553 1967'
[]
[graphite]
type = MoltresJsonMaterial
block = '1'
base_file = '../eigenvalue/xsdata.json'
material_key = 'graphite'
interp_type = LINEAR
prop_names = 'rho k cp'
prop_values = '1.86e-3 .312 1760'
[]
[]
[Executioner]
type = Transient
end_time = 200
nl_rel_tol = 1e-6
nl_abs_tol = 1e-1
automatic_scaling = true
compute_scaling_once = false
resid_vs_jac_scaling_param = 0.1
scaling_group_variables = 'group1 group2; pre1 pre2 pre3 pre4 pre5 pre6; temp'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
line_search = none
dtmin = 1e-3
dtmax = 10
[TimeStepper]
type = FunctionDT
function = dt_func
[]
# [TimeStepper]
# type = IterationAdaptiveDT
# dt = .2
# cutback_factor = 0.4
# growth_factor = 1.2
# optimal_iterations = 20
# []
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[powernorm]
type = ElmIntegTotFissHeatPostprocessor
execute_on = linear
[]
[average_temp]
type = ElementAverageValue
variable = temp
execute_on = linear
[]
[inlet_temp]
type = SideAverageValue
variable = temp
boundary = fuel_bottom
[]
[outlet_temp]
type = SideAverageValue
variable = temp
boundary = fuel_top
[]
[]
[VectorPostprocessors]
[centerline_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 0 0'
end_point = '0 150 0'
num_points = 151
sort_by = y
execute_on = FINAL
[]
[midplane_flux]
type = LineValueSampler
variable = 'group1 group2'
start_point = '0 75 0'
end_point = '69.375 75 0'
num_points = 100
sort_by = x
execute_on = FINAL
[]
[]
[Outputs]
perf_graph = true
# print_linear_residuals = true
[exodus]
type = Exodus
[]
[csv]
type = CSV
execute_on = FINAL
[]
[]
[Debug]
# show_var_residual_norms = true
[]
(problems/publication_level_cases/LOSCA/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
[../]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_condition = 1
[../]
[./group2]
order = FIRST
family = LAGRANGE
scaling = 1e4
initial_condition = 1
[../]
[./temp]
scaling = 1e-4
initial_condition = 930
[../]
[]
[Precursors]
[./core]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale=${nt_scale}
block = 'fuel'
[../]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./fuel_bottoms_looped]
boundary = 'fuel_bottoms outer_wall'
type = PostprocessorDirichletBC
postprocessor = inlet_mean_temp
variable = temp
[../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'exodus console'
[../]
# MULTIAPP
[./inlet_mean_temp]
type = Receiver
initialize_old = true
execute_on = 'timestep_begin'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./exodus]
type = Exodus
file_base = 'auto_diff_rho'
execute_on = 'timestep_end'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[MultiApps]
[./loopApp]
type = TransientMultiApp
app_type = MoltresApp
execute_on = timestep_begin
positions = '100.0 100.0 0.0'
input_files = 'sub.i'
[../]
[]
# connect inlet and outlet to multiapp
[Transfers]
[./from_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = loopEndTemp
to_postprocessor = inlet_mean_temp
direction = from_multiapp
reduction_type = maximum
[../]
[./to_loop]
type = MultiAppPostprocessorTransfer
multi_app = loopApp
from_postprocessor = coreEndTemp
to_postprocessor = coreEndTemp
direction = to_multiapp
[../]
[]
(problems/072017_dg_temperature/auto_diff_rho.i)
flow_velocity=21.7 # cm/s. See MSRE-properties.ods
nt_scale=1e13
ini_temp=922
diri_temp=922
sigma_val=.6
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
gamma = .0144 # Cammi .0144
nt_scale = ${nt_scale}
[]
[Mesh]
file = '2d_lattice_structured.msh'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[../]
[./temp]
initial_condition = ${ini_temp}
scaling = 1e-4
order = FIRST
family = MONOMIAL
[../]
[]
[AuxVariables]
[./power_density]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Precursors]
[./pres]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[../]
[]
[Kernels]
# Neutronics
[./time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[../]
[./diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[../]
[./sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[../]
[./fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[../]
[./delayed_group1]
type = DelayedNeutronSource
variable = group1
[../]
[./inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[../]
[./diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[../]
[./sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[../]
[./time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[../]
[./fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[../]
[./inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[../]
# Temperature
[./temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[../]
[./temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
block = 'fuel'
[../]
[./temp_source_mod]
type = GammaHeatSource
variable = temp
block = 'moder'
average_fission_heat = 'average_fission_heat'
[../]
[./temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[../]
[./temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[../]
[]
[DGKernels]
[./temp_advection_fuel]
block = 'fuel'
type = DGTemperatureAdvection
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[./temp_diffusion]
type = DGDiffusion
variable = temp
sigma = ${sigma_val}
epsilon = -1
diff = 'k'
[../]
[]
[BCs]
[./vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[../]
[./vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[../]
[./temp_dirichlet_diffusion_inlet]
boundary = 'fuel_bottoms'
type = DGDiffusionPostprocessorDirichletBC
variable = temp
sigma = ${sigma_val}
epsilon = -1
diffusivity = 'k'
postprocessor = coreEndTemp
offset = -50
[../]
[./temp_advection_inlet]
boundary = 'fuel_bottoms'
type = PostprocessorTemperatureInflowBC
variable = temp
uu = 0
vv = ${flow_velocity}
ww = 0
postprocessor = coreEndTemp
offset = -50
[../]
# [./temp_diri_cg]
# boundary = 'moder_bottoms fuel_bottoms outer_wall'
# type = FunctionDirichletBC
# function = 'temp_bc_func'
# variable = temp
# [../]
[./temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[../]
[]
[AuxKernels]
[./fuel]
block = 'fuel'
type = FissionHeatSourceTransientAux
variable = power_density
[../]
[./moderator]
block = 'moder'
type = ModeratorHeatSourceTransientAux
average_fission_heat = 'average_fission_heat'
variable = power_density
[../]
[]
[Functions]
[./temp_bc_func]
type = ParsedFunction
value = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[../]
[]
[Materials]
[./fuel]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_fuel_'
interp_type = 'spline'
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
controller_gain = 0
[../]
[./rho_fuel]
type = DerivativeParsedMaterial
f_name = rho
function = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'fuel'
[../]
[./moder]
type = GenericMoltresMaterial
property_tables_root = '../../property_file_dir/newt_msre_mod_'
interp_type = 'spline'
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
controller_gain = 0
[../]
[./rho_moder]
type = DerivativeParsedMaterial
f_name = rho
function = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
args = 'temp'
derivative_order = 1
block = 'moder'
[../]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 6e-6
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
[./TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console csv'
[../]
[./multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console csv'
[../]
[./temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'csv console'
[../]
[./temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'csv console'
[../]
[./average_fission_heat]
type = AverageFissionHeat
execute_on = 'linear nonlinear'
outputs = 'csv console'
block = 'fuel'
[../]
[./coreEndTemp]
type = SideAverageValue
variable = temp
boundary = 'fuel_tops'
outputs = 'csv console'
execute_on = 'linear nonlinear'
[../]
[]
[VectorPostprocessors]
[./outlet_temps]
type = LineValueSampler
start_point = '0 153 0'
end_point = '72.5 153 0'
num_points = 1000
variable = temp
sort_by = 'x'
outputs = 'csv'
[../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[./csv]
type = CSV
execute_on = 'final'
[../]
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/2d_axi_function_cross_sections.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
temperature = temp
sss2_input = false
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
account_delayed = true
[]
[Mesh]
file = '2d_lattice_structured.msh'
# file = '2d_lattice_structured_jac.msh'
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '1 1 1'
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
# scaling = 1e4
[]
[temp]
initial_condition = ${ini_temp}
scaling = 1e-4
[]
[]
[Precursors]
var_name_base = pre
block = 'fuel'
outlet_boundaries = 'fuel_tops'
u_def = 0
v_def = ${flow_velocity}
w_def = 0
nt_exp_form = false
family = MONOMIAL
order = CONSTANT
# jac_test = true
[]
[Kernels]
# Neutronics
[time_group1]
type = NtTimeDerivative
variable = group1
group_number = 1
[]
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionKernel
variable = group1
group_number = 1
[]
[delayed_group1]
type = DelayedNeutronSource
variable = group1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[time_group2]
type = NtTimeDerivative
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
# Temperature
[temp_time_derivative]
type = MatINSTemperatureTimeDerivative
variable = temp
[]
[temp_source_fuel]
type = TransientFissionHeatSource
variable = temp
nt_scale = ${nt_scale}
block = 'fuel'
[]
# [./temp_source_mod]
# type = GammaHeatSource
# variable = temp
# gamma = .0144 # Cammi .0144
# block = 'moder'
# average_fission_heat = 'average_fission_heat'
# [../]
[temp_diffusion]
type = MatDiffusion
diffusivity = 'k'
variable = temp
[]
[temp_advection_fuel]
type = ConservativeTemperatureAdvection
velocity = '0 ${flow_velocity} 0'
variable = temp
block = 'fuel'
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops outer_wall'
variable = group2
[]
[temp_diri_cg]
boundary = 'moder_bottoms fuel_bottoms outer_wall'
type = FunctionDirichletBC
function = 'temp_bc_func'
variable = temp
[]
[temp_advection_outlet]
boundary = 'fuel_tops'
type = TemperatureOutflowBC
variable = temp
velocity = '0 ${flow_velocity} 0'
[]
[]
[Functions]
[temp_bc_func]
type = ParsedFunction
expression = '${ini_temp} - (${ini_temp} - ${diri_temp}) * tanh(t/1e-2)'
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
prop_names = 'k cp'
prop_values = '.0553 1967' # Robertson MSRE technical report @ 922 K
[]
[rho_fuel]
type = DerivativeParsedMaterial
property_name = rho
expression = '2.146e-3 * exp(-1.8 * 1.18e-4 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
prop_names = 'k cp'
prop_values = '.312 1760' # Cammi 2011 at 908 K
block = 'moder'
[]
[rho_moder]
type = DerivativeParsedMaterial
property_name = rho
expression = '1.86e-3 * exp(-1.8 * 1.0e-5 * (temp - 922))'
coupled_variables = 'temp'
derivative_order = 1
block = 'moder'
[]
[]
[Executioner]
type = Transient
end_time = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
# petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -sub_ksp_type -snes_linesearch_minlambda'
# petsc_options_value = 'asm lu 1 preonly 1e-3'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type -snes_linesearch_minlambda'
petsc_options_value = 'lu NONZERO 1e-10 preonly 1e-3'
line_search = 'none'
# petsc_options_iname = '-snes_type'
# petsc_options_value = 'test'
nl_max_its = 30
l_max_its = 100
dtmin = 1e-5
# dtmax = 1
# dt = 1e-3
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[group1_current]
type = IntegralNewVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[group1_old]
type = IntegralOldVariablePostprocessor
variable = group1
outputs = 'console exodus'
[]
[multiplication]
type = DivisionPostprocessor
value1 = group1_current
value2 = group1_old
outputs = 'console exodus'
[]
[temp_fuel]
type = ElementAverageValue
variable = temp
block = 'fuel'
outputs = 'exodus console'
[]
[temp_moder]
type = ElementAverageValue
variable = temp
block = 'moder'
outputs = 'exodus console'
[]
# [./average_fission_heat]
# type = AverageFissionHeat
# nt_scale = ${nt_scale}
# execute_on = 'linear nonlinear'
# outputs = 'console'
# block = 'fuel'
# [../]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
[exodus]
type = Exodus
execute_on = 'timestep_end final'
[]
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/033117_nts_temp_pre_parsed_mat/3d_eigen_function_materials.i)
flow_velocity = 21.7 # cm/s. See MSRE-properties.ods
nt_scale = 1e13
ini_temp = 922
diri_temp = 922
[GlobalParams]
num_groups = 2
num_precursor_groups = 6
use_exp_form = false
group_fluxes = 'group1 group2'
sss2_input = false
account_delayed = false
temperature = 922
pre_concs = 'pre1 pre2 pre3 pre4 pre5 pre6'
[]
[Mesh]
file = '3d_msre_29x29_136.msh'
# file = jac_test.msh
[]
[MeshModifiers]
[scale]
type = Transform
transform = SCALE
vector_value = '1 1 .99'
[]
[]
[Problem]
[]
[Variables]
[group1]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[group2]
order = FIRST
family = LAGRANGE
initial_condition = 1
scaling = 1e4
[]
[]
[Kernels]
# Neutronics
[diff_group1]
type = GroupDiffusion
variable = group1
group_number = 1
[]
[sigma_r_group1]
type = SigmaR
variable = group1
group_number = 1
[]
[fission_source_group1]
type = CoupledFissionEigenKernel
variable = group1
group_number = 1
[]
[inscatter_group1]
type = InScatter
variable = group1
group_number = 1
[]
[diff_group2]
type = GroupDiffusion
variable = group2
group_number = 2
[]
[sigma_r_group2]
type = SigmaR
variable = group2
group_number = 2
[]
[fission_source_group2]
type = CoupledFissionEigenKernel
variable = group2
group_number = 2
[]
[inscatter_group2]
type = InScatter
variable = group2
group_number = 2
[]
[]
[BCs]
[vacuum_group1]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group1
[]
[vacuum_group2]
type = VacuumConcBC
boundary = 'fuel_bottoms fuel_tops moder_bottoms moder_tops moder_sides'
variable = group2
[]
[]
[Materials]
[fuel]
type = MsreFuelTwoGrpXSFunctionMaterial
block = 'fuel'
[]
[moder]
type = GraphiteTwoGrpXSFunctionMaterial
block = 'moder'
[]
[]
[Executioner]
type = InversePowerMethod
max_power_iterations = 50
xdiff = 'group1diff'
bx_norm = 'bnorm'
k0 = 1.5
pfactor = 1e-2
l_max_its = 100
# solve_type = 'PJFNK'
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
petsc_options_value = 'lu NONZERO 1e-10 preonly'
[]
[Preconditioning]
[SMP]
type = SMP
full = true
ksp_norm = none
[]
[]
[Postprocessors]
[bnorm]
type = ElmIntegTotFissNtsPostprocessor
execute_on = linear
[]
[tot_fissions]
type = ElmIntegTotFissPostprocessor
execute_on = linear
[]
[group1norm]
type = ElementIntegralVariablePostprocessor
variable = group1
execute_on = linear
[]
[group1max]
type = NodalExtremeValue
value_type = max
variable = group1
execute_on = timestep_end
[]
[group1diff]
type = ElementL2Diff
variable = group1
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[group2norm]
type = ElementIntegralVariablePostprocessor
variable = group2
execute_on = linear
[]
[group2max]
type = NodalExtremeValue
value_type = max
variable = group2
execute_on = timestep_end
[]
[group2diff]
type = ElementL2Diff
variable = group2
execute_on = 'linear timestep_end'
use_displaced_mesh = false
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
csv = true
exodus = true
[]
[Debug]
show_var_residual_norms = true
[]
# [ICs]
# [./temp_ic]
# type = RandomIC
# variable = temp
# min = 922
# max = 1022
# [../]
# [./group1_ic]
# type = RandomIC
# variable = group1
# min = .5
# max = 1.5
# [../]
# [./group2_ic]
# type = RandomIC
# variable = group2
# min = .5
# max = 1.5
# [../]
# []
(problems/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
[]
(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
# [../]
# []