MHTGR SAM Model

Contact: Thanh Hua, hua.at.anl.gov

Model link: MHTGR SAM Model

The input file (MHTGR.i) is a model for the General Atomic’s 600-MWt Modular High Temperature Gas-Cooled Reactor. Interested readers are referred to the technical summary (Vollman, 2010) for more details about the MHTGR system. The SAM model (Hu, 2017; Vegendla et al., 2019) was developed using the ring approach based on a specified coolant channel pitch of fuel assembly. In this approach, all components including fuel, reflectors, coolant channels, core barrel, reactor pressure vessel (RPV), and reactor cavity cooling system (RCCS) are modeled as concentric cylindrical rings. The active core consists of three fuel rings; inner, middle and outer ring. Each fuel ring is represented by 11 coolant channels and 22 heat structures. Thus the active core is simulated with 99 circular rings where 66 rings for homogenized fuel heat structure and 33 rings for gas coolant. Each coolant ring is sandwiched between two heat structure rings. The two surfaces of these two heat structure rings that form the walls of the coolant ring are thermally equilibrated via surface coupling to prevent unphysical temperature discontinuity. In addition, six more rings are included to represent the inner reflector, outer reflector, core barrel, RPV, RPV coolant channel, and RCCS riser wall. Note that the 600-MWt conceptual design is similar to a previous 350-MWt design developed in the 1980s (Turner et al., 1988; Neylan et al., 1988; GA, 2014; NEA/NSC, 2017).

The output files consist of: (1) a csv file that writes all user-specified variables at each time step; (2) a checkpoint folder that saves the snapshots of the simulation data including all meshes, solutions, and stateful object data. They are saved for restarting the run if needed; and (3) a ExodusII file that also has all mesh and solution data. Users can use Paraview to visualize the solution and analyze the data. This tutorial describes the content of the input file, the output files and how the model can be run using the SAM code.

Input Description

SAM uses a block-structured input syntax. Each block begins with square brackets which contain the type of input and ends with empty square brackets. Each block may contain sub-blocks. The blocks in the input file are described in the order as they appear. Before the first block entries, users can define variables and specify their values which are subsequently used in the input model. For example,

rad_R-1		    =	0  		    # the radius of Ring 1
w_R-1		    =	1.48		# the thickness of Ring 1
power_total     =   600e6		# the total power

In SAM, comments are entered after the # sign

Global parameters

This block contains the parameters such as global initial pressure, velocity, and temperature conditions, the scaling factors for primary variable residuals, etc. For example, to specify global pressure of 1.e5 Pa, the user can input



global_init_P	 = 	1.e5

This block also contains a sub-block PBModelParams which specifies the modeling parameters associated with the primitive-variable based fluid model. New users should leave this sub-block unchanged.

EOS

This block specifies the Equation of State. The user can choose from built-in fluid library for common fluids like air, nitrogen, helium, sodium, molten salts, etc. The user can also input the properties of the fluid as constants or function of temperature. For example, the built-in eos for air can be input as

[EOS]
  [eos_air]
    type = AirEquationOfState
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Water is used as coolant at the RCCS, and its properties in SI units are input as follows.

[EOS]
  [eos_water]
    type = PTConstantEOS
    p_0 = 70e5 # Pa
    rho_0 = 905
    beta = 0
    cp = 4330
    h_0 = 705000
    T_0 = 439
    mu = 0.00016
    k = 0.68
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Functions

Users can define functions for parameters used in the model. These include temporal, spatial, and temperature dependent functions. For example, users can input enthalpy as a function of temperature, power history as a function of time, or power profile as a function of position. The input below specifies graphite thermal conductivity as a function of temperature (in K)

[Functions]
  [kgraphite]
    #G-348 graphite therm. cond; x- Temperature [K], y-Thermal condiuctivity [W/m-K]
    type = PiecewiseLinear
    x = '295.75 374.15 472.45 574.75 674.75 774.75 874.75 974.85 1074.45 1173.95 1274.05'
    y = '133.02 128.54 117.62 106.03 96.7 88.61 82.22 76.52 71.78 67.88 64.26'
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

MaterialProperties

Material properties are input in this block. The values can be constants or temperature dependent as defined in the Functions block. For example, the properties of graphite are input as

[MaterialProperties]
  [graphite-mat]
    # Material name
    type = SolidMaterialProps
    k = kgraphite # Thermal conductivity
    Cp = cpgraphite # Specific heat
    rho = rhographite # Density
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

The thermal conductivity is defined by the function kgraphite which appears under the Functions block.

ComponentInputParameters

This block is used to input common features for Components (section below) so that these common features do not need to be repeated in the inputs for Components later on. For example, if pipes are used in various parts of the model and the pipes all have the same diameter, then the diameter can be specified in ComponentsInputParameters and it applies to all pipes used in the model.

