Molten Salt Reactor Experiment (MSRE) SAM Modeling
Contact: Jun Fang, fangj.at.anl.gov
Model link: Steady-State SAM Model
MSRE Description
The MSRE was a graphite moderated flowing salt type reactor with a design maximum operating power of 10 MW(th) developed by Oak Ridge National Laboratory (Robertson, 1965). The fuel salt was a mixture of lithium, beryllium, and zirconium fluoride containing uranium or thorium and uranium fluoride. The coolant salt was a mixture of lithium fluoride and beryllium fluoride. The reactor consisted of two flow loops: a primary loop and a secondary loop. The primary loop connected the reactor vessel to a fuel salt centrifugal pump and the shell side of the shell-and-tube heat exchanger. The secondary loop connected the tube-side of the shell-and-tube heat exchanger to a coolant salt centrifugal pump and the tube side of an air-cooled radiator. Two axial blowers supplied cooling air to the radiator. Piping, drain tanks and “freeze valves” made up the remaining components of the heat transport circuits. The heat generated in the core was transferred to the secondary loop through the heat exchanger and ultimately rejected to the atmosphere through the radiator. The current 1-D MSRE model focuses on the primary loop with all the key reactor components represented.
Material Properties and MSRE Setup
The fuel salt in the MSRE primary loop was LiF-BeF4-ZrF4-UF4 according to the design specifications of the MSRE (Beall et al., 1964; Cantor, 1968), of which the thermophysical properties are listed in Table 1
Table 1: Thermophysical properties of the fuel salt.
| | Unit | LiF-BeF-ZrF-UF |
---|
Melting temperature | | | |
Density | | | |
Dynamic viscosity | | | |
Thermal conductivity | | | |
Specific heat capacity | | | |
A conventional, cross-baffled, shell-and-tube type heat exchanger was used in MSRE. The fuel salt flows on the shell side while the coolant salt flows through the tube side. The coolant salt in the heat changer is LiF-BeF (0.66-0.34) (Guymon, 1973), of which the major thermophysical properties are summarized in Table 2. Due to the space limitation in the reactor cell, a U-tube configuration is adopted, which results in a heat exchanger of roughly 2.5 m in length. The shell diameter is 0.41 m while the tube has a diameter of 1.27 cm and a thickness of 1.07 mm. Given a triangular arrangement of the tubes, the hydraulic diameters are 2.09 cm (shell-side) and 1.06 cm (tube-side). The construction material of heat exchanger is Hastelloy® N alloy with the properties listed in Table 3. All the connecting pipes have a default diameter of 0.127 m. A centrifugal pump is utilized, and its head is adjusted to sustain the flow circulation. The downcomer and lower plenum to the MSRE core are modeled with SAM 1-D components.
Table 2: Thermophysical properties of the coolant salt in heat exchanger.
| | Unit | LiF-BeF (0.66-0.34) |
---|
Melting temperature | | | |
Density | | | |
Dynamic viscosity | | | |
Thermal conductivity | | | |
Specific heat capacity | | | |
Table 3: Thermophysical properties of Hastelloy® N alloy used in the heat exchanger.
| | Unit | Hastelloy® N alloy |
---|
Density | | | |
Thermal conductivity | | | |
Specific heat capacity | | | |
The SAM input file adopts a block structured syntax, and each block contains the detailed settings of specific SAM components. In this section, we will go through all the important blocks in the input file and explain the key model specifications:
GlobalParams
This block contains the global parameters that are applied to all SAM components, such as the initial pressure, temperature, and so on. A snippet is illustrated below:
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.0 # Global initial fluid velocity
global_init_T = 908.15
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
EOS
EOS is short for Equation Of State. This block specifies the material properties, such as the thermophysical properties of the fuel salt and the coolant salt in the heat exchanger listed in the Section above. SAM supports both constants and user-defined functions for the specific parameters. The properties of common materials are implemented SAM repository, and can be readily used by simply refering to the material ids, such as the air, or molten salt FLiBe.
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)Components
This is the most important block that defines all the reactor components represented in the MSRE primary loop, such as the core, the heat exchanger, the pump, and all the connecting pipes. The Table below listed all the reactor components considered
Table 4: The reactor components represented in MSRE primary loop.
| ID | Description |
---|
Downcomer | | The annular channel from the flow distributor to the inlet/lower plenum |
Inlet plenum | | The space underneath the MSRE core |
Core | | The active core region with the fuel salt flowing through graphite matrix |
Upper plenum | | The space on top of the active core |
Primary pump | | The pump driving the fuel salt to circulate in the primary loop |
Primary heat exchanger | | The heat exchanger cooling down the molten salt before it returns to the core |
Specifically, the MSRE core is modeled with a 1-D channel and total heat source of 10 MW is uniformly distributed along the channel in this simplified demonstration model. The primary pump is placed between the core and the heat exchanger. As for the shell-and-tube heat exchanger, the shell side is modeled with one 1-D channel while the tube side is modeled with three 1-D channels, 2 long ones and 1 short connecting in a U-structure. The heat is exchanged through the 1-D wall coupling the shell and tube sides. The coolant salt temperature and velocity are specified at the inlet of the tube side as shown in the code snippet below. A reference pipe is connected to the system to ensure a fixed pressure boundary condition at the exit of HX primary side, which helps the SAM model better converge. The component types involved include PBOneDFluidComponent
, PBPump
, PBCoupledHeatStructure
, and PBBranch
, and the boundary conditions involved include PBTDV
, PBTDJ
. The detailed instructions of these SAM components can be found in the SAM user manual, which are not repeated here for brevity.
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
(msr/msre/steady_state/msre_loop_1d.i)Postprocessors
The Postprocessors block is used to monitor the SAM solutions during the simulations, and variables of interest can be printed out in the log file. For example, to check out the core outlet temperature, one can add the following snippet:
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
(msr/msre/steady_state/msre_loop_1d.i)Preconditioning
This block describes the preconditioner used by the solver. New user can leave this block unchanged.
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
(msr/msre/steady_state/msre_loop_1d.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 = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)Results
There are three types of output files:
msre_loop_1d_csv.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 or read in Python using the csv
module, Pandas, or other methods.
msre_loop_1d_checkpoint_cp: this is a sub-folder that saves 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.
msre_loop_1d_out.displaced.e: this is a 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 1 shows the steady state fuel salt temperature in the primary loop during the normal operating condition. The fuel salt enters the MSRE core at an average temperature of 908K, and through the nuclear reactions in the core region, leaves the core at an average temperature of 937K. The primary pump is located at the top-right corner, driving the fuel salt in the system. The U-tube primiary heat exchanger cools down the fuel salt, which returns to the core through the connecting pipes, downcomer and the core inlet plenum. The overall layout shown in Figure 1 follows that of the original MSRE designs.

