5.4.7. RVACS/RACS Models

Three RVACS (Reactor Vessel Auxiliary Cooling System) or RACS (Reactor Air Cooling System) Models have been included in SAS4A/SASSYS‑1: a simple model in which the user supplies the relevant information for the outside of the reactor vessel wall, a more detailed model in which air temperatures and flow rates are calculated by SAS, and a coupled model where an external code provides the relevant information for the region outside of the reactor vessel wall. The reactor coolant treatment and the representation of the reactor vessel wall are the same in all models. The vessel wall is represented by a combination of compressible volume walls and the walls of pipes and annular elements. The component-to-component heat transfer capability described in Section 5.4.6 above is used to remove heat from the reactor vessel walls, and the three models are used to set \(T_{\text{snk}}\), \(H_{\text{snk}}\), and \(A_{\text{snk}}\), for the wall.

The input required for each of the RVACS models is described below.

5.4.7.1. Simple RVACS Model

For the simple model the representation of the RVACS stops at the reactor vessel wall. The user supplies a single air temperature and a table of effective heat transfer coefficient vs. vessel wall temperature. For each axial node in the reactor vessel wall, the code then sets the sink temperature, \(T_{\text{snk}}\), to the air temperature. The sink heat transfer coefficient, \(h_{\text{snk}}\), is re-calculated each time step based on the current vessel wall temperature at the node.

5.4.7.2. Detailed Air Side Model

Figure 5.4.8 shows the general RVACS model and noding scheme. Wall temperature nodes are used for the reactor vessel, guard vessel, finned shell (inside and outside), outer wall, and a constant temperature deep in the concrete or the ground. Air nodes are included for the down-comer and for the up-flow section. An air inlet section and an outlet stack are also included. Either vertical or non-vertical sections of vessel wall can be treated.

The reactor vessel wall can be made up of a number of SAS4A/SASSYS‑1 components, including a hot pool wall, a cold pool wall, a pipe wall, or an annular flow element wall. The annular flow element is a new type of liquid flow element that has recently been added to SAS4A/SASSYS‑1, mainly for modeling the RVACS and for modeling multi-dimensional effects in pools.

Both radiative and convective heat transfer from the reactor vessel to the guard vessel are modeled. Radiation from the guard vessel to the finned shell as well as convective heat transfer to air from the guard vessel and the finned shell are treated.

The finned shell is assumed to be insulated, but less-than-perfect insulation can be treated. Temperatures on both sides of the insulation are calculated. Heat transfer from the inside of the to the outside, and from the outside of the finned shell to the incoming air, is treated. Radiation from the finned shell to be outer wall is treated as well as convective heat transfer from the outer wall to the incoming air. Also, conduction from the outer wall to a constant temperature node deep in the concrete or in the ground is handled. With perfect insulation on the finned shell and little heat transfer into the concrete, the calculation of air and wall temperatures on the down-comer side would be unnecessary; the air temperature at the bottom of the up-flow side could be set to the outside air inlet temperature. The model with heat transfer to the incoming air allows consideration of the impact on RVACS-RACS performance of limited insulation between the downcomer and the up-flow side.

As indicated in Figure 5.4.8, one axial node is included above the liquid level in the vessel. This node is included to account for heat transfer through the finned shell between incoming and outgoing air. For this node, the heat transfer coefficient between the reactor vessel and the guard vessel is set to zero.

../../_images/image9.png

Figure 5.4.8 SAS4A/SASSYS‑1 Model of an RVACS/RACS System.

5.4.7.2.1. Basic Equations

  1. Wall Temperatures

  1. Reactor Vessel

The basic equation for the reactor vessel wall temperature is

(5.4-106)\[ m_{\text{w}1} C_{\text{w}1} \frac{\text{dT}_{\text{w}1}}{\text{dt}} = h_{\text{Nw}1} A_{\text{Nw}1} \left( T_{\text{N}} - T_{\text{w}1} \right) + h_{\text{w}12} A_{\text{w}12} \left( T_{\text{w}2} - T_{\text{w}1} \right)\]

where

\(m_{\text{w}1}\) = reactor vessel wall mass per unit length

\(C_{\text{w}1}\) = reactor vessel specific heat

\(T_{\text{w}1}\) = reactor vessel wall temperature

\(t\) = time

\(h_{\text{Nw}1}\) = heat transfer coefficient between the sodium inside the vessel and the vessel wall

\(A_{\text{Nw}1}\) = inner perimeter, or heat transfer area per unit length, of the vessel wall

\(T_{\text{N}}\) = sodium temperature

\(h_{\text{w}12}\) = heat transfer coefficient between the reactor vessel and the guard vessel, including both radiation and convection terms

\(A_{\text{w}12}\) = outer perimeter of the reactor vessel, PERVAC

\(T_{\text{w}12}\) = guard vessel temperature

  1. Guard Vessel

(5.4-107)\[\begin{split} \frac{(mC)_{\text{w}2}}{F_{\text{NT}}} \frac{\text{dT}_{\text{w}2}}{\text{dt}} = h_{\text{w}12} A_{\text{w}12} \left( T_{\text{w}1} - T_{\text{w}2} \right) \\ + h_{\text{w}23} A_{\text{w}23} \left( T_{\text{w}3} - T_{\text{w}2} \right) + h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left( T_{\text{a}1} - T_{\text{w}2} \right)\end{split}\]

where

\((mC)_{\text{w}2}\) = heat capacity per unit length of the guard vessel, GVMC

\(F_{\text{NT}}\) = thermal inertia inverse scaling factor

\(h_{\text{w}23}\) = radiation heat transfer coefficient between the guard vessel and the finned shell

\(A_{\text{w}23}\) = outer perimeter of the guard vessel, PERGVO

\(T_{\text{w}3}\) = temperature of the finned shell inner node

\(T_{\text{a}1}\) = air temperature in the up-flow section

\(h_{\text{w}2\text{a}}\) = heat transfer coefficient between the guard vessel and air

\(A_{\text{w}2\text{a}}\) = perimeter between the guard vessel and the air, PERGV

\(F_{\text{NT}}\) varies depending on the stage of the simulation

(5.4-108)\[\begin{split} F_{\text{NT}}= \begin{cases} FINVNT && \text{if } \text{Null Transient} \\ 1 && \text{if } \text{Transient} \\ \end{cases}\end{split}\]

where \(FINVNT\) is the user provided inverse scaling factor, FINVNT. The thermal inertia inverse scaling factor allows the detailed RVACS component to approach a steady state faster during the null transient simulation.

  1. Finned shell, Inner Node

(5.4-109)\[\begin{split} \frac{(mC)_{\text{w}3}}{F_{\text{NT}}} \frac{\text{dT}_{\text{w}3}}{\text{dt}} = h_{\text{w}34} A_{\text{w}34} \left( T_{\text{w}4} - T_{\text{w}3} \right) + h_{\text{w}23} A_{\text{w}23} \left( T_{\text{w}2} - T_{\text{w}3} \right) \\ + h_{\text{w}3\text{a}} A_{\text{w}3\text{a}} \left( T_{\text{a}1} - T_{\text{w}3} \right)\end{split}\]

\((mC)_{\text{w}3}\) = heat capacity per unit length of the inside of the finned shell, FSMCI

\(T_{\text{w}3}\) = finned shell inner node temperature

\(h_{\text{w}34}\) = heat transfer coefficient between the inside and outside of the finned shell, HFSRV

\(A_{\text{w}34}\) = perimeter of the finned shell, PERFSO

