Reactor Physics Models

Cross Section Generation

The cross-section preparation capability for PBRs in Griffin is not currently available. Thus, the benchmark relied on the lattice code DRAGON (Reitsma et al., 2013) to prepare microscopic cross sections.

The DRAGON data libraries used in this work are based on the ENDF/B-VIII.r0 evaluation. For the neutron self-shielding method, the SHEM 281 group library was used with the subgroup projection method (Hébert, 2009). The double heterogeneity treatment is based on the H\'ebert method. A current-coupled collision probability (CCCP) flux solution is used for spatial homogenization and energy condensation of microscopic cross sections. The intra-core neutron leakage affects the local spectrum significantly, and it will have an impact on the cross-section homogenization. Nevertheless, this approach with the generated cross sections serves as an initial set to perform preliminary calculations until more sophisticated methods are available in Griffin. The nominal depletion values are as follows:

ParameterValue
Fuel temperature K898.0
Moderator temperature K803.0
Neutron flux n/cm2/sec1.521

Two models were built in DRAGON. These are a pebble model and a pebble ensemble as show in Figure 1. The cross sections were prepared in 9 energy group structure and the transmutation and decay chain has 295 isotopes.

Dragon models.

Figure 1: Dragon models.

Cross Section File

The cross-section files are located under "\HTR_PM_PD\xsections\HTR-PM_9G-Tnew.xml.tar.gz". first you need to unzip the compressed file using the following command



The transmutation and decay chain file is located under "HTR_PM_PD\xsections\DRAGON5_DT.xml".

The cross sections were prepared in 9 energy group structure and the transmutaion and decay chain has 295 isotopes.



## Neutronics Model

A neutronics model of the HTR-PM core was developed with Griffin using an axisymmetric (R-Z) geometry with homogenized core regions. Griffin solves steady-state neutron diffusion equation and pebble   streamline calculations which solves 1D streamline advection transmutation equation for pebble depletion.
The model is shown in [htr-pm-griffin-model].

!media /htrpm_coremultiphysics/htr-pm-griffin-model.png
  style=width:50%
  id=htr-pm-griffin-model
  caption=Griffin model.

The Griffin model uses six equally spaced streamlines to represent pebble depletion that are centered within the active core elements. The streamlines are located at radii of $r=12.5, 37.5, 62.5, 87.5, 112.5, 137.5$ cm. Pebble velocity is assumed to be uniform so that the fraction of the volumetric flow rate of pebbles through each channel is proportional to the channel area. The six channels are straight down and end at the bottom of the pebble bed.

The heavy metal loading of $7$ g per pebble, the average discharge burnup of $90$ MWd/kg, the average power density, and the packing fraction of $0.61$, the total irradiation time in the core is estimated to be $1,055$ days, which corresponds to $70$ days per pass in the 15-pass core design The pebble speed ($15.6$ cm/d) and pebble reloading rates ($5,949$ pebbles per day). The discharge burnup of $90$~MWd/kg or $4.82E+14$ $J/m^3$. A total of 10 burnup groups forms the base discretization of the burnup variable.

The local decay heat power in Griffin is computed from the decay released by fission products as a function of time along with provided by the neutron transmutation and decay chain.

The steady state neutronics calculation is run through bluecrab using the following command