Figure 1: The steady-state temperature distribution in the 1-D MSRE primary loop.
MSRE Reactivity Insertion Test
An additional SAM model was developed for the MSRE reactivity insertion tests(Feng et al., 2021; Fei et al., 2022). There are three external reactivity insertion experiments conducted in MSRE at power levels of 1 MW, 5 MW, and 8 MW. This SAM model is developed for the 5 MW case. The SAM model consists of two calculation steps. In Step 1, the power level is adjusted to be consistent with that in the experiments. The power is kept constant for a long period of time (1000 - 2000 seconds) until the steady state condition was achieved, i.e., all parameters (density, temperature, etc.) in the system no longer change. Some preliminary scoping studies are performed to ensure the initial conditions (core inlet/outlet temperature, HX secondary side inlet/outlet temperature) are consistent with the experiments before this step. In the second step, an external reactivity is inserted at the beginning of the simulation, and power is allowed to change due to the external reactivity insertion and the reactivity feedback following the power increase. This MSRE SAM model is similar to the existing SAM model, except that the MSR-specific point kinetics is enabled and the MSRE primary heat exchanger is modeled by a PBHeatExchanger
component in SAM. The Point Kinetic Equation for MSRs is employed to predict the power evolution. The delayed neutron precursor sources are specified in the core, upper and lower plenum. The power fractions in these regions are 87.5%, 3.89%, and 8.59%, respectively. The delayed neutron precursor sources are directly proportional to the power fraction in the current code implementation. Thus, to account for all delayed neutron precursors, no power is specified in the graphite moderators.
There are two reactivity feedback mechanisms considered in the model. The fuel feedback is captured with the fuel density reactivity feedback coefficient (“coolant_reactivity_coefficients”). The graphite feedback is captured with the moderator temperature feedback coefficient (“moderator_reactivity_coefficients”). The “moderator_reactivity_coefficients” is defined as the reactivity change per temperature. Thus, the mass (volume) of the moderator is specified carefully to be consistent with the MSRE graphite mass. The power transition during the insertion of external reactivity is shown in Figure 2.