\(h_{\text{w}3\text{a}}\) = heat transfer coefficient between the finned shell and the upflowing air

\(A_{\text{w}3\text{a}}\) = perimeter between the finned shell and the upflowing air, PERFS

\(T_{\text{w}4}\) = finned shell outer node temperature

  1. Finned Shell, Outer Node

(5.4-110)\[\begin{split} \frac{(mC)_{\text{w}4}}{F_{\text{NT}}} \frac{\text{dT}_{\text{w}4}}{\text{dt}} = h_{\text{w}45} A_{\text{w}45} \left( T_{\text{w}5} - T_{\text{w}4} \right) + h_{\text{w}34} A_{\text{w}34} \left( T_{\text{w}3} - T_{\text{w}4} \right) \\ + h_{\text{w}4\text{a}} A_{\text{w}4\text{a}} \left( T_{\text{a}2} - T_{\text{w}4} \right)\end{split}\]

\((mC)_{\text{w}4}\) = heat capacity per unit length of the outside of the finned shell, FSMCO

\(T_{\text{w}5}\) = concrete wall inner node temperature

\(h_{\text{w}45}\) = heat transfer coefficient between the finned shell and the concrete

\(A_{\text{w}45}\) = finned shell outer perimeter, PERFSO

\(T_{\text{a}2}\) = temperature of the down-flowing air

\(h_{\text{w}4\text{a}}\) = heat transfer coefficient between the finned shell outer surface and the down-flowing air

\(A_{\text{w}4\text{a}}\) = perimeter between the finned shell outer surface and the down-flowing air, PERFSO

  1. Cavity Wall, Inner Node

(5.4-111)\[\begin{split} \frac{(mC)_{\text{w}5}}{F_{\text{NT}}} \frac{\text{dT}_{\text{w}5}}{\text{dt}} = h_{\text{w}56} A_{\text{w}56} \left( T_{\text{w}6} - T_{\text{w}5} \right) + h_{\text{w}45} A_{\text{w}45} \left( T_{\text{w}4} - T_{\text{w}5} \right) \\ + h_{\text{w}5\text{a}} A_{\text{w}5\text{a}} \left( T_{\text{a}2} - T_{\text{w}5} \right)\end{split}\]

\((mC)_{\text{w}5}\) = heat capacity per unit length of the inside of the cavity wall, CRMCI

\(T_{\text{w}6}\) = constant temperature deep in the concrete or ground

\(h_{\text{w}56}\) = heat transfer coefficient between the cavity wall surface node and the constant temperature heat sink

\(A_{\text{w}56}\) = cavity wall perimeter, PERFSO

\(h_{\text{w}5\text{a}}\) = heat transfer coefficient from the cavity wall to the down-flowing air

  1. Air Temperature

The air is treated with a quasi-static approximation, neglecting the time derivative of the air temperature and density.

  1. Up-Flowing Air Between the Guard Vessel and the Finned Shell

(5.4-112)\[ w_{\text{a}} C_{\text{a}} \frac{\text{dT}_{\text{a}1}}{\text{dz}} = h_{\text{wa}2} A_{\text{wa}2} \left( T_{\text{w}2} \left( z \right) - T_{\text{a}1} \left( z \right) \right) + h_{\text{wa}3} A_{\text{wa}3} \left\lbrack T_{\text{w}3} \left( z \right) - T_{\text{a}1} \left( z \right) \right\rbrack\]

where

\(w_{\text{a}}\) = air mass flow rate, kg/sec.

\(C_{\text{a}}\) = air specific heat

  1. Down-Flowing Air Between the Finned Shell and the Concrete Wall

(5.4-113)\[ w_{\text{a}} C_{\text{a}} \frac{\text{dT}_{\text{a}2}}{\text{dz}} = h_{\text{wa}4} A_{\text{wa}4} \left( T_{\text{w}4} \left( z \right) - T_{\text{a}2} \left( z \right) \right) + h_{\text{wa}5} A_{\text{wa}5} \left\lbrack T_{\text{w}5} \left( z \right) - T_{\text{a}2} \left( z \right) \right\rbrack\]
  1. Air Flow Rate

As shown in Figure 5.4.8, the air flow path is modeled as an inlet section, a down-flow section between the outer surface of the finned shell and the cavity wall, an up-flow section between the guard vessel and the inner surface of the finned shell, and an outlet stack. The air temperature in the inlet section is assumed to be equal to the external air temperature, which the user can define as either constant or varying with time. In the stack, the air temperature is assumed to equal the value at the outlet from the guard vessel-finned shell region. Between the inlet section and the stack, the air temperature is calculated on a node-by-node basis.

The inertia of the air is ignored, and the air flow rate is calculated by balancing the air gravity head with the loss terms.

(5.4-114)\[ \Delta p_{\text{gr}} = \Delta p_{\text{loss}}\]

The gravity head, \(\Delta p_{\text{gr}}\), is calculated as

(5.4-115)\[\begin{split} \Delta p_{\text{gr}} = \int{\rho \text{gdz}} = g \left\{ - \rho_{\text{in}} \Delta z_{\text{in}} + \rho_{\text{stack}} \Delta z_{\text{stack}} - \sum_{\text{j}}{{\overline{\rho}}_{\text{a}2} \left( j \right) \Delta z_{\text{j}}} \\ + \sum_{\text{j}}{{\overline{\rho}}_{\text{a}1} \left( j \right) \Delta z_{\text{j}} - \rho_{\text{in}} \left( z_{\text{st}} - z_{\text{in}} \right) } \right\}\end{split}\]

where

\(g\) = acceleration of gravity, GRAVITY

\(\rho_{\text{in}}\) = air density in the inlet section

\(\rho_{\text{stack}}\) = air density in the stack

\({\overline{\rho}}_{\text{a}1}\left( j \right)\) = average air density in node \(j\) for upflow air

\(\Delta z_{\text{j}}\) = height of node \(j\)

\(\Delta z_{\text{in}}\) = elevation gain in the inlet, XLAIRV

\(\Delta z_{\text{stack}}\) = elevation gain if the stack, XLAORV

\(z_{\text{st}}\) = elevation of the stack outlet

and

\(z_{\text{in}}\) = inlet elevation

The loss term, \(\Delta p_{\text{loss}}\), is calculated as

(5.4-116)\[ \Delta p_{\text{loss}} = \frac{w_{\text{a}}^{2}}{2\rho_{\text{a},1} A_{\text{a},1}^{2}} k_{\text{or}} + \sum_i\frac{w_{\text{a}}^{2}}{2\rho_{\text{a},i} A_{\text{a},i}^{2}} f \frac{L_i}{D_{\text{h},i}}\]

where

\(w_{\text{a}}\) = air flow rate

\(A_{\text{a},i}\) = air flow area in node i

\(\rho_{\text{a},i}\) = air density in node i

\(f\) = friction factor

\(k_{\text{or}}\) = inlet orifice coefficient

\(L_i\) = length of the node i

\(D_{\text{h,i}}\) = hydraulic diameter of node i

The summation is over the inlet section (i=1), the stack, and each of the nodes between.

The friction factor is calculated as

(5.4-117)\[\begin{split} f = \begin{cases} A_{\text{fr}}\text{Re}^{b} && \text{if } \text{Re} \geq \text{Re}_{\text{t}} \\ \frac{A_{\text{fl}}}{\text{Re}} && \text{if } \text{Re} < \text{Re}_{\text{t}} \\ \end{cases}\end{split}\]

where