```
 mpirun -np 48 blue_crab-opt -i  htr_pm_neutronics_ss.i

The steady state input is composed of blocks. Initially, the cross sections are imported in the GlobalParams block

[GlobalParams]
  library_file = '../xsections/HTR-PM_9G-Tnew.xml'
  library_name = 'HTR-PM'
  is_meter = true
  plus = true
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

The characteristics of the transport solution are identified as

[TransportSystems]
  particle = neutron
  equation_type = eigenvalue
  G = 9
  ReflectingBoundary = 'left'
  VacuumBoundary = 'right top bottom'
  [diff]
    scheme = CFEM-Diffusion
    family = LAGRANGE
    order = FIRST
    n_delay_groups = 6
    assemble_scattering_jacobian = true
    assemble_fission_jacobian = true
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

The mesh is identified as and contains assignment of materials IDs through assign_material_idas follows:

[Mesh]
  type = MeshGeneratorMesh
  block_id = '         1              2           3          4             5             6
                             7              8          61         71'
  block_name = 'pebble_bed      upper_ref   lower_ref     cavity    hot_plenum   cold_plenum
                    radial_ref   carbon_brick    riser cr'
  #uniform_refine = 1
  [cartesian_mesh]
    type = CartesianMeshGenerator
    dim = 2
    # Total height: 16.8 m
    dx = ' 0.250 0.250 0.250 0.250 0.250 0.250
                     0.010 0.050 0.130 0.080 0.080 0.080
                      0.200 0.120 0.125 0.125'
    ix = ' 1 1 1 1 1 1
                     1 1 1 1 1 1
                     1 1 1 1'
    dy = ' 0.400 0.400 0.100 0.100 0.800 0.300 0.200 0.300 0.216 0.412
                     0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550
                     0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550 0.550
                     0.760 0.712 0.300 0.400 0.400 '
    # base: converges fine
    iy = '1 1 1 1 2 1 1 1 1 1
                    1 1 1 1 1 1 1 1 1 1
                    1 1 1 1 1 1 1 1 1 1
                    2 2 1 1 1'
    subdomain_id = ' 8  8  8  8  8  8  8  8   8  8  8  8   8  8  8  8
                     8  8  8  8  8  8  8  8   8  8  8  8   8  8  8  8
                     7  7  7  7  7  7  7  7   7  7  7  7   7  7  8  8
                     7  7  7  7  7  7  7  7   7  7  7  7   7  7  8  8
                     5  5  5  5  5  5  5  5   5  7  7  7  61  7  8  8
                     3  3  3  3  3  3  7  7  71  7  7  7  61  7  8  8
                     3  3  3  3  3  3  7  7  71  7  7  7  61  7  8  8
                     3  3  3  3  3  3  7  7  71  7  7  7  61  7  8  8
                     3  3  3  3  3  3  7  7  71  7  7  7  61  7  8  8
                     3  3  3  3  3  3  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     1  1  1  1  1  1  7  7  71  7  7  7  61  7  8  8
                     4  4  4  4  4  4  7  7  71  7  7  7  61  7  8  8
                     4  2  2  2  2  2  7  7  71  7  7  7  61  7  8  8
                     6  6  6  6  6  6  6  6  71  6  6  6   6  7  8  8
                     7  7  7  7  7  7  7  7  71  7  7  7   7  7  8  8
                     8  8  8  8  8  8  8  8  71  8  8  8   8  8  8  8 '
  []
  [assign_material_id]
    type = SubdomainExtraElementIDGenerator
    input = cartesian_mesh
    extra_element_id_names = 'material_id'
    subdomains = '1 2 3 4 5 6 7 8 61 71'
    extra_element_ids = '1 1 1 1 1 1 1 1 1 1'
  []
  coord_type = RZ
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Depletion for the pebbles is defined using the PebbleBed block as

[PebbleBed]
  block = 'pebble_bed'
  power = '${fparse total_power}'
  integrated_power_postprocessor = total_power
  power_density_variable = power_density
  family = MONOMIAL
  order = CONSTANT

  porosity_name = porosity
  burnup_group_boundaries = ${burnup_group_boundaries}

  # cross section data
  library_file = '../xsections/HTR-PM_9G-Tnew.xml'
  library_name = 'HTR-PM'
  burnup_grid_name = 'Burnup'
  fuel_temperature_grid_name = 'Tfuel'
  moderator_temperature_grid_name = 'Tmod'
  # avoid physicality check (old XS library)
  dtl_physicality = DISABLE

  # transmutation data
  dataset = ISOXML
  isoxml_data_file = '../xsections/DRAGON5_DT_DH_295.xml'
  isoxml_lib_name = 'DRAGON'

  initial_moderator_temperature = ${initial_temperature}
  initial_fuel_temperature = ${initial_temperature}
  n_fresh_pebble_types = 1
  fresh_pebble_compositions = 'fresh_pebble'
  track_isotopes = '  U235    U236    U238   PU238   PU239   PU240   PU241   PU242   AM241
                                     AM242M   CS135   CS137   XE135   XE136    I131    I135    SR90'
  output_densities_to_exodus = false

  [DepletionScheme]
    type = ConstantStreamlineEquilibrium
    pebble_unloading_rate = ${pebble_unloading_rate}
    pebble_flow_rate_distribution = '0.027777778 0.083333333 0.138888889 0.194444444 0.25 0.305555556'
    burnup_limit = 4.818E+14
    major_streamline_axis = y
    pebble_diameter = 0.06
    streamline_points = '${r_streamline_1} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_1} ${axial_reflector_height} 0;
                         ${r_streamline_2} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_2} ${axial_reflector_height} 0;
                         ${r_streamline_3} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_3} ${axial_reflector_height} 0;
                         ${r_streamline_4} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_4} ${axial_reflector_height} 0;
                         ${r_streamline_5} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_5} ${axial_reflector_height} 0;
                         ${r_streamline_6} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_6} ${axial_reflector_height} 0'
    streamline_segment_subdivisions = '20; 20; 20; 20; 20; 20'
    sweep_tol = 1e-7
    sweep_max_iterations = 200
  []

  # pebble conduction
  pebble_conduction_input_file = 'pebble_triso_ss.i'
  pebble_positions_file = 'pebble_heat_pos.txt'
  surface_temperature_sub_app_postprocessor = T_surface
  surface_temperature_main_app_variable = T_solid
  power_sub_app_postprocessor = pebble_power_density
  fuel_temperature_sub_app_postprocessor = T_fuel
  moderator_temperature_sub_app_postprocessor = T_mod
  decay_heat = true
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Materials are defined using the Materials block as

[Materials]
  # upper and lower reflectors at 70% density
  [axial_reflector]
    type = CoupledFeedbackNeutronicsMaterial
    block = 'upper_ref lower_ref'
    grid_names = 'Tmod'
    grid_variables = 'T_solid'
    isotopes = 'Graphite    U235'
    densities = '6.25284E-02  0.0'
    material_id = 1
  []
  # upper lower plenum at 80% density
  [plenum]
    type = CoupledFeedbackNeutronicsMaterial
    block = 'hot_plenum cold_plenum'
    grid_names = 'Tmod'
    grid_variables = 'T_solid'
    isotopes = 'Graphite     U235'
    densities = '7.14611E-02   0.0'
    material_id = 1
  []
  [reflector]
    type = CoupledFeedbackNeutronicsMaterial
    block = 'radial_ref carbon_brick'
    grid_names = 'Tmod'
    grid_variables = 'T_solid'
    isotopes = 'Graphite     U235'
    densities = '8.93263E-02  0.0'
    material_id = 1
  []
  # control_rod at 68% density
  [control_rod]
    type = CoupledFeedbackRoddedNeutronicsMaterial
    block = 'cr'
    grid_names = 'Tmod  Tmod  Tmod'
    grid_variables = 'T_solid  T_solid  T_solid'
    isotopes = '   Graphite ; Graphite    B10          B11         C12  ;      Graphite    B10         B11         C12  '
    densities = ' 6.4277e-02   6.4277e-02  1.6373e-03   5.9938e-03  1.6004e-02  6.4277e-02  1.6373e-03  5.9938e-03  1.6004e-02   '
    segment_material_ids = '1   1   1'
    rod_segment_length = 11.878
    front_position_function = 'CR_bott'
    rod_withdrawn_direction = 'y'
  []
  # riser at 68% density
  [riser]
    type = CoupledFeedbackNeutronicsMaterial
    block = 'riser'
    grid_names = 'Tmod'
    grid_variables = 'T_solid'
    isotopes = 'Graphite     U235'
    densities = '6.07419E-02  0.0'
    material_id = 1
  []
  [cavity]
    type = ConstantNeutronicsMaterial
    block = 'cavity'
    fromFile = false
    # computed from Serpent CMM
    diffusion_coef = '4.68857E-01 1.52760E-01 1.21025E-01 1.08241E-01  1.72433E-01  1.65906E-01  1.96579E-01  1.79868E-01  2.14727E-01'
    sigma_r = '0 0 0 0 0 0 0 0 0'
    sigma_s = ' 7.10949E-01 0 0 0 0 0 0 0 0
                       0 2.18207E+00 0 0 0 0 0 0 0
                       0 0 2.75425E+00 0 0 0 0 0 0
                       0 0 0 3.07955E+00 0 0 0 0 0
                       0 0 0 0 1.93312E+00 0 0 0 0
                       0 0 0 0 0 2.00917E+00 0 0 0
                       0 0 0 0 0 0 1.69567E+00 0 0
                       0 0 0 0 0 0 0 1.85321E+00 0
                       0 0 0 0 0 0 0 0 1.55236E+00'
    diffusion_coefficient_scheme = user_supplied
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Preconditioning parameters for the solver are defined as

[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Finally, the execution characteristics of the problem are defined with the Executioner block

[Executioner]
  type = Eigenvalue
  solve_type = PJFNKMO
  constant_matrices = true
  petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart '
  petsc_options_value = 'hypre boomeramg 100'
  line_search = l2 #none

  # Linear/nonlinear iterations.
  l_max_its = 200
  l_tol = 1e-3
  nl_max_its = 200
  # tolerances on the equilibrium calculation are
  # similar to on the transients at this time, a small drift
  # in the null transient could occur
  nl_rel_tol = 1e-5
  nl_abs_tol = 1e-6
  fixed_point_max_its = 50
  fixed_point_rel_tol = 1e-5
  fixed_point_abs_tol = 1e-6
  free_power_iterations = 4
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Equilibrium Core Calculations

The equilibrium core is attained via the streamline depletion method available in Griffin (Schunert et al., 2020). In this depletion approach, a 2D or 3D core flux solution is mapped to 1D axial streamlines. A set of 1D steady-state advection-transmutation equations for all isotopes are solved in each streamline. Griffin assumes that the pebble loading and unloading rates are identical. Full details on the equilibrium model can be found in (Jaradat et al., 2023).

The depletion setup is requested through the Griffin input. Specifically, in the input, the definition of the DepletionScheme as in the following is used to define the fuel pebbles as depletable material as

[PebbleBed]
  [DepletionScheme]
    type = ConstantStreamlineEquilibrium
    pebble_unloading_rate = ${pebble_unloading_rate}
    pebble_flow_rate_distribution = '0.027777778 0.083333333 0.138888889 0.194444444 0.25 0.305555556'
    burnup_limit = 4.818E+14
    major_streamline_axis = y
    pebble_diameter = 0.06
    streamline_points = '${r_streamline_1} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_1} ${axial_reflector_height} 0;
                         ${r_streamline_2} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_2} ${axial_reflector_height} 0;
                         ${r_streamline_3} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_3} ${axial_reflector_height} 0;
                         ${r_streamline_4} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_4} ${axial_reflector_height} 0;
                         ${r_streamline_5} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_5} ${axial_reflector_height} 0;
                         ${r_streamline_6} ${fparse core_height + axial_reflector_height} 0 ${r_streamline_6} ${axial_reflector_height} 0'
    streamline_segment_subdivisions = '20; 20; 20; 20; 20; 20'
    sweep_tol = 1e-7
    sweep_max_iterations = 200
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Decay Heat Calculation

A decay heat model was added for the equilibrium core model to properly perform the loss of forced cooling transients. The decay heat source is mainly important for transient analyses when the fission power is reduced to zero due to negative reactivity insertion. In steady state, the decay heat is assumed to be included in the energy released per fission, and, thus, assumed to have the same distribution as the prompt fission power. In this decay heat model, the fission products are grouped into a few decay heat precursor groups (KD), and each group has its unique decay heat fraction () and constant (). Details on the decay model can be found in (Jaradat et al., 2023).

To calculate the decay heat using Griffin, an AuxVariable for the decay heat is defined and then using an AuxKernel the methods of how it is calculated is defined. Here is definition of the HTR-PM neutronic model AuxVariables

[AuxVariables]
  [T_solid]
    family = MONOMIAL
    order = CONSTANT
    initial_condition = ${initial_temperature}
  []
  [T_fluid]
    family = MONOMIAL
    order = CONSTANT
    initial_condition = ${initial_temperature}
  []
  [Tfuel_avg]
    order = CONSTANT
    family = MONOMIAL
  []
  [Tfuel_max]
    order = CONSTANT
    family = MONOMIAL
  []
  [Tmod_avg]
    order = CONSTANT
    family = MONOMIAL
  []
  [Tmod_max]
    order = CONSTANT
    family = MONOMIAL
  []
  [Burnup]
    order = CONSTANT
    family = MONOMIAL
    components = 10
    # use burnup midpoints and add one additional for discard group
    initial_condition = '2.675E+13 8.025E+13 1.337E+14 1.872E+14 2.407E+14 2.942E+14 3.476E+14 4.011E+14 4.546E+14 4.546E+14'
    outputs = none
  []
  [Burnup_avg]
    order = CONSTANT
    family = MONOMIAL
  []
  [porosity]
    family = MONOMIAL
    order = CONSTANT
    initial_condition = 0.39
    block = 'pebble_bed'
  []
  # Prompt power density is only added automatically for transients
  [prompt_power_density]
    order = CONSTANT
    family = MONOMIAL
  []
  [power_peaking]
    order = CONSTANT
    family = MONOMIAL
  []
  [pden_avg]
    order = CONSTANT
    family = MONOMIAL
  []
  [pden_max]
    order = CONSTANT
    family = MONOMIAL
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

The AuxKernels for the HTR-PM neutronic model are defined as:

[AuxKernels]
  [Tfuel_avg_aux]
    type = PebbleAveragedAux
    block = pebble_bed
    variable = Tfuel_avg
    array_variable = triso_temperature
    pebble_volume_fraction = pebble_volume_fraction
    n_fresh_pebble_types = 1
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [Tfuel_max_aux]
    type = ArrayVarExtremeValueAux
    block = pebble_bed
    variable = Tfuel_max
    array_variable = triso_temperature
    value_type = MAX
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [Tmod_avg_aux]
    type = PebbleAveragedAux
    block = pebble_bed
    variable = Tmod_avg
    array_variable = graphite_temperature
    pebble_volume_fraction = pebble_volume_fraction
    n_fresh_pebble_types = 1
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [Tmod_max_aux]
    type = ArrayVarExtremeValueAux
    block = pebble_bed
    variable = Tmod_max
    array_variable = graphite_temperature
    value_type = MAX
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [Burnup_avg_aux]
    type = PebbleAveragedAux
    block = pebble_bed
    variable = Burnup_avg
    array_variable = Burnup
    pebble_volume_fraction = pebble_volume_fraction
    n_fresh_pebble_types = 1
    execute_on = 'INITIAL TIMESTEP_END'
  []

  [prompt_power_density_aux]
    type = VectorReactionRate
    block = 'pebble_bed'
    scalar_flux = 'sflux_g0 sflux_g1 sflux_g2 sflux_g3 sflux_g4
                              sflux_g5 sflux_g6 sflux_g7 sflux_g8'
    variable = prompt_power_density
    cross_section = kappa_sigma_fission
    scale_factor = power_scaling
    dummies = UnscaledTotalPower
    execute_on = 'INITIAL timestep_end'
  []

  [pden_max_aux]
    type = ArrayVarExtremeValueAux
    block = 'pebble_bed'
    variable = pden_max
    array_variable = partial_power_density
    value_type = MAX
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [pden_avg_aux]
    type = PebbleAveragedAux
    block = 'pebble_bed'
    variable = pden_avg
    array_variable = partial_power_density
    pebble_volume_fraction = pebble_volume_fraction
    n_fresh_pebble_types = 1
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [power_peaking_aux]
    type = ParsedAux
    block = 'pebble_bed'
    variable = power_peaking
    coupled_variables = 'power_density'
    expression = 'power_density / 3.21525E+06'
    execute_on = 'initial timestep_end'
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Multiphysics

Linking the neutronic solution calculation with thermal fluid solution (which is presented in the next section) is done using the MultiApps block

[MultiApps]
  [flow]
    type = FullSolveMultiApp
    input_files = 'htr-pm-flow-fv-ss.i'
    keep_solution_during_restore = true
    update_old_solution_when_keeping_solution_during_restore = true
    positions = '0 0 0'
    execute_on = 'TIMESTEP_END'
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

Transferring field data is done through defining the following block

[Transfers]
  [power_density_to_flow]
    type = MultiAppNearestNodeTransfer
    to_multi_app = flow
    source_variable = power_density
    variable = power_density
    fixed_meshes = true
    execute_on = 'TIMESTEP_END'
  []
  [T_solid_from_flow]
    type = MultiAppNearestNodeTransfer
    from_multi_app = flow
    source_variable = T_solid
    variable = T_solid
    execute_on = 'TIMESTEP_END'
    fixed_meshes = true
  []
  [T_fluid_from_flow]
    type = MultiAppNearestNodeTransfer
    from_multi_app = flow
    source_variable = T_fluid
    variable = T_fluid
    execute_on = 'TIMESTEP_END'
    fixed_meshes = true
  []
[]
(htgr/htr-pm/core-multiphysics/updated_equilibrium_core/htr_pm_neutronics_ss.i)

The setup of the applications is described in Figure 2. Due to the effectively "larger" time step in the neutronics calculations, Griffin is set as the parent application. The neutronics calculation (a depletion step) is run as a multiapp, this is followed by running the pebble/Triso conduction model which obtains pebble temperatures in various places in the core. Then Pronghorn is run to perform thermal conduction uses the solution from the conduction model to calculate the coolant temperature.

Application setup for equilibrium core calculation.

Figure 2: Application setup for equilibrium core calculation.

References

  1. Alain Hébert. Development of the subgroup projection method for resonance self-shielding calculations. Nuclear science and engineering, 162(1):56–75, 2009.[Export]
  2. Mustafa Kamel Mohammad Jaradat, Sebastian Schunert, and Javier Ortensi. Gas-cooled high-temperature pebble-bed reactor reference plant model. Technical Report, Idaho National Laboratory (INL), Idaho Falls, ID (United States), 2023.[Export]
  3. Frederik Reitsma, Kostadin Ivanov, Enrico Sartori, Hyun Chul Lee, Antti Daavittila, Jaakko Leppanen, Enrico Girardi, Maurice Grimod, Oliver Koeberl, Simone Massara, and others. Pbmr coupled neutronics/thermal-hydraulics transient benchmark. the pbmr-400 core design-volume 1 the benchmark definition. 2013.[Export]
  4. Sebastian Schunert, Guillaume Louis Giudicelli, Paolo Balestra, Javier Ortensi, Ramiro Freile, and Logan Harbour. Nrc multiphysics analysis capability deployment (fy2021–part 1). Technical Report, Idaho National Lab.(INL), Idaho Falls, ID (United States), 2020.[Export]