[ComponentInputParameters]
  [R2_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_one}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  [R2_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_one}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  ###
  [R3_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_two}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  [R3_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_two}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  ##
  [R4_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_three}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  [R4_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 0'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_1}
    elem_number_radial = ${radial_nElem_1}
    elem_number_axial = ${axial_nElem_1}
    dim_hs = 2
    material_hs = 'fuel-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    hs_power = ${power_total}
    power_fraction = '${power_fr_ring_three}' # Power fraction of different blocks. If not provided, calculated based on the volume of differnt blocks
    hs_power_shape_fn = power_decay_fn #ppf_axial       # Axial power profile. If not provided, assuming uniform
  []

  ##
  [R2_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_1}
    n_elems = ${axial_nElem_1}
    A = ${area_ring_1}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R3_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_1}
    n_elems = ${axial_nElem_1}
    A = ${area_ring_2}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R4_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_1}
    n_elems = ${axial_nElem_1}
    A = ${area_ring_3}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []
  ##################################
  ## Upper Structure
  [R2UP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R2UP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    #    Hw_left = ${wallHeatTrans_coef}
    hs_power = 0
  []

  ###
  [R3UP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R3UP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    #    Hw_left = ${wallHeatTrans_coef}
    hs_power = 0
  []

  ##
  [R4UP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R4UP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 ${axial_length_1}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_2}
    elem_number_radial = ${radial_nElem_2}
    elem_number_axial = ${axial_nElem_2}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    #    Hw_left = ${wallHeatTrans_coef}
    hs_power = 0
  []

  ##
  [R2UP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_2}
    n_elems = ${axial_nElem_2}
    A = ${area_ring_1}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R3UP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_2}
    n_elems = ${axial_nElem_2}
    A = ${area_ring_2}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R4UP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_2}
    n_elems = ${axial_nElem_2}
    A = ${area_ring_3}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []
  ##################################
  ## LOWER  CORE SUPPORT Structure
  [R2LP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R2LP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    #    Hw_left = ${wallHeatTrans_coef}
    hs_power = 0
  []

  ###
  [R3LP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R3LP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    #    Hw_left = ${wallHeatTrans_coef}
    hs_power = 0
  []

  ##
  [R4LP_LHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Adiabatic Coupled'
    hs_power = 0
  []

  [R4LP_RHS_param]
    type = PBCoupledHeatStructureParameters
    position = '0 0 -${axial_length_3}'
    orientation = '0 0 1'
    hs_type = cylinder
    length = ${axial_length_3}
    elem_number_radial = ${radial_nElem_3}
    elem_number_axial = ${axial_nElem_3}
    dim_hs = 2
    material_hs = 'graphite-mat'
    Ts_init = ${Ts_1}
    HS_BC_type = 'Coupled Adiabatic'
    hs_power = 0
  []

  ##
  [R2LP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_3}
    n_elems = ${axial_nElem_3}
    A = ${area_ring_1}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R3LP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_3}
    n_elems = ${axial_nElem_3}
    A = ${area_ring_2}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  [R4LP_channelParam]
    type = PBOneDFluidComponentParameters
    orientation = '0 0 1'
    eos = eos
    length = ${axial_length_3}
    n_elems = ${axial_nElem_3}
    A = ${area_ring_3}
    Dh = ${channel_dia}
    HTC_geometry_type = Pipe # pipe model
    #    f = ${fric_coef}                            # User specified friction coefficient (Blausis f=(100 Re)^-0.25
    #    Hw = ${wallHeatTrans_coef}                  # User specified heat transfer coefficient (Dittus-Boelter)
    initial_V = ${core_init_v}
  []

  #####
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Components

This block provides the specifications for all components that make up the primary and secondary loops. The components consist of: reactor, coolant channels, heat structures (fuel, reflectors, core barrel, RPV and RCCS), pipes, heat exchanger, blower and junctions for connecting components. In the reactor component, the reactor power is an input and this includes normal operating power and decay heat.

[Components]
  [reactor]
    type = ReactorPower
    initial_power = 600e6
    #    decay_heat = power_history
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

The coolant channels are modeled as 1-D fluid flow components, and heat structures are modeled as 2-D components. Table 1 shows the names of the rings in the model starting from the center of the core toward the RCCS.

Table 1: Names of rings in the SAM model.

NameDescriptionNote
R1Inner reflector
R2_n-LInner fuel ring left structure
R2C-nInner fuel ring coolant channeln ranges from 1 to 11
R2_n-RInner fuel ring right structuren ranges from 1 to 11
R3_n-LMiddle fuel ring left structuren ranges from 1 to 11
R3C-nMiddle fuel ring coolant channeln ranges from 1 to 11
R3_n-RMiddle fuel ring right structuren ranges from 1 to 11
R4_n-LOuter fuel ring left structuren ranges from 1 to 11
R4C-nOuter fuel ring coolant channeln ranges from 1 to 11
R4_n-ROuter fuel ring right structuren ranges from 1 to 11
R5Outer reflector
R6Core barrel
R6_CUpcomer coolant channel
R7Reactor pressure vessel
RCCS_ACReactor cavity cooling system

In this configuration, each coolant channel communicates with its two adjacent heat structures through the variable HT_surface_area_density_right and HT_surface_area_density_left such as shown below

  [R4_9-L]
    type = PBCoupledHeatStructure
    input_parameters = R4_LHS_param
    name_comp_right = R4C-9
    HT_surface_area_density_right = ${aw_R4-9-L}
    width_of_hs = ${w_R4-9-L}
    radius_i = ${rad_R4-9-L}
  []

  [R4C-9]
    type = PBOneDFluidComponent
    position = '0 ${rad_R4C-9} 0'
    input_parameters = R4_channelParam
  []

  [R4_9-R]
    type = PBCoupledHeatStructure
    input_parameters = R4_RHS_param
    name_comp_left = R4C-9
    HT_surface_area_density_left = ${aw_R4-9-R}
    width_of_hs = ${w_R4-9-R}
    radius_i = ${rad_R4-9-R}
  []
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Adjacent heat structures are connected using SurfaceCoupling to assure temperature continuity

[Components]
  [Gap_R4_9]
    type = SurfaceCoupling
    use_displaced_mesh = true
    coupling_type = GapHeatTransfer
    surface1_name = 'R4_9-R:outer_wall'
    surface2_name = 'R4_10-L:inner_wall'
    width = 1e-20
    radius_1 = ${rad_R4-9-L}
    length = ${axial_length_1}
    eos = eos
    h_gap = ${hGap_cond}
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

In SAM, 1-D components are connected using PBSingleJunction. The following input is used to connect the outlet of component R4C-1 to the inlet of component R4CUP-1.

[Components]
  [Branch_R4CUP-1]
    type = PBSingleJunction
    inputs = 'R4C-1(out)'
    outputs = 'R4CUP-1(in)'
    eos = eos
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Heat exchangers are modeled using PBHeatExchanger including the fluid flow in the primary and secondary sides, convective heat transfer, and heat conduction in tube wall. Pumps are modeled using PBPump.

Postprocessors

This block is used to specify the output variables written to a csv file that can be further processed in Excel or Python. For example, to output the temperature and velocity in R3C-11:

  [R3C11_T_in]
    type = ComponentBoundaryVariableValue
    variable = temperature
    input = R3C-11(in)
  []

  [R3C11_V_in]
    type = ComponentBoundaryVariableValue
    variable = velocity
    input = R3C-11(in)
  []
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

To output the maximum temperature in R6:

[Postprocessors]
  [R6_max]
    type = NodalExtremeValue
    block = 'R6:hs0'
    variable = T_solid
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Preconditioning

This block describes the preconditioner used by the solver. New users can leave this block unchanged.

[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
    solve_type = 'PJFNK'
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

Executioner

This block describes the calculation process flow. The user can specify the start time, end time, time step size for the simulation. Other inputs in this block include PETSc solver options, convergence tolerance, quadrature for elements, etc. which can be left unchanged.

[Executioner]
  type = Transient
  dt = 1.
  dtmin = 1e-3
  dtmax = 14400

  start_time = '${fparse -3*86400}'
  end_time = 0 #1e6

  # [TimeStepper]
  #   type = FunctionDT
  #   function = time_stepper
  #   min_dt = 1e-6
  # []

  [TimeStepper]
    type = IterationAdaptiveDT
    growth_factor = 1.5
    optimal_iterations = 8
    cutback_factor = 0.8
    cutback_factor_at_failure = 0.5
    dt = 1.0
  []

  petsc_options_iname = '-pc_type -ksp_gmres_restart -mat_mffd_err'
  petsc_options_value = 'lu       101                1e-6'
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-5
  nl_max_its = 15

  l_tol = 1e-4
  l_max_its = 100

  [Quadrature]
    type = TRAP
    order = FIRST
  []
[]
(htgr/mhtgr/mhtgr_sam/MHTGR.i)

References

  1. GA. General Atomics' Prismatic Modular High Temperature Gas Cooled Reactor. Technical Report, General Atomics, 2014.[BibTeX]
  2. Rui Hu. SAM Theory Manual. Technical Report ANL/NE-17/4, Argonne National Laboratory, Lemont, IL, 2017.[BibTeX]
  3. NEA/NSC. NEA Benchmark of the Modular High Temperature Gas-Cooled Reactor – 350 MW Core Design Volumes I and II. Technical Report NEA/NSC/R(2017)4, Organisation for Economic Co-operation and Developmen, 2017.[BibTeX]
  4. A J Neylan, D V Graf, and A C Millunzi. The modular high temperature gas-cooled reactor (MHTGR) in the U.S. Nuclear Engineering and Design, 109(1):99–105, 1988. doi:10.1016/0029-5493(88)90146-X.[BibTeX]
  5. R F Turner, A M Baxter, O M Stansfield, and R E Vollman. Annular core for the modular high-temperature gas-cooled reactor (MHTGR). Nuclear Engineering and Design, 109(1):227–231, 1988. doi:10.1016/0029-5493(88)90163-X.[BibTeX]
  6. Prasad Vegendla, Rui Hu, and Ling Zou. Multi-Scale Modeling of Thermal-Fluid Phenomena Related to Loss of Forced Circulation Transient in HTGRs. Technical Report ANL-19/35, Argonne National Laboratory, 2019.[BibTeX]
  7. Russell Vollman. Presentation: HTGR Technology Course for the Nuclear Regulatory Commission. 2010.[BibTeX]