(5.4-118)\[ \text{Re} = \text{ Reynolds number } = \frac{D_{\text{h}} w_{\text{a}}}{\mu_{\text{a}} A_{\text{a}}}\]

\(\mu_{\text{a}}\) = viscosity

\(A_{\text{fr}}\) = user-supplied turbulent friction factor coefficient, AFRTRV,

\(b\) = user-supplied turbulent friction factor exponent, BFRTRV, and

\(A_{\text{fl}}\) = user-supplied laminar friction factor coefficient, AFRLRV

The value of \(\text{Re}_{\text{t}}\), the Reynolds number for the transition from turbulent to laminar, REYTRV, is calculated by the code to make the friction factor continuous at the transition point.

(5.4-119)\[ A_{\text{fr}}\text{Re}_{\text{t}}^{b} = \frac{A_{\text{fl}}}{\text{Re}_{\text{t}}}\]

Or

(5.4-120)\[ \text{Re}_{\text{t}} = \left( \frac{A_{\text{fl}}}{A_{\text{fr}}} \right)^{\frac{1}{1+b}}\]
  1. Heat Transfer Coefficients

    1. Reactor Vessel (RV) to Guard Vessel (GV)

(5.4-121)\[ \frac{1}{h_{\text{w}12}} = \frac{R_{\text{w}1}}{2} + \frac{1}{h_{\text{cv}12} + \varepsilon_{12} \sigma \left( T_{\text{w}1} + T_{\text{w}2} \right) \left( T_{\text{w}1}^{2} + T_{\text{w}2}^{2} \right)} + \frac{R_{\text{w}2}}{2}\]

The approximation is made that \(R_{\text{w}1}\) and \(R_{\text{w}2}\) are lumped in with \(h_{\text{cv}12}\), so

(5.4-122)\[ h_{\text{w}12} = h_{\text{cv}12} + \mathbf{\varepsilon}_{12} \sigma \left( T_{\text{w}1} + T_{\text{w}2} \right) \left( T_{\text{w}1}^{2} + T_{\text{w}2}^{2} \right)\]

where

(5.4-123)\[ \varepsilon_{12} = \frac{1}{\frac{1}{\varepsilon_{\text{RV}} } + \frac{1}{\varepsilon_{\text{GVI}} } - 1}\]

and

\(h_{\text{cv}12}\) = user-supplied convective heat transfer coefficient, RV to GV, HGASRV

\(\varepsilon_{\text{RV}}\) = emissivity of the reactor vessel wall, EPSRV

\(\varepsilon_{\text{GVI}}\) = emissivity of the guard vessel inner surface, EPSGV

\(\sigma\) = Stefan-Boltzmann Constant, SIGSTB

(5.4-124)\[ R_{\text{w}1} = G_{\text{RV}}/k_{\text{RV}}\]
(5.4-125)\[ R_{\text{w}2} = G_{\text{GV}}/k_{\text{GV}}\]

\(G_{\text{RV}}\) = thickness of the reactor vessel

\(G_{\text{GV}}\) = thickness of the guard vessel

\(k_{\text{GV}}\) = thermal conductivity of guard vessel

\(k_{\text{RV}}\) = thermal conductivity of the reactor vessel

  1. GV to Finned Shell (FS)

(5.4-126)\[ \frac{1}{h_{\text{w}23}} = \frac{R_{\text{w}2}}{2} + \frac{1}{\varepsilon_{23} \sigma \left( T_{\text{w}2} + T_{\text{w}3} \right) \left( T_{\text{w}2}^{2} + T_{\text{w}3}^{2} \right)}\]

\(R_{\text{w}2}\) is neglected, so

(5.4-127)\[ h_{\text{w}23} = \varepsilon_{23} \sigma \left( T_{\text{w}2} + T_{\text{w}3} \right) \left( T_{\text{w}2}^{2} + T_{\text{w}3}^{2} \right)\]
(5.4-128)\[ \varepsilon_{23} = \frac{1}{\frac{1}{\varepsilon_{\text{GVO}} } + \frac{1}{\varepsilon_{\text{FSI}} } - 1}\]

\(\varepsilon_{\text{GVO}}\) = emissivity of the guard vessel outer surface, EPSGVO

\(\varepsilon_{\text{FSI}}\) = emissivity of the finned shell inner surface, EPSFSI

  1. Finned Shell

\(h_{\text{w}34}\) = a constant, user-supplied, conduction coefficient, HFSRV

  1. Outer Wall

(5.4-129)\[ \frac{1}{h_{\text{w}45}} = R_{\text{w}5} + \frac{1}{\varepsilon_{45} \sigma \left( T_{\text{w}4} + T_{\text{w}5} \right) \left( T_{\text{w}4}^{2} + T_{\text{w}5}^{2} \right)}\]

or

(5.4-130)\[ h_{\text{w}45} = \frac{\varepsilon_{45} \sigma \left( T_{\text{w}4} + T_{\text{w}5} \right) \left( T_{\text{w}4}^{2} + T_{\text{w}5}^{2} \right)}{1 + R_{\text{w}5} \varepsilon_{45} \sigma \left( T_{\text{w}4} + T_{\text{w}5} \right) \left( T_{\text{w}4}^{2} + T_{\text{w}5}^{2} \right)}\]

where

(5.4-131)\[ \varepsilon_{45} = \frac{1}{\frac{1}{\varepsilon_{\text{FSO}}} + \frac{1}{\varepsilon_{\text{OW}}} - 1}\]

\(R_{\text{w}5}\) = thermal resistance in the outer wall to the location of \(T_{\text{w}5}\), RW5RV

\(h_{\text{w}56}\) = a constant, user supplied, conduction coefficient, HCONRV

\(\varepsilon_{\text{FSO}}\) = emissivity of the finned shell outer surface, EPSFS

\(\varepsilon_{\text{OW}}\) = emissivity of the outer wall, EPSOW

  1. Air

(5.4-132)\[ \frac{1}{h_{\text{w}2\text{a}}} = \frac{R_{\text{w}2}}{2} + \frac{1}{h_{\text{a}1}}\]

again \(R_{\text{w}2\text{a}}\) is neglected, so

(5.4-133)\[ h_{\text{w}2\text{a}} = h_{\text{a}1}\]

where the air heat transfer coefficient is

(5.4-134)\[ h_{\text{a}} = \frac{k_{\text{a}}}{D_{\text{ha}}} N\text{u}\]

\(k_{\text{a}}\) = air thermal conductivity

\(D_{\text{ha}}\) = hydraulic diameter between the guard vessel and the finned shell or between the finned shell and the outer wall

\(N_{\text{u}}\) = Nusselt number

(5.4-135)\[\begin{split} \text{Nu} = \begin{cases} C_{1} {\text{Re}}^{C_{2}} {\text{Pr}}^{0.4} & \text{if } \text{Re} \geq \text{Re}_{\text{t}} \\ C_{3} & \text{if } \text{Re} < \text{Re}_{\text{t}} \end{cases}\end{split}\]
(5.4-136)\[ \text{Re} = \frac{D_{\text{ha}} w_{\text{a}}}{A_{\text{a}}\mu_{\text{a}}}\]

\(w_{\text{a}}\) = air flow rate

\(A_{\text{a}}\) = air flow area, AIRARV or AIRAR2

\(\mu_{\text{a}}\) = air viscosity

\(P_{\text{r}}\) = Prandtl number

\(C_{1}\), \(C_{2}\), \(C_{3}\) = user supplied correlation coefficients, C1RV, C2RV, C3RV

