Introduction

Contact: Jun Fang, fangj.at.anl.gov

Model link: FHR SAM Model

The SAM (Hu, 2017) input files (PBFHR-SS.i for steady state and PBFHR-TR.i for loss of flow transient) were built to model the Mark 1 pebble-bed fluoride-salt-cooled high temperature reactor (FHR) which was developed by the University of California Berkeley (Andreades et al., 2014). A schematic of the reactor is shown in Figure 1. FHRs exhibit different thermal hydraulic phenomenon compared to conventional advanced nuclear reactor concepts, such as decay heat removal through natural circulation using Direct Reactor Auxiliary Cooling System (DRACS) loops. Therefore, there is a need for modeling and simulation tools to accurately predict the thermal response of FHRs for a range of postulated transient events. This study focuses on modeling the FHR core under normal operation and a loss of forced flow with SCRAM event (Ahmed et al., 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.

Figure 1: Mk-1 PB-FHR schematic (used with permission, Andreades et al. (2014)).

Input File 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 in the input file.

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(s) of State. The user can choose from built-in fluid libraries 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 FLIBE can be input as

[EOS]
  [eos]
    type = SaltEquationOfState # use built-in equation of state of Flibe
    salt_type = Flibe
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.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 stainless steel are input as

[MaterialProperties]
  [ss-mat]
    type = SolidMaterialProps
    k = 40
    Cp = 583.333
    rho = 6e3
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

Note that all units are in SI by default.

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 decay heat as a function of time

[Functions]
  [shutdownPower]
    type = PiecewiseLinear
    x = '0    100    101    102    104    108    116    124    132    140    148    160    220    340    580    1060    1540    2020    2500    2980    3460    3700    12300'
    y = '1.0000    1.0000    0.0530    0.0508    0.0479    0.0441    0.0403    0.0378    0.0361    0.0347    0.0336    0.0322    0.0279    0.0242    0.0210    0.0179    0.0161    0.0148    0.0138    0.0130    0.0124    0.0121    0.0081'
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

Components

This is the main block in the input file. It provides the specifications for all components that make up the DRACS and primary loops. The primary loop, shown schematically in Figure 2, consists of three branches: core, DRACS heat exchanger (DHX), and coiled tube air heater (CTAH). The components and their nodalization IDs in each branch are listed in Table 1. The nodalization IDs are also specified in the input file. The main components in the primary loop are a reactor, the core channel, a heat exchanger, pump, plena, tank, and piping. The reactor power and decay heat profile are user-input

[Components]
  [reactor]
    type = ReactorPower
    initial_power = 2.36e8 # Initial total reactor power
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

The core channel is modeled using PBCoreChannel in which the cylindrical fuel elements are modeled as three heat structures: fuel sandwiched between an inner and outer material (h451). The thickness of each structure is specified by the user and because power is generated only in the fuel, the power fraction in the three structures are input as ‘0 1 0’. The power distribution in the axial direction is defined by the user in the Paxial function. Explanation for other input variables can be found in the user manual.

Figure 2: Nodalization of the primary loop model in SAM model (used with permission, Zweibaum (2015))

Table 1: Components in Mk-1 PB-FHR Primary and DRACS loops.

ComponentsDetails
Core branch
Pebble bed14.580.031.33
Core bypass24.580.010.133
Hot salt collection ring33.960.5670.252
Hot salt extraction pipe43.770.5660.251
Branch260.50.580.264
CTAH branch
Reactor vessel to hot salt well53.730.580.264
Hot salt well621.453.31
Hot salt well to CTAH73.230.440.304
CTAH hot manifold83.4180.280.493
CTAH salt side918.470.004570.449
CTAH cold manifold103.4180.1750.192
CTAH to drain tank113.480.4380.302
Standpipe126.510.4380.302
Standpipe to reactor vessel136.6030.4380.302
Injection plenum143.040.4380.302
Downcomer154.760.0560.304
Branch270.50.0560.304
Inlet plenum280.20.031.33
DHX branch
Downcomer to DHX160.580.150.0353
DHX shell side172.50.01090.222
DHX to hot leg183.0080.150.0353
DRACS loop
DHX tube side192.50.01090.184
DRACS hot leg 1203.450.150.0353
DRACS hot leg 2213.670.150.0353
TCHX manifold222.60.150.0353
TCHX salt tube2360.01090.175
DRACS cold leg 1244.430.150.0353
DRACS cold leg 2255.950.150.0353

Pipings are modeled as one-dimensional fluid flow component, PBOneDFluidComponent. Their locations are specified with variables position and orientation. Flow area, hydraulic diameter, and pipe length are the main variables that define the element. An example of piping is as follows

[Components]
  [pipe040]
    #Hot salt extraction pipe (4)
    type = PBOneDFluidComponent
    eos = eos
    position = '0 3.96445 -0.76'
    orientation = '0 0 1'
    roughness = 0.000015
    A = 0.2512732
    Dh = 0.5656244
    length = 3.77
    n_elems = 11 #21
    initial_V = 2.050
    initial_T = 970
    initial_P = 1.3e5
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

Components are connected using PBSingleJunction, or PBBranch. For example

[Components]
  [Branch611]
    #In to TCHX manifold
    type = PBSingleJunction
    inputs = 'pipe210(out)'
    outputs = 'pipe220(in)'
    eos = eos
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

The DHX is modeled using the PBHeatExchanger component which models a shell-and-tube heat exchanger including the fluid flow in the primary and secondary sides, convective heat transfer, and heat conduction in tube wall. Either co-current or counter-current configuration can be modeled. Care should be taken when specifying the heat transfer surface area density (HT_surface_area_density). The user is advised to consult the SAM manual for further explanation. The heat transfer coefficients for both the shell side and tube side are calculated internally. However, users can override them using variables Hw and Hw_secondary (commented out in the input file)

[Components]
  [DHX]
    # DHX shell side (17), DHX tube side (19), DHX tubes structure
    type = PBHeatExchanger
    eos = eos
    eos_secondary = eos
    hs_type = cylinder

    radius_i = 0.00545
    position = '0 0.5 0'
    orientation = '0 0 1'
    A = 0.2224163
    Dh = 0.01085449
    A_secondary = 0.1836403
    Dh_secondary = 0.0109
    roughness = 0.000015
    roughness_secondary = 0.000015
    length = 2.5
    n_elems = 7 #14

    initial_V = 0.122 #0.11969487
    initial_V_secondary = 0.029349731
    initial_T = 870
    initial_T_secondary = 830
    initial_P = 1.9e5
    initial_P_secondary = 2.0e5

    HT_surface_area_density = 441.287971
    HT_surface_area_density_secondary = 458.715596
    #Hw = 526.266
    #Hw_secondary = 440
    HTC_geometry_type = Pipe
    HTC_geometry_type_secondary = Pipe
    PoD = 1.1

    Twall_init = 900
    wall_thickness = 0.0009
    dim_wall = 2
    material_wall = ss-mat
    n_wall_elems = 4
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

The salt pump is modeled using the PBPump component. The user specifies a constant pump head or pump head function (Phead) which is time dependent. Large reverse pump loss coefficients are input to prevent reverse flow.

[Components]
  [Pump]
    type = PBPump
    inputs = 'pipe060(out)'
    outputs = 'pipe070(in)'
    eos = eos
    K = '0 0'
    K_reverse = '2000000 2000000'
    Area = 0.3041
    Head = Phead
    initial_V = 1.783
    initial_T = 970
    initial_P = 2.7e5
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

The DRACS loop, shown schematically in Figure 3, consists of the tube side of the DHX heat exchanger, manifold and piping. The nodalization of the components are included in Table 1.

Figure 3: Nodalization of the DRACS loop model in SAM model (used with permission, Zweibaum (2015)).

Postprocessors

This block is used to specify the output variables written to a csv file that can be further processed in Excel. For example, to output the exit temperature on the secondary side of the DHX:

[Postprocessors]
  [DHXTubeTop]
    type = ComponentBoundaryVariableValue
    input = 'DHX:secondary_pipe(out)'
    variable = 'temperature'
  []
[]
(pbfhr/mark1/sam_model/pbfhr-ss.i)

To output the velocity and density of the flow exiting the core:

  [Corev]
    type = ComponentBoundaryVariableValue
    input = 'pipe010(in)'
    variable = 'velocity'
  []
  [Corerho]
    type = ComponentBoundaryVariableValue
    input = 'pipe010(in)'
    variable = 'rho'
  []
(pbfhr/mark1/sam_model/pbfhr-ss.i)

Preconditioning

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

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.

Restart

A new run can be restarted from a previous run. For example, input file PBFHR-TR.i simulates a transient that starts from the steady state results after running PBFHR-SS.i.


[Problem]
  restart_file_base = 'pbfhr-ss_out_cp/0402'
[]

Output Files Description and Results

There are three types of output files:

  1. PBFHR-SS.csv: this is a csv file that writes the user-specified scalar and vector variables to a comma-separated-values file. The data can be imported to Excel for further processing.

  2. PBFHR-SS_checkpoint_cp: this is a sub-folder that save snapshots of the simulation data including all meshes, solutions. Users can restart the run from where it ended using the file in the checkpoint folder.

  3. PBFHR-SS_out.displaced.e: this is an EXodusII file that has all mesh and solution data. Users can use Paraview to open this .e file to visualize, plot, and analyze the data.

Figure 4 shows the Paraview output for the primary loop temperature profile during normal operation and the salt flow pattern is indicated by green arrows. A companion plot of elevation vs. temperature traversing a closed loop of part of the system is also shown. In this regime, the DHX operates as a co-current heat exchanger. The area enclosed in the elevation-temperature plot shows that significant buoyancy force exists to drive natural circulation, since density is a linear function of temperature. This is important after transient initiation, when rapid flow reversal and establishment of natural circulation cooling is essential to minimize the maximum temperatures achieved by the system.

Figure 4: Coolant temperature during steady state (t = 90s).

In this simulation, a protected loss of forced flow occurs at t = 100 s. The power drops immediately to about 5% of nominal power and decay heat is the sole heat source in the core. Figure 5 shows the temperature profile and flow pattern at t=1400 s. Natural circulation is established in the primary-to-DHX loop as indicated by the area enclosed in the elevation-temperature plot. The flow driven upward by the core through pipe 2 then enters path 3-4-5, so that DHX behaves as a countercurrent heat exchanger.

Figure 5: Coolant temperature during loss of forced flow transient (at t = 1400s).

Running the Input File

SAM can be run in Linux, Unix, and MacOS. Due to its dependence on MOOSE, SAM is not compatible with Windows machine. SAM can be run from the shell prompt as shown below


sam-opt -I pbfhr-ss.i

References

  1. K K Ahmed, R O Scarlat, and R Hu. Benchmark Simulation of Natural Circulation Cooling System with Salt Working Fluid Using SAM. In 17th International Topical Meeting on Nuclear Reactor Thermal Hydraulics (NURETH-17). Xi'an, China, 2017. American Nuclear Society. URL: https://www.osti.gov/biblio/1392061.[BibTeX]
  2. Charalampos “Harry” Andreades, Anselmo T. Cisneros, Jae Keun Choi, Alexandre Y.K. Chong, Massimiliano Fratoni, Sea Hong, Lakshana R. Huddar, Kathryn D. Huff, David L. Krumwiede, Michael R. Laufer, Madicken Munk, Raluca O. Scarlat, Nicolas Zweibaum, Ehud Greenspan, and Per F. Peterson. Technical Description of the “Mark 1” Pebble-Bed Flouride-Salt-Cooled High Temperature Reactor (PB-FHR) Power plant. Technical Report, University of California, Berkeley, Berkeley, CA, 2014.[BibTeX]
  3. Rui Hu. SAM Theory Manual. Technical Report ANL/NE-17/4, Argonne National Laboratory, Lemont, IL, 2017.[BibTeX]
  4. Nicolas Zweibaum. Experimental Validation of Passive Safety System Models: Application to Design and Optimization of Fluoride-Salt-Cooled, High-Temperature Reactors. PhD thesis, UC Berkeley, 2015.[BibTeX]