Figure 2: Power change following the external reactivity insertion.
References
- S E Beall, P N Haubenreich, R B Lindauer, and J R Tallackson.
MSRE Design and Operations Report. Part V. Reactor Safety Analysis Report.
Technical Report ORNL-TM-732, Oak Ridge National Laboratory, Oak Ridge, TN, 1964.[BibTeX]
@techreport{Beall1964,
author = "Beall, S E and Haubenreich, P N and Lindauer, R B and Tallackson, J R",
address = "Oak Ridge, TN",
number = "ORNL-TM-732",
institution = "Oak Ridge National Laboratory",
title = "{MSRE Design and Operations Report. Part V. Reactor Safety Analysis Report}",
year = "1964"
}
- S Cantor.
Physical Properties of Molten-Salt Reactor Fuel, Coolant, and Flush Salts.
Technical Report ORNL-TM-2316, Oak Ridge National Laboratory, Oak Ridge, TN, 1968.
URL: https://www.osti.gov/biblio/4492893 https://www.osti.gov/servlets/purl/4492893, doi:10.2172/4492893.[BibTeX]
@techreport{Cantor1968,
author = "Cantor, S",
address = "Oak Ridge, TN",
doi = "10.2172/4492893",
institution = "Oak Ridge National Laboratory",
number = "ORNL-TM-2316",
title = "{Physical Properties of Molten-Salt Reactor Fuel, Coolant, and Flush Salts}",
url = "https://www.osti.gov/biblio/4492893 https://www.osti.gov/servlets/purl/4492893",
year = "1968"
}
- Tingzhou Fei, Thanh Hua, and Bo Feng.
MSRE Reactivity Insertion Test Benchmark Using SAM.
In Transactions of 2022 ANS Winter Meeting. Pheonix, AZ, 2022. American Nuclear Society.
doi:10.13182/T127-39714.[BibTeX]
@inproceedings{Fei2022,
author = "Fei, Tingzhou and Hua, Thanh and Feng, Bo",
address = "Pheonix, AZ",
booktitle = "Transactions of 2022 ANS Winter Meeting",
doi = "10.13182/T127-39714",
publisher = "American Nuclear Society",
title = "{MSRE Reactivity Insertion Test Benchmark Using SAM}",
year = "2022"
}
- Bo Feng, Shayan Shahbazi, Jun Fang, Ting Fei, and Dillon Shaver.
Application of NEAMS Codes to Capture MSR Phenomena.
Technical Report ANL/NSE-21/48, Argonne National Laboratory, Lemont, IL, 2021.
URL: https://www.osti.gov/biblio/1826681, doi:10.2172/1826681.[BibTeX]
@techreport{Feng2021,
author = "Feng, Bo and Shahbazi, Shayan and Fang, Jun and Fei, Ting and Shaver, Dillon",
address = "Lemont, IL",
doi = "10.2172/1826681",
institution = "Argonne National Laboratory",
number = "ANL/NSE-21/48",
title = "{Application of NEAMS Codes to Capture MSR Phenomena}",
url = "https://www.osti.gov/biblio/1826681",
year = "2021"
}
- R H Guymon.
MSRE systems and components performance.
Technical Report ORNL-TM-3039, Oak Ridge National Laboratory, Oak Ridge, TN, 1973.[BibTeX]
@techreport{Guymon1973,
author = "Guymon, R H",
address = "Oak Ridge, TN",
number = "ORNL-TM-3039",
institution = "Oak Ridge National Laboratory",
title = "{MSRE systems and components performance}",
year = "1973"
}
- R C Robertson.
MSRE design and operations report. Part I. Description of reactor design.
Technical Report ORNL-TM-728, Oak Ridge National Laboratory, Oak Ridge, TN, 1965.[BibTeX]
@techreport{Robertson1965,
author = "Robertson, R C",
address = "Oak Ridge, TN",
number = "ORNL-TM-728",
institution = "Oak Ridge National Laboratory",
title = "{MSRE design and operations report. Part I. Description of reactor design}",
year = "1965"
}
(msr/msre/steady_state/msre_loop_1d.i)
# Modeling the MSRE
# Steady state simulation
# Application : SAM
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
[GlobalParams]
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.001 # Global initial fluid velocity
global_init_T = 908.15 # Global initial temperature for fluid and solid
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
scaling_factor_var = '1 1e-3 1e-6' # fluid model solver parameters
p_order = 2
[]
[Functions]
[./fuel_salt_rho_func] # Linear fitting used by He, 2016
type = PiecewiseLinear
x = '750 1200'
y = '2285.31 2032.41'
[../]
[./fuel_salt_enthalpy_func] # Approximated by Cp*T
type = PiecewiseLinear
x = '750 1200'
y = '1.51E+06 2.41E+06'
[../]
[./fuel_salt_mu_func]
type = PiecewiseLinear
x = '750 760 770 780 790 800 810 820
830 840 850 860 870 880 890 900
910 920 930 940 950 960 970 980
990 1000 1010 1020 1030 1040 1050 1060
1070 1080 1090 1100 1110 1120 1130 1140
1150 1160 1170 1180 1190 1200'
y = '2.7378E-02 2.5371E-02 2.3557E-02 2.1915E-02 2.0424E-02 1.9069E-02 1.7834E-02 1.6706E-02
1.5674E-02 1.4728E-02 1.3859E-02 1.3060E-02 1.2324E-02 1.1645E-02 1.1017E-02 1.0436E-02
9.8976E-03 9.3976E-03 8.9328E-03 8.5001E-03 8.0969E-03 7.7206E-03 7.3690E-03 7.0402E-03
6.7322E-03 6.4434E-03 6.1724E-03 5.9178E-03 5.6783E-03 5.4529E-03 5.2404E-03 5.0400E-03
4.8508E-03 4.6720E-03 4.5029E-03 4.3428E-03 4.1911E-03 4.0473E-03 3.9109E-03 3.7813E-03
3.6582E-03 3.5411E-03 3.4297E-03 3.3235E-03 3.2224E-03 3.1259E-03'
[../]
[]
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
[MaterialProperties]
[./alloy-mat] # Based on Hastelloy N alloy
type = SolidMaterialProps
k = 23.6 # Thermal conductivity
Cp = 578 # Specific heat
rho = 8.86e3 # Density
[../]
[]
[Components]
[./downcomer]
type = PBOneDFluidComponent
A = 0.1589
Dh = 0.0508
length = 1.7272
n_elems = 18
orientation = '0 -1 0'
position = '-0.7366 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_dn_pl]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'downcomer(out)'
outputs = 'iplnm(in)'
[../]
[./iplnm] # inlet plenum is connected to core bottom
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.7366
n_elems = 8
orientation = '1 0 0'
position = '-0.7366 0 0'
eos = fuel_salt_eos
[../]
[./j_ip_c]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'iplnm(out)'
outputs = 'core(in)'
[../]
[./core] # 1-D representation of the core
type = PBOneDFluidComponent
A = 0.3512 # consider a porosity of 0.225
Dh = 0.6687
length = 1.7272
n_elems = 20
orientation = '0 1 0'
position = '0 0 0'
eos = fuel_salt_eos
heat_source = 1.65e7
[../]
[./j_c_up]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'core(out)'
outputs = 'uplnm(in)'
[../]
[./uplnm] # upper plenum is connected to core exit
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.4346
n_elems = 6
orientation = '0 1 0'
position = '0 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_up_ps1]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'uplnm(out)'
outputs = 'pipe1_s1(in)'
[../]
[./pipe1_s1] # Connecting core to pump, horizontal section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.8288
n_elems = 19
orientation = '1 0 0'
position = '0 2.1618 0'
eos = fuel_salt_eos
[../]
[./j1]
type = PBBranch
Area = 0.01292
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe1_s1(out)'
outputs = 'pipe1_s2(in)'
[../]
[./pipe1_s2] # vertical section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.8128
n_elems = 9
orientation = '0 1 0'
position = '1.8288 2.1618 0'
eos = fuel_salt_eos
[../]
#
# ====== pump ======
#
[./pump]
type = PBPump
Area = 0.01292
K = '0.15 0.1'
eos = fuel_salt_eos
inputs = 'pipe1_s2(out)'
outputs = 'pipe2(in)'
initial_P = 1.1e5
# Head_fn = f_pump_head
Head = 43909.58
[]
[./pipe2] # Connecting the pump to HX
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0668
n_elems = 11
orientation = '-1 0 0'
position = '1.8288 2.9746 0'
eos = fuel_salt_eos
[../]
[./j2] # junction connect to heat exchanger
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe2(out)'
outputs = 'hx_shell(in)'
[../]
#
# ====== Customized U-tube heat exchanger ======
#
[./hx_shell]
type = PBOneDFluidComponent
position = '0.762 2.9746 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = fuel_salt_eos
heat_source = 0
A = 1.0183E-01
Dh = 2.0945E-02
[../]
[./hx_tube1]
type = PBOneDFluidComponent
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j1]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube1(out)'
outputs = 'hx_tube2(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube2]
type = PBOneDFluidComponent
position = '0.762 3.0762 0'
orientation = '0 -1 0'
length = 0.2032
n_elems = 2
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j2]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube2(out)'
outputs = 'hx_tube3(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube3]
type = PBOneDFluidComponent
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
[./hx_s_out]
type = PBTDV
input = 'hx_tube3(out)'
eos = hx_salt_eos
p_bc = 1.0e5
T_bc = 866.4833
[../]
[./hx_wall1]
type = PBCoupledHeatStructure
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube1
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./hx_wall2]
type = PBCoupledHeatStructure
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube3
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./j3]
type = PBBranch
Area = 0.01267
K = '0.0 1e3 0.0'
eos = fuel_salt_eos
inputs = 'hx_shell(out) pipe_ref(out)'
outputs = 'pipe3_s1(in)'
[../]
[./pipe_ref]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.1
n_elems = 2
orientation = '1 0 0'
position = '-1.8678 2.9746 0'
eos = fuel_salt_eos
[../]
[./ref_p]
type = PBTDV
eos = fuel_salt_eos
T_bc = 908.15
p_bc = 1.233351e+05
input = 'pipe_ref(in)'
[../]
[./pipe3_s1] # Connecting hx to downcomer
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.2474
n_elems = 13
orientation = '0 -1 0'
position = '-1.7678 2.9746 0'
eos = fuel_salt_eos
[../]
[./j4]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s1(out)'
outputs = 'pipe3_s2(in)'
[../]
[./pipe3_s2]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0312
n_elems = 11
orientation = '1 0 0'
position = '-1.7678 1.7272 0'
eos = fuel_salt_eos
[../]
[./j5]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s2(out)'
outputs = 'downcomer(in)'
[../]
[]
[Postprocessors]
[./Core_P_out] # Pressure at Core outlet/Loop inlet
type = ComponentBoundaryVariableValue
variable = pressure
input = core(out)
[../]
[./Core_vel_in]
type = ComponentBoundaryVariableValue
variable = velocity
input = core(in)
[../]
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
[./Core_T_in]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(in)
[../]
[./Core_P_in]
type = ComponentBoundaryVariableValue
variable = pressure
input = core(in)
[../]
[./HX_Tin_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(in)
[../]
[./HX_Tout_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(out)
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
#[Problem]
# restart_file_base = loop_1d_checkpoint_cp/0254
#[]
[Executioner]
type = Transient
dt = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out_displaced]
type = Exodus
use_displaced = true
execute_on = 'initial timestep_end'
sequence = false
[../]
[./csv]
type = CSV
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[./console]
type = Console
execute_scalars_on = 'none'
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)
# Modeling the MSRE
# Steady state simulation
# Application : SAM
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
[GlobalParams]
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.001 # Global initial fluid velocity
global_init_T = 908.15 # Global initial temperature for fluid and solid
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
scaling_factor_var = '1 1e-3 1e-6' # fluid model solver parameters
p_order = 2
[]
[Functions]
[./fuel_salt_rho_func] # Linear fitting used by He, 2016
type = PiecewiseLinear
x = '750 1200'
y = '2285.31 2032.41'
[../]
[./fuel_salt_enthalpy_func] # Approximated by Cp*T
type = PiecewiseLinear
x = '750 1200'
y = '1.51E+06 2.41E+06'
[../]
[./fuel_salt_mu_func]
type = PiecewiseLinear
x = '750 760 770 780 790 800 810 820
830 840 850 860 870 880 890 900
910 920 930 940 950 960 970 980
990 1000 1010 1020 1030 1040 1050 1060
1070 1080 1090 1100 1110 1120 1130 1140
1150 1160 1170 1180 1190 1200'
y = '2.7378E-02 2.5371E-02 2.3557E-02 2.1915E-02 2.0424E-02 1.9069E-02 1.7834E-02 1.6706E-02
1.5674E-02 1.4728E-02 1.3859E-02 1.3060E-02 1.2324E-02 1.1645E-02 1.1017E-02 1.0436E-02
9.8976E-03 9.3976E-03 8.9328E-03 8.5001E-03 8.0969E-03 7.7206E-03 7.3690E-03 7.0402E-03
6.7322E-03 6.4434E-03 6.1724E-03 5.9178E-03 5.6783E-03 5.4529E-03 5.2404E-03 5.0400E-03
4.8508E-03 4.6720E-03 4.5029E-03 4.3428E-03 4.1911E-03 4.0473E-03 3.9109E-03 3.7813E-03
3.6582E-03 3.5411E-03 3.4297E-03 3.3235E-03 3.2224E-03 3.1259E-03'
[../]
[]
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
[MaterialProperties]
[./alloy-mat] # Based on Hastelloy N alloy
type = SolidMaterialProps
k = 23.6 # Thermal conductivity
Cp = 578 # Specific heat
rho = 8.86e3 # Density
[../]
[]
[Components]
[./downcomer]
type = PBOneDFluidComponent
A = 0.1589
Dh = 0.0508
length = 1.7272
n_elems = 18
orientation = '0 -1 0'
position = '-0.7366 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_dn_pl]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'downcomer(out)'
outputs = 'iplnm(in)'
[../]
[./iplnm] # inlet plenum is connected to core bottom
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.7366
n_elems = 8
orientation = '1 0 0'
position = '-0.7366 0 0'
eos = fuel_salt_eos
[../]
[./j_ip_c]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'iplnm(out)'
outputs = 'core(in)'
[../]
[./core] # 1-D representation of the core
type = PBOneDFluidComponent
A = 0.3512 # consider a porosity of 0.225
Dh = 0.6687
length = 1.7272
n_elems = 20
orientation = '0 1 0'
position = '0 0 0'
eos = fuel_salt_eos
heat_source = 1.65e7
[../]
[./j_c_up]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'core(out)'
outputs = 'uplnm(in)'
[../]
[./uplnm] # upper plenum is connected to core exit
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.4346
n_elems = 6
orientation = '0 1 0'
position = '0 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_up_ps1]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'uplnm(out)'
outputs = 'pipe1_s1(in)'
[../]
[./pipe1_s1] # Connecting core to pump, horizontal section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.8288
n_elems = 19
orientation = '1 0 0'
position = '0 2.1618 0'
eos = fuel_salt_eos
[../]
[./j1]
type = PBBranch
Area = 0.01292
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe1_s1(out)'
outputs = 'pipe1_s2(in)'
[../]
[./pipe1_s2] # vertical section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.8128
n_elems = 9
orientation = '0 1 0'
position = '1.8288 2.1618 0'
eos = fuel_salt_eos
[../]
#
# ====== pump ======
#
[./pump]
type = PBPump
Area = 0.01292
K = '0.15 0.1'
eos = fuel_salt_eos
inputs = 'pipe1_s2(out)'
outputs = 'pipe2(in)'
initial_P = 1.1e5
# Head_fn = f_pump_head
Head = 43909.58
[]
[./pipe2] # Connecting the pump to HX
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0668
n_elems = 11
orientation = '-1 0 0'
position = '1.8288 2.9746 0'
eos = fuel_salt_eos
[../]
[./j2] # junction connect to heat exchanger
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe2(out)'
outputs = 'hx_shell(in)'
[../]
#
# ====== Customized U-tube heat exchanger ======
#
[./hx_shell]
type = PBOneDFluidComponent
position = '0.762 2.9746 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = fuel_salt_eos
heat_source = 0
A = 1.0183E-01
Dh = 2.0945E-02
[../]
[./hx_tube1]
type = PBOneDFluidComponent
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j1]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube1(out)'
outputs = 'hx_tube2(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube2]
type = PBOneDFluidComponent
position = '0.762 3.0762 0'
orientation = '0 -1 0'
length = 0.2032
n_elems = 2
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j2]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube2(out)'
outputs = 'hx_tube3(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube3]
type = PBOneDFluidComponent
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
[./hx_s_out]
type = PBTDV
input = 'hx_tube3(out)'
eos = hx_salt_eos
p_bc = 1.0e5
T_bc = 866.4833
[../]
[./hx_wall1]
type = PBCoupledHeatStructure
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube1
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./hx_wall2]
type = PBCoupledHeatStructure
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube3
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./j3]
type = PBBranch
Area = 0.01267
K = '0.0 1e3 0.0'
eos = fuel_salt_eos
inputs = 'hx_shell(out) pipe_ref(out)'
outputs = 'pipe3_s1(in)'
[../]
[./pipe_ref]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.1
n_elems = 2
orientation = '1 0 0'
position = '-1.8678 2.9746 0'
eos = fuel_salt_eos
[../]
[./ref_p]
type = PBTDV
eos = fuel_salt_eos
T_bc = 908.15
p_bc = 1.233351e+05
input = 'pipe_ref(in)'
[../]
[./pipe3_s1] # Connecting hx to downcomer
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.2474
n_elems = 13
orientation = '0 -1 0'
position = '-1.7678 2.9746 0'
eos = fuel_salt_eos
[../]
[./j4]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s1(out)'
outputs = 'pipe3_s2(in)'
[../]
[./pipe3_s2]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0312
n_elems = 11
orientation = '1 0 0'
position = '-1.7678 1.7272 0'
eos = fuel_salt_eos
[../]
[./j5]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s2(out)'
outputs = 'downcomer(in)'
[../]
[]
[Postprocessors]
[./Core_P_out] # Pressure at Core outlet/Loop inlet
type = ComponentBoundaryVariableValue
variable = pressure
input = core(out)
[../]
[./Core_vel_in]
type = ComponentBoundaryVariableValue
variable = velocity
input = core(in)
[../]
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
[./Core_T_in]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(in)
[../]
[./Core_P_in]
type = ComponentBoundaryVariableValue
variable = pressure
input = core(in)
[../]
[./HX_Tin_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(in)
[../]
[./HX_Tout_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(out)
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
#[Problem]
# restart_file_base = loop_1d_checkpoint_cp/0254
#[]
[Executioner]
type = Transient
dt = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out_displaced]
type = Exodus
use_displaced = true
execute_on = 'initial timestep_end'
sequence = false
[../]
[./csv]
type = CSV
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[./console]
type = Console
execute_scalars_on = 'none'
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)
# Modeling the MSRE
# Steady state simulation
# Application : SAM
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
[GlobalParams]
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.001 # Global initial fluid velocity
global_init_T = 908.15 # Global initial temperature for fluid and solid
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
scaling_factor_var = '1 1e-3 1e-6' # fluid model solver parameters
p_order = 2
[]
[Functions]
[./fuel_salt_rho_func] # Linear fitting used by He, 2016
type = PiecewiseLinear
x = '750 1200'
y = '2285.31 2032.41'
[../]
[./fuel_salt_enthalpy_func] # Approximated by Cp*T
type = PiecewiseLinear
x = '750 1200'
y = '1.51E+06 2.41E+06'
[../]
[./fuel_salt_mu_func]
type = PiecewiseLinear
x = '750 760 770 780 790 800 810 820
830 840 850 860 870 880 890 900
910 920 930 940 950 960 970 980
990 1000 1010 1020 1030 1040 1050 1060
1070 1080 1090 1100 1110 1120 1130 1140
1150 1160 1170 1180 1190 1200'
y = '2.7378E-02 2.5371E-02 2.3557E-02 2.1915E-02 2.0424E-02 1.9069E-02 1.7834E-02 1.6706E-02
1.5674E-02 1.4728E-02 1.3859E-02 1.3060E-02 1.2324E-02 1.1645E-02 1.1017E-02 1.0436E-02
9.8976E-03 9.3976E-03 8.9328E-03 8.5001E-03 8.0969E-03 7.7206E-03 7.3690E-03 7.0402E-03
6.7322E-03 6.4434E-03 6.1724E-03 5.9178E-03 5.6783E-03 5.4529E-03 5.2404E-03 5.0400E-03
4.8508E-03 4.6720E-03 4.5029E-03 4.3428E-03 4.1911E-03 4.0473E-03 3.9109E-03 3.7813E-03
3.6582E-03 3.5411E-03 3.4297E-03 3.3235E-03 3.2224E-03 3.1259E-03'
[../]
[]
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
[MaterialProperties]
[./alloy-mat] # Based on Hastelloy N alloy
type = SolidMaterialProps
k = 23.6 # Thermal conductivity
Cp = 578 # Specific heat
rho = 8.86e3 # Density
[../]
[]
[Components]
[./downcomer]
type = PBOneDFluidComponent
A = 0.1589
Dh = 0.0508
length = 1.7272
n_elems = 18
orientation = '0 -1 0'
position = '-0.7366 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_dn_pl]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'downcomer(out)'
outputs = 'iplnm(in)'
[../]
[./iplnm] # inlet plenum is connected to core bottom
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.7366
n_elems = 8
orientation = '1 0 0'
position = '-0.7366 0 0'
eos = fuel_salt_eos
[../]
[./j_ip_c]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'iplnm(out)'
outputs = 'core(in)'
[../]
[./core] # 1-D representation of the core
type = PBOneDFluidComponent
A = 0.3512 # consider a porosity of 0.225
Dh = 0.6687
length = 1.7272
n_elems = 20
orientation = '0 1 0'
position = '0 0 0'
eos = fuel_salt_eos
heat_source = 1.65e7
[../]
[./j_c_up]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'core(out)'
outputs = 'uplnm(in)'
[../]
[./uplnm] # upper plenum is connected to core exit
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.4346
n_elems = 6
orientation = '0 1 0'
position = '0 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_up_ps1]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'uplnm(out)'
outputs = 'pipe1_s1(in)'
[../]
[./pipe1_s1] # Connecting core to pump, horizontal section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.8288
n_elems = 19
orientation = '1 0 0'
position = '0 2.1618 0'
eos = fuel_salt_eos
[../]
[./j1]
type = PBBranch
Area = 0.01292
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe1_s1(out)'
outputs = 'pipe1_s2(in)'
[../]
[./pipe1_s2] # vertical section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.8128
n_elems = 9
orientation = '0 1 0'
position = '1.8288 2.1618 0'
eos = fuel_salt_eos
[../]
#
# ====== pump ======
#
[./pump]
type = PBPump
Area = 0.01292
K = '0.15 0.1'
eos = fuel_salt_eos
inputs = 'pipe1_s2(out)'
outputs = 'pipe2(in)'
initial_P = 1.1e5
# Head_fn = f_pump_head
Head = 43909.58
[]
[./pipe2] # Connecting the pump to HX
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0668
n_elems = 11
orientation = '-1 0 0'
position = '1.8288 2.9746 0'
eos = fuel_salt_eos
[../]
[./j2] # junction connect to heat exchanger
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe2(out)'
outputs = 'hx_shell(in)'
[../]
#
# ====== Customized U-tube heat exchanger ======
#
[./hx_shell]
type = PBOneDFluidComponent
position = '0.762 2.9746 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = fuel_salt_eos
heat_source = 0
A = 1.0183E-01
Dh = 2.0945E-02
[../]
[./hx_tube1]
type = PBOneDFluidComponent
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j1]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube1(out)'
outputs = 'hx_tube2(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube2]
type = PBOneDFluidComponent
position = '0.762 3.0762 0'
orientation = '0 -1 0'
length = 0.2032
n_elems = 2
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j2]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube2(out)'
outputs = 'hx_tube3(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube3]
type = PBOneDFluidComponent
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
[./hx_s_out]
type = PBTDV
input = 'hx_tube3(out)'
eos = hx_salt_eos
p_bc = 1.0e5
T_bc = 866.4833
[../]
[./hx_wall1]
type = PBCoupledHeatStructure
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube1
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./hx_wall2]
type = PBCoupledHeatStructure
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube3
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./j3]
type = PBBranch
Area = 0.01267
K = '0.0 1e3 0.0'
eos = fuel_salt_eos
inputs = 'hx_shell(out) pipe_ref(out)'
outputs = 'pipe3_s1(in)'
[../]
[./pipe_ref]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.1
n_elems = 2
orientation = '1 0 0'
position = '-1.8678 2.9746 0'
eos = fuel_salt_eos
[../]
[./ref_p]
type = PBTDV
eos = fuel_salt_eos
T_bc = 908.15
p_bc = 1.233351e+05
input = 'pipe_ref(in)'
[../]
[./pipe3_s1] # Connecting hx to downcomer
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.2474
n_elems = 13
orientation = '0 -1 0'
position = '-1.7678 2.9746 0'
eos = fuel_salt_eos
[../]
[./j4]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s1(out)'
outputs = 'pipe3_s2(in)'
[../]
[./pipe3_s2]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0312
n_elems = 11
orientation = '1 0 0'
position = '-1.7678 1.7272 0'
eos = fuel_salt_eos
[../]
[./j5]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s2(out)'
outputs = 'downcomer(in)'
[../]
[]
[Postprocessors]
[./Core_P_out] # Pressure at Core outlet/Loop inlet
type = ComponentBoundaryVariableValue
variable = pressure
input = core(out)
[../]
[./Core_vel_in]
type = ComponentBoundaryVariableValue
variable = velocity
input = core(in)
[../]
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
[./Core_T_in]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(in)
[../]
[./Core_P_in]
type = ComponentBoundaryVariableValue
variable = pressure
input = core(in)
[../]
[./HX_Tin_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(in)
[../]
[./HX_Tout_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(out)
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
#[Problem]
# restart_file_base = loop_1d_checkpoint_cp/0254
#[]
[Executioner]
type = Transient
dt = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out_displaced]
type = Exodus
use_displaced = true
execute_on = 'initial timestep_end'
sequence = false
[../]
[./csv]
type = CSV
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[./console]
type = Console
execute_scalars_on = 'none'
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)
# Modeling the MSRE
# Steady state simulation
# Application : SAM
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
[GlobalParams]
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.001 # Global initial fluid velocity
global_init_T = 908.15 # Global initial temperature for fluid and solid
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
scaling_factor_var = '1 1e-3 1e-6' # fluid model solver parameters
p_order = 2
[]
[Functions]
[./fuel_salt_rho_func] # Linear fitting used by He, 2016
type = PiecewiseLinear
x = '750 1200'
y = '2285.31 2032.41'
[../]
[./fuel_salt_enthalpy_func] # Approximated by Cp*T
type = PiecewiseLinear
x = '750 1200'
y = '1.51E+06 2.41E+06'
[../]
[./fuel_salt_mu_func]
type = PiecewiseLinear
x = '750 760 770 780 790 800 810 820
830 840 850 860 870 880 890 900
910 920 930 940 950 960 970 980
990 1000 1010 1020 1030 1040 1050 1060
1070 1080 1090 1100 1110 1120 1130 1140
1150 1160 1170 1180 1190 1200'
y = '2.7378E-02 2.5371E-02 2.3557E-02 2.1915E-02 2.0424E-02 1.9069E-02 1.7834E-02 1.6706E-02
1.5674E-02 1.4728E-02 1.3859E-02 1.3060E-02 1.2324E-02 1.1645E-02 1.1017E-02 1.0436E-02
9.8976E-03 9.3976E-03 8.9328E-03 8.5001E-03 8.0969E-03 7.7206E-03 7.3690E-03 7.0402E-03
6.7322E-03 6.4434E-03 6.1724E-03 5.9178E-03 5.6783E-03 5.4529E-03 5.2404E-03 5.0400E-03
4.8508E-03 4.6720E-03 4.5029E-03 4.3428E-03 4.1911E-03 4.0473E-03 3.9109E-03 3.7813E-03
3.6582E-03 3.5411E-03 3.4297E-03 3.3235E-03 3.2224E-03 3.1259E-03'
[../]
[]
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
[MaterialProperties]
[./alloy-mat] # Based on Hastelloy N alloy
type = SolidMaterialProps
k = 23.6 # Thermal conductivity
Cp = 578 # Specific heat
rho = 8.86e3 # Density
[../]
[]
[Components]
[./downcomer]
type = PBOneDFluidComponent
A = 0.1589
Dh = 0.0508
length = 1.7272
n_elems = 18
orientation = '0 -1 0'
position = '-0.7366 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_dn_pl]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'downcomer(out)'
outputs = 'iplnm(in)'
[../]
[./iplnm] # inlet plenum is connected to core bottom
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.7366
n_elems = 8
orientation = '1 0 0'
position = '-0.7366 0 0'
eos = fuel_salt_eos
[../]
[./j_ip_c]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'iplnm(out)'
outputs = 'core(in)'
[../]
[./core] # 1-D representation of the core
type = PBOneDFluidComponent
A = 0.3512 # consider a porosity of 0.225
Dh = 0.6687
length = 1.7272
n_elems = 20
orientation = '0 1 0'
position = '0 0 0'
eos = fuel_salt_eos
heat_source = 1.65e7
[../]
[./j_c_up]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'core(out)'
outputs = 'uplnm(in)'
[../]
[./uplnm] # upper plenum is connected to core exit
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.4346
n_elems = 6
orientation = '0 1 0'
position = '0 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_up_ps1]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'uplnm(out)'
outputs = 'pipe1_s1(in)'
[../]
[./pipe1_s1] # Connecting core to pump, horizontal section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.8288
n_elems = 19
orientation = '1 0 0'
position = '0 2.1618 0'
eos = fuel_salt_eos
[../]
[./j1]
type = PBBranch
Area = 0.01292
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe1_s1(out)'
outputs = 'pipe1_s2(in)'
[../]
[./pipe1_s2] # vertical section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.8128
n_elems = 9
orientation = '0 1 0'
position = '1.8288 2.1618 0'
eos = fuel_salt_eos
[../]
#
# ====== pump ======
#
[./pump]
type = PBPump
Area = 0.01292
K = '0.15 0.1'
eos = fuel_salt_eos
inputs = 'pipe1_s2(out)'
outputs = 'pipe2(in)'
initial_P = 1.1e5
# Head_fn = f_pump_head
Head = 43909.58
[]
[./pipe2] # Connecting the pump to HX
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0668
n_elems = 11
orientation = '-1 0 0'
position = '1.8288 2.9746 0'
eos = fuel_salt_eos
[../]
[./j2] # junction connect to heat exchanger
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe2(out)'
outputs = 'hx_shell(in)'
[../]
#
# ====== Customized U-tube heat exchanger ======
#
[./hx_shell]
type = PBOneDFluidComponent
position = '0.762 2.9746 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = fuel_salt_eos
heat_source = 0
A = 1.0183E-01
Dh = 2.0945E-02
[../]
[./hx_tube1]
type = PBOneDFluidComponent
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j1]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube1(out)'
outputs = 'hx_tube2(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube2]
type = PBOneDFluidComponent
position = '0.762 3.0762 0'
orientation = '0 -1 0'
length = 0.2032
n_elems = 2
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j2]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube2(out)'
outputs = 'hx_tube3(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube3]
type = PBOneDFluidComponent
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
[./hx_s_out]
type = PBTDV
input = 'hx_tube3(out)'
eos = hx_salt_eos
p_bc = 1.0e5
T_bc = 866.4833
[../]
[./hx_wall1]
type = PBCoupledHeatStructure
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube1
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./hx_wall2]
type = PBCoupledHeatStructure
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube3
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./j3]
type = PBBranch
Area = 0.01267
K = '0.0 1e3 0.0'
eos = fuel_salt_eos
inputs = 'hx_shell(out) pipe_ref(out)'
outputs = 'pipe3_s1(in)'
[../]
[./pipe_ref]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.1
n_elems = 2
orientation = '1 0 0'
position = '-1.8678 2.9746 0'
eos = fuel_salt_eos
[../]
[./ref_p]
type = PBTDV
eos = fuel_salt_eos
T_bc = 908.15
p_bc = 1.233351e+05
input = 'pipe_ref(in)'
[../]
[./pipe3_s1] # Connecting hx to downcomer
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.2474
n_elems = 13
orientation = '0 -1 0'
position = '-1.7678 2.9746 0'
eos = fuel_salt_eos
[../]
[./j4]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s1(out)'
outputs = 'pipe3_s2(in)'
[../]
[./pipe3_s2]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0312
n_elems = 11
orientation = '1 0 0'
position = '-1.7678 1.7272 0'
eos = fuel_salt_eos
[../]
[./j5]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s2(out)'
outputs = 'downcomer(in)'
[../]
[]
[Postprocessors]
[./Core_P_out] # Pressure at Core outlet/Loop inlet
type = ComponentBoundaryVariableValue
variable = pressure
input = core(out)
[../]
[./Core_vel_in]
type = ComponentBoundaryVariableValue
variable = velocity
input = core(in)
[../]
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
[./Core_T_in]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(in)
[../]
[./Core_P_in]
type = ComponentBoundaryVariableValue
variable = pressure
input = core(in)
[../]
[./HX_Tin_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(in)
[../]
[./HX_Tout_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(out)
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
#[Problem]
# restart_file_base = loop_1d_checkpoint_cp/0254
#[]
[Executioner]
type = Transient
dt = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out_displaced]
type = Exodus
use_displaced = true
execute_on = 'initial timestep_end'
sequence = false
[../]
[./csv]
type = CSV
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[./console]
type = Console
execute_scalars_on = 'none'
[../]
[]
(msr/msre/steady_state/msre_loop_1d.i)
# Modeling the MSRE
# Steady state simulation
# Application : SAM
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
[GlobalParams]
global_init_P = 1e5 # Global initial fluid pressure
global_init_V = 0.001 # Global initial fluid velocity
global_init_T = 908.15 # Global initial temperature for fluid and solid
Tsolid_sf = 1e-3
gravity = '0 -9.8 0'
scaling_factor_var = '1 1e-3 1e-6' # fluid model solver parameters
p_order = 2
[]
[Functions]
[./fuel_salt_rho_func] # Linear fitting used by He, 2016
type = PiecewiseLinear
x = '750 1200'
y = '2285.31 2032.41'
[../]
[./fuel_salt_enthalpy_func] # Approximated by Cp*T
type = PiecewiseLinear
x = '750 1200'
y = '1.51E+06 2.41E+06'
[../]
[./fuel_salt_mu_func]
type = PiecewiseLinear
x = '750 760 770 780 790 800 810 820
830 840 850 860 870 880 890 900
910 920 930 940 950 960 970 980
990 1000 1010 1020 1030 1040 1050 1060
1070 1080 1090 1100 1110 1120 1130 1140
1150 1160 1170 1180 1190 1200'
y = '2.7378E-02 2.5371E-02 2.3557E-02 2.1915E-02 2.0424E-02 1.9069E-02 1.7834E-02 1.6706E-02
1.5674E-02 1.4728E-02 1.3859E-02 1.3060E-02 1.2324E-02 1.1645E-02 1.1017E-02 1.0436E-02
9.8976E-03 9.3976E-03 8.9328E-03 8.5001E-03 8.0969E-03 7.7206E-03 7.3690E-03 7.0402E-03
6.7322E-03 6.4434E-03 6.1724E-03 5.9178E-03 5.6783E-03 5.4529E-03 5.2404E-03 5.0400E-03
4.8508E-03 4.6720E-03 4.5029E-03 4.3428E-03 4.1911E-03 4.0473E-03 3.9109E-03 3.7813E-03
3.6582E-03 3.5411E-03 3.4297E-03 3.3235E-03 3.2224E-03 3.1259E-03'
[../]
[]
[EOS]
[./fuel_salt_eos]
type = PTFunctionsEOS
rho = fuel_salt_rho_func
mu = fuel_salt_mu_func
enthalpy = fuel_salt_enthalpy_func
cp = 2009.66
k = 1.0
[../]
[./hx_salt_eos]
type = SaltEquationOfState
salt_type = Flibe
[../]
[]
[MaterialProperties]
[./alloy-mat] # Based on Hastelloy N alloy
type = SolidMaterialProps
k = 23.6 # Thermal conductivity
Cp = 578 # Specific heat
rho = 8.86e3 # Density
[../]
[]
[Components]
[./downcomer]
type = PBOneDFluidComponent
A = 0.1589
Dh = 0.0508
length = 1.7272
n_elems = 18
orientation = '0 -1 0'
position = '-0.7366 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_dn_pl]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'downcomer(out)'
outputs = 'iplnm(in)'
[../]
[./iplnm] # inlet plenum is connected to core bottom
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.7366
n_elems = 8
orientation = '1 0 0'
position = '-0.7366 0 0'
eos = fuel_salt_eos
[../]
[./j_ip_c]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'iplnm(out)'
outputs = 'core(in)'
[../]
[./core] # 1-D representation of the core
type = PBOneDFluidComponent
A = 0.3512 # consider a porosity of 0.225
Dh = 0.6687
length = 1.7272
n_elems = 20
orientation = '0 1 0'
position = '0 0 0'
eos = fuel_salt_eos
heat_source = 1.65e7
[../]
[./j_c_up]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'core(out)'
outputs = 'uplnm(in)'
[../]
[./uplnm] # upper plenum is connected to core exit
type = PBOneDFluidComponent
A = 0.3932
Dh = 0.6997
length = 0.4346
n_elems = 6
orientation = '0 1 0'
position = '0 1.7272 0'
eos = fuel_salt_eos
[../]
[./j_up_ps1]
type = PBBranch
Area = 0.1155
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'uplnm(out)'
outputs = 'pipe1_s1(in)'
[../]
[./pipe1_s1] # Connecting core to pump, horizontal section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.8288
n_elems = 19
orientation = '1 0 0'
position = '0 2.1618 0'
eos = fuel_salt_eos
[../]
[./j1]
type = PBBranch
Area = 0.01292
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe1_s1(out)'
outputs = 'pipe1_s2(in)'
[../]
[./pipe1_s2] # vertical section
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.8128
n_elems = 9
orientation = '0 1 0'
position = '1.8288 2.1618 0'
eos = fuel_salt_eos
[../]
#
# ====== pump ======
#
[./pump]
type = PBPump
Area = 0.01292
K = '0.15 0.1'
eos = fuel_salt_eos
inputs = 'pipe1_s2(out)'
outputs = 'pipe2(in)'
initial_P = 1.1e5
# Head_fn = f_pump_head
Head = 43909.58
[]
[./pipe2] # Connecting the pump to HX
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0668
n_elems = 11
orientation = '-1 0 0'
position = '1.8288 2.9746 0'
eos = fuel_salt_eos
[../]
[./j2] # junction connect to heat exchanger
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe2(out)'
outputs = 'hx_shell(in)'
[../]
#
# ====== Customized U-tube heat exchanger ======
#
[./hx_shell]
type = PBOneDFluidComponent
position = '0.762 2.9746 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = fuel_salt_eos
heat_source = 0
A = 1.0183E-01
Dh = 2.0945E-02
[../]
[./hx_tube1]
type = PBOneDFluidComponent
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j1]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube1(out)'
outputs = 'hx_tube2(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube2]
type = PBOneDFluidComponent
position = '0.762 3.0762 0'
orientation = '0 -1 0'
length = 0.2032
n_elems = 2
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_j2]
type = PBBranch
eos = hx_salt_eos
inputs = 'hx_tube2(out)'
outputs = 'hx_tube3(in)'
K = '0 0'
Area = 2.7885E-02
initial_T = 824.8167
[../]
[./hx_tube3]
type = PBOneDFluidComponent
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
n_elems = 26
eos = hx_salt_eos
heat_source = 0
A = 2.7885E-02
Dh = 1.0566E-02
initial_T = 824.8167
[../]
[./hx_s_in]
type = PBTDJ
input = 'hx_tube1(in)'
eos = hx_salt_eos
v_bc = 1.6
T_bc = 824.8167
[../]
[./hx_s_out]
type = PBTDV
input = 'hx_tube3(out)'
eos = hx_salt_eos
p_bc = 1.0e5
T_bc = 866.4833
[../]
[./hx_wall1]
type = PBCoupledHeatStructure
position = '-1.7678 3.0762 0'
orientation = '1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube1
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./hx_wall2]
type = PBCoupledHeatStructure
position = '0.762 2.873 0'
orientation = '-1 0 0'
length = 2.5298
hs_type = cylinder
radius_i = 5.2832E-03
width_of_hs = 1.0668E-03
elem_number_radial = 2
elem_number_axial = 26
dim_hs = 2
material_hs = 'alloy-mat'
Ts_init = 824.8167
HS_BC_type = 'Coupled Coupled'
name_comp_left = hx_tube3
HT_surface_area_density_left = 8.6290E+02
name_comp_right = hx_shell
HT_surface_area_density_right = 2.3629E+02
[../]
[./j3]
type = PBBranch
Area = 0.01267
K = '0.0 1e3 0.0'
eos = fuel_salt_eos
inputs = 'hx_shell(out) pipe_ref(out)'
outputs = 'pipe3_s1(in)'
[../]
[./pipe_ref]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 0.1
n_elems = 2
orientation = '1 0 0'
position = '-1.8678 2.9746 0'
eos = fuel_salt_eos
[../]
[./ref_p]
type = PBTDV
eos = fuel_salt_eos
T_bc = 908.15
p_bc = 1.233351e+05
input = 'pipe_ref(in)'
[../]
[./pipe3_s1] # Connecting hx to downcomer
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.2474
n_elems = 13
orientation = '0 -1 0'
position = '-1.7678 2.9746 0'
eos = fuel_salt_eos
[../]
[./j4]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s1(out)'
outputs = 'pipe3_s2(in)'
[../]
[./pipe3_s2]
type = PBOneDFluidComponent
A = 0.01267
Dh = 0.127
length = 1.0312
n_elems = 11
orientation = '1 0 0'
position = '-1.7678 1.7272 0'
eos = fuel_salt_eos
[../]
[./j5]
type = PBBranch
Area = 0.01267
K = '0.0 0.0'
eos = fuel_salt_eos
inputs = 'pipe3_s2(out)'
outputs = 'downcomer(in)'
[../]
[]
[Postprocessors]
[./Core_P_out] # Pressure at Core outlet/Loop inlet
type = ComponentBoundaryVariableValue
variable = pressure
input = core(out)
[../]
[./Core_vel_in]
type = ComponentBoundaryVariableValue
variable = velocity
input = core(in)
[../]
[./Core_T_out]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(out)
[../]
[./Core_T_in]
type = ComponentBoundaryVariableValue
variable = temperature
input = core(in)
[../]
[./Core_P_in]
type = ComponentBoundaryVariableValue
variable = pressure
input = core(in)
[../]
[./HX_Tin_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(in)
[../]
[./HX_Tout_p]
type = ComponentBoundaryVariableValue
variable = temperature
input = hx_shell(out)
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
# pc_factor_shift are added automatically by SAM, they are added here for BlueCRAB
petsc_options_iname = '-pc_type -ksp_gmres_restart -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 101 NONZERO 1e-9'
[../]
[]
#[Problem]
# restart_file_base = loop_1d_checkpoint_cp/0254
#[]
[Executioner]
type = Transient
dt = 0.2
dtmin = 1.e-3
dtmax = 10.0
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 200
start_time = 0
end_time = 300
num_steps = 100000
[./Quadrature]
type = SIMPSON
order = SECOND
[../]
[]
[Outputs]
print_linear_residuals = false
perf_graph = true
[./out_displaced]
type = Exodus
use_displaced = true
execute_on = 'initial timestep_end'
sequence = false
[../]
[./csv]
type = CSV
[../]
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[./console]
type = Console
execute_scalars_on = 'none'
[../]
[]