\(C_{1} \sim .023\)

\(C_{2} \sim 0.8\)

\(C_{3} \sim 3-8\)

\(\text{Re}_{\text{t}}\) = Reynolds number for transition from turbulent to laminar heat transfer

Also,

(5.4-137)\[ h_{\text{w}3\text{a}} = h_{\text{a}1}\]
(5.4-138)\[ h_{\text{w}4\text{a}} = h_{\text{a}2}\]
(5.4-139)\[ \frac{1}{h_{\text{w}5\text{a}}} = R_{\text{w}5} + \frac{1}{h_{\text{a}2}}\]

or

(5.4-140)\[ h_{\text{w}5\text{a}} = \frac{h_{\text{a}2}}{1 + R_{\text{w}5} h_{\text{a}2}}\]
(5.4-141)\[ h_{\text{w}5\text{a}} = \frac{k_{\text{a}2}}{D_{\text{haz}}} N_{\text{u}2}\]
  1. Air Properties

Correlations used for air thermal properties are:

Density

(5.4-142)\[ \rho_{\text{a}} = .0003985 + \frac{352.25}{T} + \frac{207.89}{T^{2}}\ \left( \text{kg}/\text{m}^{3} \right)\]

where

\(T\) = air temperature (K)

Specific Heat

(5.4-143)\[ C_{\text{pa}} = 972.93 + .086802T + 7.8654 x 10^{- 5} T^{2}\ \left( \text{J}/\text{kg-K} \right)\]

Prandtl Number:

(5.4-144)\[ {\text{Pr}}^{0.4} = 0.89887 - 1.1906 \times 10^{-4} T + 8.6681 \times 10^{-8} T^{2}\]

Viscosity

(5.4-145)\[ \mu = 3.872 \times 10^{-6} + 5.332 \times 10^{-8} T - 1.531 \times 10^{-11} T^{2}\ \left( \text{kg}/\text{m-s} \right)\]
(5.4-146)\[ \mu^{0.2} = .09628 + 6.358 \times 10^{-5} T - 2.633 \times 10^{-8} T^{2}\]

Thermal Conductivity:

(5.4-147)\[ k = 2.085 \times 10^{-3} + 8.820 \times 10^{-5} T - 2.304 \times 10^{-8} T^{2}\ \left( \text{W}/\text{m-K} \right)\]

These correlations agree with the tables of dry air properties on page 522 of Ref. 5-6 over the range from 255.4 K (0°F) to 1088.7 K (1500°F) to within .2% for \(\rho_{\text{a}}\), .34% for \(C_{\text{pa}}\), .03% for \({\text{Pr}}^{0.4}\), 1% for \(\mu\), .4% for \({\mu}^{0.2}\), and 2.7% for \(k\).

5.4.7.2.2. Finite Difference Solution

  1. Finite Difference Equations

  1. Reactor Vessel

The coupling between the RVACS/RACS model and the rest of SAS4A/SASSYS‑1 takes place at the reactor vessel wall. Heat transfer from the vessel wall to the guard vessel is treated using the component-to-component heat transfer capability of the code. Eq. (5.4-106) becomes

(5.4-148)\[ m_{\text{w}1} C_{\text{w}1} \frac{\text{dT}_{\text{w}1}}{\text{dt}} = h_{\text{Nw}1} A_{\text{Nw}1} \left( T_{\text{N}} - T_{\text{w}1} \right) + h_{\text{snk}} A_{\text{snk}} \left( T_{\text{snk}} - T_{\text{w}1} \right)\]

where \(h_{\text{snk}}\), \(A_{\text{snk}}\), and \(T_{\text{snk}}\) are the sink heat transfer coefficient, area, and temperature used in the component-to-component heat transfer treatment. At the beginning of each time step these values are re-set as

(5.4-149)\[ h_{\text{snk}} = h_{\text{w}12} \frac{P_{RV_{j}}}{P_{component_{j}}}\]
(5.4-150)\[ A_{\text{snk}} = A_{\text{w}12} \Delta z_{\text{j}}\]
(5.4-151)\[ T_{\text{snk}} = T_{\text{w}2}\]

where \(P_{RV_{j}}\) is the user-defined RV perimeter and \(P_{component_{j}}\) is the perimeter of the primary system component (element or CV) which RVACS is coupled to, for node \(j\). The vessel wall is modeled as a combination of compressible volume walls, pipe walls, and annular element walls. The thermal treatments for these components solve Eq. (5.4-148).

Determination of \(P_{component_{j}}\) in Eq. (5.4-149) is described by Table 5.4.16, below. It should be noted that all parameters used to calculate \(P_{component_{j}}\) are obtained directly from user input.

Table 5.4.16 Specification of \(P_{component_{j}}\)

Coupled Component

\(P_{component_{j}}\)

CV

\(P_{RV_{j}}\)

Pipe

\(\frac{4A}{D_h}\)

Annular Element

\(P_{second wall}\)

  1. Air Temperature

A treatment similar to the log-mean temperature difference treatment is used for the air. Fully implicit time differencing is used in the sense that the values used for \(T_{\text{w}2}\) and \(T_{\text{w}3}\) in Eq. (5.4-112) are the values at the end of the time step. Also, it is assumed that \(T_{\text{w}2}\) and \(T_{\text{w}3}\) are constant across a node. For node \(j\), which extends from \(z_{\text{j}}\) to \(z_{\text{j}}+1\), the solution of Eq. (5.4-112) then becomes

(5.4-152)\[ T_{\text{a}1} \left( z' \right) = {T'}_{\text{a}1} + \left( T_{\text{a}1} \left( 0 \right) - {T'}_{\text{a}1} \right) \varepsilon^{- \lambda_{1}z'}\]

where

(5.4-153)\[ z' = z - z_{\text{j}}\]
(5.4-154)\[ {T'}_{\text{a}1} = f_{2} T_{\text{w}3\text{j}} + f_{3} T_{\text{w}3\text{j}}\]
(5.4-155)\[ f_{2} = \frac{h_{\text{w}2\text{a}} A_{\text{w}2\text{a}}}{h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} + h_{\text{w}3\text{a}} A_{\text{w}3\text{a}}}\]
(5.4-156)\[ f_{3} = 1 - f_{2}\]

and

(5.4-157)\[ \lambda_{1} = \frac{h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} + h_{\text{w}3\text{a}} A_{\text{w}3\text{a}}}{w_{\text{a}} C_{\text{a}}}\]

The heat flow from the guard vessel to the air in node j is then

(5.4-158)\[ q_{2\text{aj}} = \int_{\text{z}' = 0}^{\Delta z_{\text{j}}}h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left\lbrack T_{\text{w}2\text{j}} - T_{\text{a}} \left( z' \right) \right\rbrack \text{dz}'\]

where

(5.4-159)\[ \Delta z_{\text{j}} = z_{\text{j} + 1} - Z_{\text{j}}\]

Combining Eq. (5.4-152) and Eq. (5.4-158) gives

(5.4-160)\[ q_{2\text{aj}} = h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left\{ \Delta z_{\text{j}} \left( T_{\text{w}2\text{j}} - {T'}_{\text{a}1} \right) + \frac{\left\lbrack {T'}_{\text{a}1} - T_{\text{a}1} \left( 0 \right) \right\rbrack \left( 1 - e^{- \lambda \Delta z_{\text{j}}} \right)}{\lambda_{1}} \right\}\]

The wall temperatures are solved for simultaneously with the air temperatures, so one uses

(5.4-161)\[ T_{\text{w}2\text{j}} \left( t + \Delta t \right) = T_{\text{w}2\text{j}}\left( t \right) + \Delta T_{\text{w}2\text{j}}\]

and

(5.4-162)\[ T_{\text{w}3\text{j}} \left( t + \Delta t \right) = T_{\text{w}3\text{j}}\left( t \right) + \Delta T_{\text{w}3\text{j}}\]

where the time step size is \(\Delta t\). Then Eq. (5.4-160) has the form

(5.4-163)\[ q_{2\text{aj}} = b_{\text{o}} + b_{2} \Delta T_{\text{w}2\text{j}} + b_{3} \Delta T_{\text{w}3\text{j}}\]

where

(5.4-164)\[ b_{0} = h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left\{ \Delta z_{\text{j}} \left\lbrack T_{\text{w}2\text{j}}\left( t \right) - {T'}_{\text{a}1} \left( t \right) \right\rbrack + \frac{\left\lbrack {T'}_{\text{a}1}\left( t \right) - T_{\text{a}1} \left( 0 \right) \right\rbrack}{\lambda_{1}} \left( 1 - e^{- \lambda_{1}\Delta z_{\text{j}}} \right) \right\}\]
(5.4-165)\[ b_{2} = h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left\{ \Delta z_{\text{j}} \left( 1 - f_{2} \right) + \frac{f_{2}}{\lambda_{1}} \left( 1 - e^{- \lambda_{1}\Delta z_{\text{j}}} \right) \right\}\]

and

(5.4-166)\[ b_{3} = h_{\text{w}2\text{a}} A_{\text{w}2\text{a}} \left\{ -\Delta z_{\text{j}} f_{3} - \frac{f_{3}}{\lambda_{1}} \left( 1 - e^{- \lambda_{1}\Delta z_{\text{j}}} \right) \right\}\]

Similarly,

(5.4-167)\[ q_{3\text{aj}} = C_{\text{0}} + C_{2} \Delta T_{\text{w}2\text{j}} + C_{3} \Delta T_{\text{w}3\text{j}}\]
(5.4-168)\[ q_{4\text{aj}} = d_{\text{o}} + d_{4} \Delta T_{\text{w}4\text{j}} + d_{5} \Delta T_{\text{w}5\text{j}}\]

and

(5.4-169)\[ q_{5\text{aj}} = e_{\text{o}} + e_{4} \Delta T_{\text{w}4\text{j}} + e_{5} \Delta T_{\text{w}5\text{j}}\]

where

(5.4-170)\[ C_{0} = h_{\text{w}3\text{a}} A_{\text{w}3\text{a}} \left\{ \Delta z_{\text{j}} \left\lbrack T_{\text{w}3\text{j}}\left( t \right) - {T'}_{\text{a}1}\left( t \right) \right\rbrack + \frac{{T'}_{\text{a}1}\left( t \right) - T_{\text{a}1}\left( 0 \right)}{\lambda_{1}} \left( 1 - e^{- \lambda_{1} \Delta z_{\text{j}}} \right) \right\}\]
(5.4-171)\[ C_{2} = - h_{\text{w}3\text{a}} A_{\text{w}3\text{a}} \left\{ \Delta z_{\text{j}}f_{2} - \frac{f_{2}}{\lambda_{1}} \left( 1 - e^{- \lambda_{1}\Delta z_{\text{j}}} \right) \right\}\]
(5.4-172)\[ C_{3} = h_{\text{w}3\text{a}} A_{\text{w}3\text{a}} \left\{ \Delta z_{\text{j}} \left( 1 - f_{3} \right) + \frac{f_{3}}{\lambda_{1}} \left( 1 - e^{- \lambda_{1}\Delta z_{\text{j}}} \right) \right\}\]
(5.4-173)\[ d_{\text{o}} = h_{\text{w}4\text{a}} A_{\text{w}4\text{a}} \left\{ \Delta z_{\text{j}} \left\lbrack T_{\text{w}4\text{j}}\left( t \right) - {T'}_{\text{a}2}\left( t \right) \right\rbrack + \frac{\left\lbrack {T'}_{\text{a}2}\left( t \right) - T_{\text{a}2}\left( \Delta z \right) \right\rbrack \left( 1 - e^{- \lambda_{2} \Delta z_{\text{j}}} \right)}{\lambda_{2}} \right\}\]
(5.4-174)\[ d_{4} = h_{\text{w}4\text{a}} A_{\text{w}4\text{a}} \left\{ \Delta z_{\text{j}}\left( 1 - f_{4} \right) + \frac{f_{4}}{\lambda_{2}} \left( 1 - e^{- \lambda_{2}\Delta z_{\text{j}}} \right) \right\}\]
(5.4-175)\[ d_{5} = - h_{\text{w}4\text{a}} A_{\text{w}4\text{a}} \left\{ \Delta z_{\text{j}} f_{5} - \frac{f_{5}}{\lambda_{2}} \left( 1 - e^{- \lambda_{2}\Delta z_{\text{j}}} \right) \right\}\]
(5.4-176)\[ e_{0} = h_{\text{w}5\text{a}} A_{\text{w}5\text{a}} \left\{ \Delta z_{\text{j}} \left\lbrack T_{\text{w}5\text{j}}\left( t \right) - {T'}_{\text{a}2}\left( t \right) \right\rbrack + \frac{\left\lbrack {T'}_{\text{a}2}\left( t \right) - T_{\text{a}2}\left( \Delta z \right) \right\rbrack \left( 1 - e^{- \lambda_{2} \Delta z_{\text{j}}} \right)}{\lambda_{2}} \right\}\]
(5.4-177)\[ e_{4} = - h_{\text{w}5\text{a}} A_{\text{w}5\text{a}} \left\{ \Delta z_{\text{j}} f_{4} - \frac{f_{4}}{\lambda_{2}} \left( 1 - e^{- \lambda_{2}\Delta z} \right) \right\}\]
(5.4-178)\[ e_{5} = h_{\text{w}5\text{a}} A_{\text{w}5\text{a}} \left\{ \Delta z_{\text{j}} \left( 1 - f_{5} \right) + \frac{f_{5}}{\lambda_{2}} \left( 1 - e^{- \lambda_{2}\Delta z} \right) \right\}\]
(5.4-179)\[ {T'}_{\text{a}2} = f_{4} T_{\text{w}4\text{j}} + f_{5} T_{\text{w}5\text{j}}\]
(5.4-180)\[ f_{4} = \frac{h_{\text{w}4\text{a}} A_{\text{w}4\text{a}}}{h_{\text{w}4\text{a}} A_{\text{w}4\text{a}} + h_{\text{w}5\text{a}} A_{\text{w}5\text{a}}}\]

and

(5.4-181)\[ f_{5} = 1 - f_{4}\]
  1. Guard Vessel

Fully implicit time differencing is used for the wall temperature. Eq. (5.4-107) becomes

(5.4-182)\[\begin{split} \Delta z_{\text{j}}m_{\text{w}2} C_{\text{w}2} \frac{\Delta T_{\text{w}2}}{F_{\text{NT}}\Delta t} = h_{\text{w}12} A_{\text{w}12} \left\lbrack T_{\text{w}1} \left( t + \Delta t \right) - T_{\text{w}2}\left( t \right) - \Delta T_{\text{w}2} \right\rbrack \Delta z_{\text{j}} \\ + h_{\text{w}23} A_{\text{w}23} \left\lbrack T_{\text{w}3} \left( t \right) + \Delta T_{\text{w}3} - T_{\text{w}2}\left( t \right) - \Delta T_{\text{w}2} \right\rbrack \Delta z_{\text{j}} - q_{2\text{aj}}\end{split}\]

or

(5.4-183)\[ \alpha_{2} \Delta T_{\text{w}2} + \alpha_{3} \Delta T_{\text{w}3} = \alpha_{0}\]

where

(5.4-184)\[ \alpha_{2} = 1 + \frac{h_{\text{w}12} A_{\text{w}12}\Delta tF_{\text{NT}}}{m_{\text{w}2} C_{\text{w}2}} + \frac{h_{\text{h}23} A_{\text{w}23} \Delta t F_{\text{NT}}}{m_{\text{w}2} C_{\text{w}2}} + \frac{b_{2}}{\Delta z_{\text{j}}} \frac{\Delta t F_{\text{NT}}}{m_{\text{w}2} C_{\text{w}2}}\]
(5.4-185)\[ \alpha_{3} = - \frac{h_{\text{w}23} A_{\text{w}23}\Delta t F_{\text{NT}}}{m_{\text{w}2} C_{\text{w}2}} + \frac{b_{3} \Delta t F_{\text{NT}}}{\Delta z_{\text{j}} m_{\text{w}2} C_{\text{w}2}}\]

and

(5.4-186)\[\begin{split} \alpha_{0} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}2} C_{\text{w}2}}\left\{ h_{\text{w}12} A_{\text{w}12} \left\lbrack T_{\text{w}1}\left( t + \Delta t \right) - T_{\text{w}2}\left( t \right) \right\rbrack \\ + h_{\text{w}23} A_{\text{w}23} \left\lbrack T_{\text{w}3}\left( t \right) - T_{\text{w}2}\left( t \right) \right\rbrack - \frac{b_{\text{o}}}{\Delta z_{\text{j}}} \right\}\end{split}\]
  1. Finned Shell, Inner Node

Eq. (5.4-109) becomes

(5.4-187)\[ \beta_{2} \Delta T_{\text{w}2} + \beta_{3} \Delta T_{\text{w}3} + \beta_{4} \Delta T_{\text{w}4} = \beta_{0}\]

where

(5.4-188)\[\begin{split} \beta_{0} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}3} C_{\text{w}3}}\left\{ h_{\text{w}34} A_{\text{w}34} \left\lbrack T_{\text{w}4}\left( t \right) - T_{\text{w}3}\left( t \right) \right\rbrack \\ + h_{\text{w}23} A_{\text{w}23} \left\lbrack T_{\text{w}2}\left( t \right) - T_{\text{w}3}\left( t \right) \right\rbrack - \frac{C_{\text{o}}}{\Delta z_{\text{j}}} \right\}\end{split}\]
(5.4-189)\[ \beta_{2} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}3} C_{\text{w}3}} \left( \frac{C_{2}}{\Delta z_{\text{j}}} - h_{\text{w}23} A_{\text{w}23} \right)\]
(5.4-190)\[ \beta_{3} = 1 + \frac{\Delta t F_{\text{NT}}}{m_{\text{w}3} C_{\text{w}3}} \left( h_{\text{w}34} A_{\text{w}34} + h_{\text{w}23} A_{\text{w}23} + \frac{C_{3}}{\Delta z_{\text{j}}} \right)\]
(5.4-191)\[ \beta_{4} = - \frac{\Delta t h_{\text{w}34} A_{\text{w}34} F_{\text{NT}}}{m_{\text{w}3} C_{\text{w}3}}\]
  1. Finned Shell, Outer Node

Eq. (5.4-110) becomes

(5.4-192)\[ \gamma_{3}\Delta T_{\text{w}3} + \gamma_{4}\Delta T_{\text{w}4} + \gamma_{5}\Delta T_{\text{w}5} = \gamma_{0}\]

where

(5.4-193)\[\begin{split} \gamma_{0} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}4} C_{\text{w}4}}\left\{ h_{\text{w}45} A_{\text{w}45} \left\lbrack T_{\text{w}5}\left( t \right) - T_{\text{w}4}\left( t \right) \right\rbrack \\ + h_{\text{m}34} A_{\text{w}34} \left\lbrack T_{\text{w}3}\left( t \right) - T_{\text{w}4}\left( t \right) \right\rbrack - \frac{d_{\text{o}}}{\Delta z_{\text{j}}} \right\}\end{split}\]
(5.4-194)\[ \gamma_{3} = - \frac{\Delta t F_{\text{NT}}}{m_{\text{w}4} C_{\text{w}4}} h_{\text{w}34} A_{\text{w}34}\]
(5.4-195)\[ \gamma_{4} = 1 + \frac{\Delta t F_{\text{NT}}}{m_{\text{w}4} C_{\text{w}4}} \left( \frac{d_{4}}{\Delta z_{\text{j}}} + h_{\text{w}34} A_{\text{w}34} + h_{\text{w}45} A_{\text{w}45} \right)\]

and

(5.4-196)\[ \gamma_{5} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}4} C_{\text{w}4}} \left( \frac{d_{5}}{\Delta z_{\text{j}}} - h_{\text{w}45} A_{\text{w}45} \right)\]
  1. Cavity Wall, Inner Node

Eq. (5.4-111) becomes

(5.4-197)\[ \xi_{4}\Delta T_{\text{w}4} + \xi_{5}\Delta T_{\text{w}5} = \xi_{0}\]

where

(5.4-198)\[\begin{split} \xi_{0} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}5} C_{\text{w}5}} \left\{ h_{\text{w}45} A_{\text{w}45} \left\lbrack T_{\text{w}4}\left( t \right) - T_{\text{w}5}\left( t \right) \right\rbrack \\ + h_{\text{w}56} A_{\text{w}56} \left\lbrack T_{\text{w}6}\left( t \right) - T_{\text{w}5}\left( t \right) \right\rbrack - \frac{e_{\text{o}}}{\Delta z_{\text{j}}} \right\}\end{split}\]
(5.4-199)\[ \xi_{4} = \frac{\Delta t F_{\text{NT}}}{m_{\text{w}5}C_{\text{w}5}}\left( \frac{e_{4}}{\Delta z_{\text{j}}} - h_{\text{w}45}A_{\text{w}45} \right)\]

and

(5.4-200)\[ \xi_{5} = 1 + \frac{\Delta t F_{\text{NT}}}{m_{\text{w}5} C_{\text{w}5}} \left( \frac{e_{5}}{\Delta z_{\text{j}}} + h_{\text{w}45} A_{\text{w}45} + h_{\text{w}56} A_{\text{w}56} \right)\]
  1. Cavity Wall, Outer Node

The sink temperature is assumed to be constant:

\(T_{\text{w}6}\) = constant

Solution of Finite Difference Equations

  1. Simultaneous Solution of Equations

  1. Down-Flowing Air, Transient Solution

The finned shell outer node and cavity wall inner node temperatures are solved for simultaneously, assuming the finned shell inner node temperature is constant. Solving Eq. (5.4-192) and Eq. (5.4-197) simultaneously gives

(5.4-201)\[ \Delta T_{\text{w}4} = \frac{\gamma_{\text{0}} \xi_{5} - \gamma_{5} \xi_{\text{0}}}{\gamma_{4} \xi_{5} - \gamma_{5} \xi_{4}}\]

Then Eq. (5.4-197) can be solved for \(\Delta T_{\text{w}5}\).

  1. Up-Flowing Air, Transient Solution

The guard vessel and finned shell inner node temperatures are solved for simultaneously, assuming the finned shell outer node temperature is constant. Solving Eq. (5.4-183) and Eq. (5.4-187) simultaneously gives

(5.4-202)\[ \Delta T_{\text{w}2} = \frac{\alpha_{3} \beta_{\text{0}} - \alpha_{\text{0}} \beta_{\text{3}}}{\alpha_{3} \beta_{2} - \alpha_{2} \beta_{3}}\]

Then Eq. Eq. (5.4-183) is solved for \(\Delta T_{\text{w}3}\).

  1. Solution Method

No steady-state solution for the RVACS/RACS has been coded; the initial steady-state results are obtained by running a null transient. First the air and wall temperatures are set to the air inlet temperature. Then the null transient is run to set the initial steady-state temperatures and flow rate. Finally the regular transient is run. During the null transient the core channel calculations are bypassed, the sodium flow rates are held constant, the inlet and outlet plenum temperatures are held constant, and temperatures and air flow rates are calculated for the rest of the sodium and the RVACS/RACS. The routines used in the null transient are the same as those used in the regular transient.

An iteration on air flow rate is used in the transient solution. An air flow rate is assumed, temperatures are calculated for this air flow rate, the air gravity head is calculated, and the air pressure loss is calculated. Then the gravity head is compared with the pressure loss; and if the two do not balance, another air flow rate is tried. The iteration on air flow rate continues until a balance is achieved. The temperature calculation starts at the inlet and works down the inlet side then back up the air up-flow side. The heat transfer coefficients and the heat transfer across the finned shell are calculated based on conditions at the beginning of the time step. The rest of the calculation is fully implicit in its time differencing.

5.4.7.3. Coupled RVACS Model

For the coupled model, the representation of the RVACS stops at the Reactor Vessel (RV) wall. At the end of each PRIMAR-4 time step, SAS4A/SASSYS-1 transfers the temperate of each axial node in the RV wall to an external code. The external code is expected to provide a sink temperature, \(T_{\text{snk}}\), and a heat transfer coefficient, \(h_{\text{snk}}\) for each node. \(T_{\text{snk}}\) and \(h_{\text{snk}}\) are assumed to remain constant during the subsequent PRIMAR-4 time step, after which it will be updated again.

Due to the uniqueness of the SAS4A/SASSYS-1 null transient, the coupled RVACS model has been developed such that it can:

  • Participate in the null transient, IRVOPT = -1,

  • Not participate in the null transient, IRVOPT = -1000,

  • Call the simple RVACS model during the null transient, IRVOPT < -1000.

If a user selects for the coupled RVACS model to participate in the null transient, the external code must be capable of handling the reset of the simulation elapsed time. The simulation elapsed time will reset when SAS4A/SASSYS-1 transitions from a null transient to the first transient calculation step.

Note

When IRVOPT < -1000, input for the simple RVACS model must be provided to support the null transient calculation.

The coupled RVACS model relies on ZMQ for data transfer between SAS4A/SASSYS-1 and the external code. ZMQ is a C++ asynchronous messaging library that allows for data transfer interfaces that are simple to create and flexible [5-9]. At the beginning of a SAS4A/SASSYS-1 calculation containing a coupled RVACS model, SAS will create a ZMQ_PAIR socket bound to a random (ephemeral) TCP port. If the binding is successful, the RVACS coupling service is established, and a message is written to the SAS4A/SASSYS-1 log file. If the binding fails, an error is reported in the SAS4A/SASSYS-1 output file.

To determine the RVACS service port, an external code must first connect to the SAS ‘’Harbor Master’’ on port 60439 using a ZMQ_REQ socket and send a lookup request to determine which port the RVACS service is bound to. This process typically occurs at the start of the null transient, or in the case of a restart, at the start of the first transient calculation. Once the port is identified, the external code must connect to that port using a ZMQ_PAIR socket for RVACS communications.

At the end of each PRIMAR-4 time step SAS4A/SASSYS-1 will send a multi-part ZMQ message containing the following:

Table 5.4.17 ZMQ Message Parts Sent to the External Code.

Variable

Description

Type

nMesh

The number of nodes representing the RV wall.

c_int

isNull

A flag indicating if SAS4A/SASSYS-1 is computing a null transient step, isNull = 1 or a regular transient, isNull = 0.

c_int

isSaved

A flag indicating if SAS4A/SASSYS-1 saved a restart after the previous time step.

c_int

t

The time at the start of the PRIMAR-4 time step (seconds).

c_double

dt

The size of the PRIMAR4 time step (seconds).

c_double

dz(nMesh)

An array of size nMesh containing the height of each RV wall node (m).

c_double

T1(nMesh)

An array of size nMesh containing the temperature of each RV wall node (K).

c_double

SAS4A/SASSYS-1 then reads in a data package containing:

Table 5.4.18 ZMQ Message Parts Received from the External Code.

Variable

Description

Type

nMesh

The number of nodes representing the RV wall.

c_int

T2(nMesh)

An array of size nMesh containing \(T_{\text{snk}}\) for each RV wall node (K).

c_double

H12(nMesh)

An array of size nMesh containing \(h_{\text{snk}}\) for each RV wall node (W/m^2-K).

c_double

SAS4A/SASSYS-1 will wait at the read stage until the external code has sent a response. If the external code provides data of the wrong shape, i.e. the values of nMesh are not consistent, or sends an incomplete response, SAS4A/SASSYS-1 will print an error message and exit.

An example Coupled RVACS routine is shown below. The example returns a constant heat sink temperature and heat transfer coefficient for each RV node until the time reaches 100 seconds.

#include <zmq.h> // See https://github.com/zeromq/libzmq
#include <iostream>
#include <string.h>
#include <assert.h>
#include <unistd.h>

struct Service{
	char tag[4];
	int  id;
};

int main (void)
{
	// Set up scalar variables
	int nMesh, isNull, rc, port;
	int saved;
	double time, dt;
	Service  serv, reply;
	char buff[25];
	
	printf ("Connecting to SAS…\n");
	void *context = zmq_ctx_new(); // Create a new context
	void *request = zmq_socket(context, ZMQ_REQ);  // Create a socket on that context
	zmq_connect(request, "tcp://localhost:60439"); // Connect the socket to TCP:60439

	// Ask SAS what port RVACS is communicating on
	std::strncpy(serv.tag,"RVAC",4);
	serv.id = 0;

	for(;;) {
		// Ask to connect to RVACS
		assert(zmq_send(request, &serv, sizeof(serv), 0) > 0); 
		printf("Sent\n");
		// Recieve the reply from the harbor
		assert(zmq_recv(request, &reply, sizeof(reply), 0) > 0); 
		printf("Recieved\n");
		if (strncmp(reply.tag,"PORT",4) == 0) {
			port = reply.id; // If a port was revieved set the port number
			break;
		} else if (strncmp(reply.tag,"WAIT",4) == 0) {
			usleep(1 * 1000);   
			// usleep takes sleep time in us (1 millionth of a second)
		} else {
			return -1;
		} 
	}

	zmq_close(request);
	assert(port > 0);
	snprintf(buff,25,"tcp://localhost:%d",port); 
	request = zmq_socket(context, ZMQ_PAIR); // Create a socket on that context
	zmq_connect(request, buff); // Connect the socket to the new port
	printf("Connected\n");

	// Receive the number of nodes on the RVACS wall
	assert(zmq_recv(request, &nMesh, sizeof(int), 0) > 0);
	assert(nMesh > 0);
	double Z[nMesh], T1[nMesh], T2[nMesh], h12[nMesh];
	// Receive the null transient information
	assert(zmq_recv(request, &isNull, sizeof(int), 0) > 0);
	// Receive the save flag
	assert(zmq_recv(request, &saved, sizeof(int), 0) > 0);
	// Receive the start time
	assert(zmq_recv(request, &time, sizeof(double), 0) > 0);
	// Receive the timestep
	assert(zmq_recv(request, &dt, sizeof(double), 0) > 0);
	// Receive the axial mesh
	assert(zmq_recv(request, &Z, sizeof(Z), 0) > 0);
	// Receive the RV temperature
	assert(zmq_recv(request, &T1, sizeof(T1), 0) > 0);
	// Set the Sink temperature and heat transfer coefficients to
	// constant values
	for ( int i = 0; i < nMesh; i++ ) {
		T2[i] = 560.0; 
		h12[i] = 166.953;
	}
	// Send back the number of incoming nodes
	assert(zmq_send(request, &nMesh, sizeof(int), ZMQ_SNDMORE) > 0);
	// Send back the sink temperature
	assert(zmq_send(request, &T2, sizeof(T2), ZMQ_SNDMORE) > 0);
	// Send back the sink heat transfer coefficient
	assert(zmq_send(request, &h12, sizeof(h12), 0) > 0);

	// Continue communicating with SAS until the SAS time reaches 100.
	while(time+dt<100.-1E-6) {
		assert(zmq_recv(request, &nMesh, sizeof(int), 0) > 0);
		assert(zmq_recv(request, &isNull, sizeof(int), 0) > 0);
		assert(zmq_recv(request, &saved, sizeof(int), 0) > 0);
		assert(zmq_recv(request, &time, sizeof(double), 0) > 0);
		assert(zmq_recv(request, &dt, sizeof(double), 0) > 0);
		assert(zmq_recv(request, &Z, sizeof(Z), 0) > 0);
		assert(zmq_recv(request, &T1, sizeof(T1), 0) > 0);

		assert(zmq_send(request, &nMesh, sizeof(int), ZMQ_SNDMORE) > 0);
		assert(zmq_send(request, &T2, sizeof(T2), ZMQ_SNDMORE) > 0);
		assert(zmq_send(request, &h12, sizeof(h12), 0) > 0);

		printf ("Time: %f\n",time+dt);
	};

	// Close the socket
	zmq_close(request);
	// Destroy the context
	zmq_ctx_destroy(context);
	printf ("Done!\n");
	return 0;
}

5.4.7.4. RVACS Input Description

Table 5.4.19 Input in INPMR4 (Block 3) for all RVACS Models

Variable

Description

NSCRVC

Number of sections in the RVACS model.

IRVOPT

RVACS model selection

IELRVC

Element number or -ICV, starting at the bottom and going up.

NANRVC

Number of nodes in this section.

IDBRV

Debug parameter for RVACS

Table 5.4.20 Input in INPMR4 (Block 3) for the detailed RVACS Model

Variable

Description

IDRVACSTin

Function block ID for RVACS air inlet temperature as a function of time if > 0. If = 0 TAIRVC, will be used.

IDRVACSKin

Function block ID for RVACS air inlet orifice coefficient as a function of time if > 0. If = 0, ORFIN will be used.
Table 5.4.21 Input in PMR4IN (Block 18) for all RVACS Models

Variable

Range

Description

XLRVC

>=0.0

Length of RVACS section.

SLRVC

>=0.0 <=1.0

Slope of RVACS section.

PERVAC

>0.0

Reactor vessel perimeter.

ZBRVC

-

The bottom elevation of RVACS.

Table 5.4.22 Input in PMR4IN (Block 18) for the simple RVACS Model

Variable

Range

Description

RVHTAB

!=0.0

Table of H vs T.

RVHTMP

!=0.0

Reactor vessel temperature for RVHTAB table.

TAIRVC

!=0.0

Air inlet temperature. Ignored if IDRVACSTin > 0.

Table 5.4.23 Input in PMR4IN (Block 18) for the detailed RVACS Model

Variable

Range

Description

PERGV

>0.0

Perimeter of the guard vessel for convective heat transfer.

PERGVO

>0.0

Perimeter of the guard vessel for radiative heat transfer.

PERFS

>0.0

Perimeter of the inner finned shell for convective heat transfer.

PERFSO

>0.0

Perimeter of the outer finned shell and outer wall for convective and radiative heat transfer.

AIRARV

>0.0

Flow area between the guard vessel and finned shell.

AIRAR2

>0.0

Flow area between the finned shell and the outer wall

EPSRV

>=0.0

Emissivity of the reactor vessel.

EPSGV

>=0.0

Emissivity of the inner guard vessel wall.

EPSGVO

>=0.0

Emissivity of the outer guard vessel wall.

EPSFSI

>=0.0

Emissivity of the inner finned shell wall.

EPSFS

>=0.0

Emissivity of the outer finned shell wall.

EPSOW

>=0.0

Emissivity of the outer wall.

GVMC

>0.0

Heat capacity of the guard vessel wall per unit length.

FSMCI

>0.0

Heat capacity of the finned shell inner node wall per unit length.

FSMCO

>0.0

Heat capacity of the finned shell outer node wall per unit length.

CRMCI

>0.0

Heat capacity of the outer wall inner node wall per unit length.

CRMCO

>0.0

Heat capacity of the outer wall outer node wall per unit length.

HGASRV

>=0.0

Heat transfer coefficient between the reactor vessel and guard vessel. Can include convective and conductive heat transfer.

HFSRV

>=0.0

Heat transfer coefficient between the inner and outer finned shell nodes.

RW5RV

>0.0

Thermal resistance of the outer wall inner node.

HCONRV

>=0.0

Heat transfer coefficient of the outer wall outer node.

TW6RV

>0.0

Temperature of the outer wall outer node.

TAIRVC

>0.0

Air inlet temperature.

XLAIRV

>0.0

Length of the inlet stack.

DHAIRV

>0.0

Hydraulic diameter of the inlet stack.

AARIRV

>0.0

Flow area of the inlet stack.

XLAORV

>0.0

Length of the outlet stack.

DHAORV

>0.0

Hydraulic diameter of the outlet stack.

AARORV

>0.0

Flow area of the outlet stack.

C1RV

>0.0

First heat transfer correlation coefficient for air in RVACS

C2RV

-

Second heat transfer correlation coefficient for air in RVACS

C3RV

>0.0

Third heat transfer correlation coefficient for air in RVACS

REYTRV

>=0.0

Reynolds number at which laminar flow transitions to turbulent flow. This input is overwritten according to Eq. (5.4-120)

SIGSTB

>=0.0

Stefan-Boltzmann constant.

AFRTRV

>=0.0

First turbulent friction factor parameter.

BFRTRV

-

Second turbulent friction factor parameter.

AFRLRV

>=0.0

Laminar friction factor parameter.

ORFIN

>=0.0

Inlet orifice coefficient. Ignored if IDRVACSKin > 0.

XLUNRV

>0.0

Length of upper reactor vessel node.

UNGVMC

>0.0

Heat capacity of the upper guard vessel node per unit length.

UNFSMC

>0.0

Heat capacity of the upper finned shell node per unit length.

AIRAUN

>0.0

Flow area of the upper node.

FINVNT

>=0.0

Inverse scaling factor for structure thermal inertia during null transient. Default: 10.0