.. _section-5.9:

Steady-State Initialization
---------------------------

The steady-state initialization for PRIMAR-4 is based on finding a
steady-state thermal hydraulic solution that is consistent with the
user-supplied input for parameters such as reactor power, flow, coolant
inlet temperature, and coolant outlet plenum pressure. The core
channels are initialized first, leading to the temperatures and
pressures in the inlet and outlet coolant plenums. Then the
initialization works outward through the primary heat-transport loops,
the *IHX's*, the intermediate heat-transport loops, and finally, the
steam generators.

The primary-loop temperature initialization consists mainly of setting
the temperatures of all elements and compressible volumes in the hot
side of the loop to the coolant outlet plenum temperature, and setting
the components in the cold side of the loop to the inlet plenum
temperature. Intermediate heat exchangers and bypass channels are
separate cases, since the temperatures change from one end to the other
end of these elements. If necessary, the liquid segment flows are
adjusted so that the liquid flow into each compressible volume balances
the flow out. After the primary-loop temperatures are set, the pressure
drops through all elements are calculated, and the pump heads are set to
the values necessary to achieve a pressure balance.
If a parallel flow path is detected, an adjustment to an element loss coefficient
may be made. These adjustments will be reported in the standard output file.
The magnitude of these adjustments can be limited using :sasinp:`ADJKTOL`, and the adjustments cannot result in a negative loss coefficient.
If :sasinp:`ADJKTOL` is set to a positive value and SAS determines an adjustment to :sasinp:`G2PRDR` that is larger than the
defined tolerance is required, SAS will report an error and the simulation will be terminated.
If SAS determines an adjustment to :sasinp:`G2PRDR` that results in a negative loss coefficient is required, SAS will report a warning and not make the adjustment.

After the main primary-loop initialization calculations, the *IHX*
primary and intermediate side flow rates are known, and the primary side
inlet and outlet temperatures are known. Then, an iteration procedure is
used to find intermediate side inlet and outlet temperatures that
provide a consistent steady-state solution. The detailed node-by-node
temperature distributions within the *IHX* are also calculated in this
process.

After the *IHX* temperature distributions have been calculated, the
temperatures in the intermediate loop between the *IHX* outlet and the
steam generator inlet are set to the *IHX* outlet temperature, and the
temperatures between the steam generator outlet and the *IHX* inlet are
set to the *IHX* inlet temperature. Pressure drops are calculated for
each element; and pressures at each point are calculated, starting from
a user-specified *IHX* inlet pressure. As in the primary loop, the
intermediate loop pump head is set to the value necessary to achieve a
pressure balance.

After the intermediate loop initialization, the steam generators are
initialized, using the known sodium side inlet and outlet temperatures
and flow rate.

The steady-state gas flow rates are all set to zero, and cover-gas
pressures are initially set to user-supplied values.

.. _section-5.9.1:

Core Channels, Inlet Plenum, and Outlet Plenum
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Since the core channel calculations are described in detail in :numref:`Chapter %s<section-3>`, they are only summarized here. The user supplies the steady-state
values for the coolant outlet plenum pressures, the coolant inlet
temperatures, the coolant flow for each channel, and the power for each
channel, as well as geometric and hydraulic information. The code then
calculates the coolant outlet temperature and an inlet pressure for
each channel, as well as temperature and pressure distributions within
the channels. In general, each channel will have a different inlet
pressure, so for each inlet plenum the channel with the highest inlet
pressure is picked as the reference, and the orifice coefficients at
the bottom of the first reflector zone in each other channel are
adjusted to give a common inlet pressure. This common inlet pressure
determines the coolant inlet plenum pressure.

For each outlet plenum, the average steady-state temperature is a mixed
mean of the outlet temperatures of all the core channels and all the
bypass channels emptying into the plenum. The core model provides
steady-state channel outlet temperatures, but the loop model is designed
to begin with known temperatures in the inlet and outlet plena of the
core channels and from these calculate temperatures throughout the
remainder of the plant, and so outlet temperatures for the bypass
channels are not available at the point at which the outlet plenum
temperatures need to be calculated. The code works around this as
follows. To a particular outlet plenum :math:`\text{ICV}` are attached :math:`N` channels
and :math:`M` bypass channels. The mixed-mean outlet temperature,
:math:`T_{\text{mm}}`, of the core channels is given by

.. math::
    :label: 5.9-1

	T_{\text{mm}} \left( \text{ICV} \right) = \frac{\sum_{\text{ic} = 1}^{N}{W_{\text{J} \left( \text{ic} \right)} }T_{\text{exp}} \left( J\left( ic \right)  \right) }{\sum_{\text{ic} = 1}^{N}W_{\text{J}\left( \text{ic} \right)} }

where :math:`T_{\text{exp}} \left( J \left( ic \right) \right)` is the steady-state outlet
temperature for core channel :math:`J \left( ic \right)` and :math:`w_{\text{J}} \left( ic \right)` is
the steady-state flow through channel :math:`J \left( ic \right)`. The model assumes
that the difference between :math:`T_{\text{mm}} \left( \text{ICV} \right)` and the average
inlet temperature of the :math:`N` core channels, :math:`T_{\text{in}} \left( \text{ICV} \right)`, is
proportional to the ratio of power to flow in the channels, or

.. math::
    :label: 5.9-2

	T_{\text{mm}} \left( \text{ICV} \right) - T_{\text{in}} \left( \text{ICV} \right) = K \frac{f_{\text{pr}}\left( \text{ICV} \right)}{f_{\text{fl}}\left( \text{ICV} \right)}~ ,

where :math:`K` is the constant of proportionality, :math:`f_{\text{pr}} \left( \text{ICV} \right)` is
the ratio of the power in the core channels attached to outlet plenum
:math:`\text{ICV}` to the power in all channels (core + bypass) attached to plenum
:math:`\text{ICV}`, and :math:`f_{\text{fl}} \left( \text{ICV} \right)` is the ratio of the flow in the core
channels attached to outlet plenum :math:`\text{ICV}` to the flow in all channels
(core plus bypass) attached to plenum :math:`\text{ICV}`. The model also assumes that
the difference between the average temperature of plenum :math:`\text{ICV}`,
:math:`T_{\text{out}} \left( \text{ICV} \right)`, and the average inlet temperature of the :math:`N`
core channels and the M bypass channels, :math:`T_{\text{in},\text{total}} \left( \text{ICV} \right)`,
is proportional to the ratio of power to flow and that the constant of
proportionally is the same as for the core channels alone, so that

.. math::
    :label: 5.9-3

	T_{\text{out}} \left( \text{ICV} \right) - T_{\text{in},\text{total}} \left( \text{ICV} \right) = K ~.

The average inlet temperatures are calculated as

.. math::
    :label: 5.9-4

	T_{\text{in}} \left( \text{ICV} \right) = \frac{\sum_{\text{ic} = 1}^{N}{W_{\text{J}\left( \text{ic} \right)} }C_{\text{pJ}\left( \text{ic} \right)} T_{\text{in},\text{channel}} \left( J\left( ic \right)  \right) }{\sum_{\text{ic} = 1}^{N}{W_{\text{J}\left( \text{ic} \right)} }C_{\text{pJ}\left( \text{ic} \right)} }

and

.. math::
    :label: 5.9-5

	T_{\text{in},\text{total}} \left( \text{ICV} \right) = \frac{\sum_{\text{ic} = 1}^{N}{W_{\text{J}\left( \text{ic} \right)} }C_{\text{pJ}\left( \text{ic} \right)} T_{\text{in},\text{channel}}\left( J\left( ic \right) \right) + \sum_{\text{jc} = 1}^{M}{W_{\text{K}\left( \text{jc} \right)} }C_{\text{pK}\left( \text{jc} \right)}
	T_{\text{in},\text{bypass}} \left( K\left( jc \right)  \right) }{\sum_{\text{ic} = 1}^{N}{W_{\text{J}\left( \text{ic} \right)} }C_{\text{pJ}\left( \text{ic} \right)} + \sum_{\text{jc} = 1}^{M}{W_{\text{K}\left( \text{jc} \right)} }C_{\text{pK}\left( \text{jc} \right)}}~ ,

where :math:`C_{\text{p}}` is the specific heat of the fluid at the entrance to
a channel. The inlet temperatures and the flows are input by the user,
and the specific heats are computed from the equation of state. The
fractions :math:`f_{\text{pr}}` and :math:`f_{\text{fl}}` are calculated from
user-input power and flow information, and :math:`T_{\text{mm}}` is computed
from :eq:`5.9-1`, so the only unknown quantities in :eq:`5.9-2` and
:eq:`5.9-3` are :math:`K` and :math:`T_{\text{out}}`. Eliminating :math:`K` between the two
equations gives

.. math::
    :label: 5.9-6

	T_{\text{out}} \left( \text{ICV} \right) - T_{\text{in},\text{total}} \left( \text{ICV} \right) = \frac{T_{\text{mm}} \left( \text{ICV} \right) - T_{\text{in}} \left( \text{ICV} \right)}{\frac{f_{\text{pr}}\left( \text{ICV} \right)}{f_{\text{fl}}\left( \text{ICV} \right)}}~ ,

or

.. math::
    :label: 5.9-7

	T_{\text{out}} \left( \text{ICV} \right) = T_{\text{mm}} \left( \text{ICV} \right) \frac{f_{\text{fl}} \left( \text{ICV} \right)}{f_{\text{pr}}\left( \text{ICV} \right)} + T_{\text{in},\text{total}} \left( \text{ICV} \right)  -  T_{\text{in}} \left( \text{ICV} \right) \frac{f_{\text{fl}} \left( \text{ICV} \right)}{f_{\text{pr}}\left( \text{ICV} \right)} ~.

.. _section-5.9.2:

Primary Heat Transport System
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

After the core channel initialization, and after the temperatures and
pressures have been set for the inlet and outlet plenums, the rest of
the primary heat-transport loop is initialized. This involves setting
temperatures for all compressible volumes and liquid elements, liquid
pressures and liquid-cover gas interface heights for compressible
volumes, and flow rates for all liquid segments. Flow rates for gas
segments are initialized to zero, and the user specifies the initial
cover-gas pressure for each compressible volume.

A two-pass procedure is used for initializing the primary heat-transport
system other than core channels, the inlet plenums, and the outlet
plenums. In the first pass, the temperatures are set for all
compressible volumes and elements, and the gravity head and pressure
drop for each element other than a pump is set. Also the liquid segment
flows are adjusted, if necessary, to make the flow into each
compressible volume equal the flow out. In the second pass, the
compressible volume pressures and pump heads are set.

For each pass through the primary heat-transport system, a table is
constructed containing the compressible volume numbers of the
compressible volumes whose temperatures or liquid pressures are already
known. The inlet and outlet plenums are the first entries in this table.
Compressible volumes are treated one at a time in the order in which
they occur in the table, and new entries are added to the table as
temperatures or pressures of new compressible volumes are found.

For the temperatures pass, the first step in the treatment of a
compressible volume is to adjust the flows in the liquid segments
attached to the compressible volume so that the flow in matches the flow
out. The user supplies the steady-state flow rates for each liquid
segment, but if the user-supplied values are not consistent then the
code adjusts some of them to obtain consistency. If the pressure drops
in a liquid segment have already been set, then a flag is set for that
segment; and its flow can no longer be changed, since changing flows
would require re-calculating the pressure drops. Therefore, any flow
adjustment is made for liquid segments whose flows have not been fixed.
A fixed net flow, :math:`w_{\text{fixed}}`, is calculated by summing the flows
of all fixed segments attached to the compressible volume, with a
positive sign if the flow is into the compressible volume, or a
negative sign if the flow is out of the compressible volume. Similarly,
an adjustable net flow, :math:`w_{\text{adj}}`, is calculated by summing over
the remainder of the liquid segments attached to the compressible
volume. Then a factor, :math:`f_{\text{w}}`, is calculated as

.. math::
    :label: 5.9-8

	f_{\text{w}} =  - \frac{w_{\text{fixed}}}{w_{\text{adj}}}

and the flow for each unfixed liquid segment attached to the
compressible volume is multiplied by :math:`f_{\text{w}}`.

The next step in the treatment of a compressible volume consists of
following each liquid segment attached to the compressible volume and
setting the temperatures for all of the elements until either the other
end of the liquid segment is reached or a stop is made at an IHX or at
the element representing the core channels. Initially, the compressible
volume temperature is used for setting the temperatures of the elements
in a segment; but if a bypass channel is encountered, then the bypass
channel initialization routine is called, and the bypass outlet
temperature is used for setting the temperatures of any additional
elements in the segment. The steady-state gravity head and pressure drop
for an element are set as soon as the temperature is set. The liquid
segment containing the core channels is ignored, since the core channels
have already been initialized. The initialization procedure used for an
IHX requires knowing both the primary side inlet temperature and the
primary side outlet temperature; so if an IHX is encountered before the
temperatures of the compressible volumes at both ends of the liquid
segment are known, then the remainder of this segment is skipped until
later, when it will be approached from the other end.

If a liquid segment is followed to the end without encountering the core
channels or an IHX, then the compressible volume at the other end of the
segment is checked. If its temperature has not already been set, then
it is now set to the current temperature, and the new compressible
volume is added to the compressible volume table. In this manner, all of
the elements, liquid segments, and compressible volumes in the primary
loop will eventually be initialized if they are all inter-connected,
and if two IHX's are not connected in series. If two or more IHX's are
connected in series, then the user must specify the steady-state
temperature drops across all but one of them. Similarly, if two or more
pumps are connected in series, then the user must specify the
steady-state pump heads for all but one of them.

For the second pass through the primary heat-transport system, the
compressible volume table is started over, with the inlet and outlet
plenums again providing the first entries in the table. Now the table
contains only compressible volumes whose pressures are known. In this
pass, each liquid segment attached to a compressible volume is again
treated. The pressure drops and gravity heads for all of the elements,
other than pumps, in a liquid segment are summed. If the liquid segment
contains a pump, and if the pressure has already been determined for
the compressible volumes at both ends of the liquid segment, then the
pump head is set to the value needed to balance the pressures. If the
segment contains a pump, and if the pressure in one of the compressible
volumes at the end of the liquid segment has not been set yet, then this
liquid segment is skipped until later, when the compressible volume
pressure has been set. If there are no pumps in the liquid segment, and
if the pressure in the compressible volume at one end of the liquid
segments has not yet been set, then the pressure in this compressible
volume is set, based on the pressure in the compressible volume at the
other end of the liquid segment and the sum of the pressure drops and
gravity heads through the segment. This compressible volume is then
added to the table. If there is no pump in the liquid segment, and if
the pressures in the compressible volumes have already been set, then
the orifice-type pressure-drop coefficient for the first element in the
liquid segment is adjusted to give the proper pressure balance.

During the first pass, after the primary side inlet and outlet
temperatures and the primary side flow rate have been determined, an
IHX initialization routine is called to initialize the primary and
intermediate side IHX temperatures and gravity heads. This routine is
described in :numref:`section-5.9.4.3`.

.. _section-5.9.3:

Intermediate Heat Transport System
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The steady-state initialization of the intermediate heat-transport
system is similar to that of the primary heat-transport system, except
that the intermediate loop treatment starts from the IHX and works
out. The IHX intermediate side inlet and outlet temperatures have been
determined by the IHX initialization routines. Also, since the IHX flow
rates were used in the IHX routines, the flow rate through the segment
containing the intermediate side of the IHX is fixed at the
user-supplied value for this segment. The pressure calculations start
from a user-supplied IHX inlet pressure.

Three passes through the intermediate loop compressible volumes are
made. In the first pass, the liquid segment flows are adjusted so that
the flow into each compressible volume equals the flow out. This is
exactly the same method used for the primary loop, with sums over fixed
and adjustable flows and modifications of the adjustable flows. In the
second pass, temperatures, gravity heads, and pressure drops are set
for each element except for pumps. In the third pass, pump heads and
compressible volume pressures are set. The second and third passes use
the same type of compressible volume tables used for the primary loop.
These passes use the same kind of calculations as the corresponding
primary loop passes, except that the calculations start in the middle of
a segment at the IHX, and the first compressible volumes added to the
table are those at the ends of the IHX segment.

One difference between the primary and intermediate loop initialization
procedures is that, in the intermediate loop, it is necessary to
consider the possibility of two steam generators connected in series,
which is a situation that occurs when an evaporator-superheater
combination is used. For such a case, the user specifies the fraction of
the total sodium-side steady-state temperature drop that occurs across
the evaporator.

.. _section-5.9.4:

Individual Components
~~~~~~~~~~~~~~~~~~~~~

For each element, other than the core channels, of each liquid segment
in the primary and intermediate heat-transport systems, a steady-state
initialization routine is called. These routines compute pressure
drops, except for pumps, and gravity heads. Temperature distributions
within the component are also calculated for IHXs and bypass channels.
Also, routines are called to initialize the temperatures, liquid
pressures, gas pressures, and liquid-gas interface elevations of
compressible volumes. These routines for individual components are
described below.

.. _section-5.9.4.1:

Pressure Drop, Subroutine PRESDR
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For all elements other than core channels and pumps, subroutine PRESDR
is called to compute the pressure drop due to friction, bends, orifices,
and density change. The pressure drop for element *k* in segment *i* is
calculated as

.. math::
    :label: 5.9-9

	\Delta p_{\text{e}1}\left( k \right) = w\left( i \right) \left\{ \frac{f \left| w \left( i \right)  \right|}{2\overline{\rho} A_{\text{K}}^{2}} \left\lbrack \frac{L_{\text{k}}}{D_{\text{h}}\left( k \right)} + \ N_{\text{b}}\left( k \right) \left( \frac{L}{D} \right)_{\text{b}} \right\rbrack \right. \\ \left.
    + \frac{w\left( i \right)}{A_k^2} \left\lbrack \frac{1}{\rho_{\text{out}}\left( k \right)} - \frac{1}{\rho_{\text{in}}\left( k \right)} \right\rbrack + \frac{\left| \ w\left( i \right)  \right|}{2\overline{\rho} A_{\text{k}}^{2}} G_{2\text{pr}}\left( k \right)  \right\}

The first term is the friction, as enhanced by bends. :math:`N_{\text{b}}` is
the number of bends in the element, and :math:`\left( L/D \right)_{\text{b}}` is the
effective length/hydraulic diameter per bend. The second term is an
acceleration term due to density changes. In this term, :math:`{\rho}_{\text{in}}`
and :math:`{\rho}_{\text{out}}` are the sodium densities at the inlet and outlet of
the element. The last term represents orifice-type pressure drops
proportional to the square of the flow rate, and :math:`G_{2\text{pr}}` is
the dimensionless loss coefficient for this term. The average
density is the average of :math:`{\rho}_{\text{in}}` and :math:`{\rho}_{\text{out}}`.

The Moody correlation [5-2] is used for the friction factor for Reynolds
numbers, :math:`\text{Re}`, above 1082, whereas a laminar friction factor is used for
lower Reynolds numbers:

.. math::
    :label: 5.9-10

	f = \begin{cases}
    0.0055 \left\lbrack 1 + \left( 20000 \frac{\varepsilon\left( k \right)}{D_{\text{n}}\left( k \right)} + \frac{10^{6}}{\text{Re}} \right)^{\frac{1}{3}} \right\rbrack & \text{if  Re} \geq 1082 \\
    \frac{64}{\text{Re}} & \text{if  Re } < 1082
    \end{cases}

where :math:`\varepsilon \left( k \right)` is the surface roughness. The value of 1082 was picked
for the transition between laminar and turbulent friction factors
because at this value both correlations give the same result if
:math:`\varepsilon/{D}_{\text{h}}` is small.

.. _section-5.9.4.2:

Pipe
^^^^

For a pipe, the pressure drop is computed as indicated in :numref:`section-5.9.4.1` above. The gravity head is calculated as

.. math::
    :label: 5.9-11

	\Delta p_{\text{gr}}\left( k \right) = \rho_{\text{k}}\left\lbrack z_{0}\left( k \right) - z_{\text{i}}\left( k \right)  \right\rbrack g

where :math:`k` is the element number, :math:`\rho_{\text{k}}` is the sodium density,
:math:`z_{\text{i}}` and :math:`z_{0}` are the inlet and outlet elevations, and
:math:`g` is the acceleration of gravity.

.. _section-5.9.4.3:

IHX
^^^

The steady-state initialization of an IHX depends on whether the
detailed IHX model or the simple table loop-up model is used. In either
case, the pressure drop is calculated in subroutine PRESDR, as
described in :numref:`section-5.9.4.1`. The temperature calculations for the
detailed model are described in :numref:`section-5.4.2.5`. For the simple table
look-up model, the gravity head in both the steady-state and the
transient is calculated using  :eq:`eq-5.4-83`.

.. _section-5.9.4.4:

Bypass Channel
^^^^^^^^^^^^^^

The steady-state temperature solution for the bypass channel is
described in :numref:`section-5.4.3`. The pressure drop is calculated in
subroutine PRESDR, as described in :numref:`section-5.9.4.1`.

.. _section-5.9.4.5:

Steam Generator
^^^^^^^^^^^^^^^

The table look-up steam generator model is treated the same as the table
look-up IHX model. Subroutine PRESDR, as described in :numref:`section-5.9.4.1`,
calculates the pressure drop, and the gravity head is calculated using
:eq:`eq-5.4-83`. The detailed steam generator model is described in :numref:`Chapter %s<section-7>`.

.. _section-5.9.4.6:

Compressible Volumes
^^^^^^^^^^^^^^^^^^^^

If compressible volume i contains liquid, then the steady-state liquid
pressure, :math:`p_{\text{l}} \left( i \right)`, and temperature,
:math:`T_{\text{l}} \left( i \right)`, are determined by the
procedure described in :numref:`section-5.9.2` or :numref:`section-5.9.3`. Then the initial
liquid volume, :math:`V_{\text{l}} \left( i \right)`, is

.. math::
    :label: 5.9-12a-b

	V_{\text{l}} = \begin{cases}
    V_{\text{tot}} \left( i \right) & \text{if there is no gas} \\
    V_{\text{tot}} \left( i \right) - V_{\text{go}} \left( i \right) & \text{if there is gas}
    \end{cases}

where :math:`V_{\text{tot}} \left( i \right)` is the total volume, and
:math:`V_{\text{go}} \left( i \right)` is the initial gas volume. The values of
:math:`V_{\text{tot}} \left( i \right)` and :math:`V_{\text{go}} \left( i \right)` are specified by the
user, whereas :math:`V_{\text{l}} \left( i \right)` is computed by
the code. The liquid mass, :math:`m_{\text{l}} \left( i \right)`, is
then computed as

.. math::
    :label: 5.9-13

	m_{\text{l}}\left( i \right) = \rho_{\text{l}} \left( i \right) V_{\text{l}} \left( i \right)

where :math:`\rho_{\text{l}}` is the liquid density. The wall
temperature is set equal to the liquid temperature.

If there is only liquid in the compressible volume, then the reference
pressure, :math:`p_{\text{r}} \left( i \right)`, is set equal to the steady-state
pressure :math:`p_{\text{l}} \left( i \right)`; and the reference
temperature, :math:`T_{\text{r}} \left( i \right)`, is set equal to the steady-state
liquid temperature, :math:`T_{\text{l}} \left( i \right)`.

The liquid pressure within a compressible volume varies with elevation
due to the gravity head. The pressure
:math:`p_{\text{l}} \left( i \right)` is defined at the reference
elevation :math:`z_{\text{l}} \left( i \right)`, so the pressure at
any elevation :math:`z`, within the liquid is given by

.. math::
    :label: 5.9-14

	p\left( z \right) = p_{\text{l}} \left( i \right) + \left( z_{\text{l}}\left( i \right) - z \right) \rho_{\text{l}}g

where :math:`g` is the acceleration of gravity. The steady-state liquid-gas
interface elevation, :math:`z_{\text{i}} \left( i \right)`, is the elevation at which the
user-supplied gas pressure, :math:`p_{\text{g}} \left( i \right)`, is equal to the liquid
pressure:

.. math::
    :label: 5.9-15

	z_{\text{i}} \left( i \right) = z_{\text{l}} \left( i \right) + \frac{ p_{\text{l}} \left( i \right) - p_{\text{g}}\left( i \right)}{\rho_{\text{l}} \left( i \right) g}

Also, for use in the transient calculations, a minimum elevation,
:math:`z_{\text{m}} \left( i \right)`, is defined as

.. math::
    :label: 5.9-16

	z_{\text{m}} \left( i \right) = z_{\text{i}} \left( i \right) - \frac{ V_{\text{l}} \left( i \right)}{A_{\text{i}} \left( i \right)}

where :math:`A_{\text{i}} \left( i \right)` is the liquid-gas interface area. The minimum
elevation, :math:`z_{\text{m}} \left( i \right)`, is the "bottom" of the compressible
volume; if the liquid-gas interface elevation drops to :math:`z_{\text{m}}`,
then there will be no liquid left in the compressible volume.

If the compressible volume contains only gas, then the gas volume,
:math:`V_{\text{g}} \left( i \right)`, is equal to the total volume,
:math:`V_{\text{tot}} \left( i \right)`. The initial gas and wall temperatures are set to
a user-supplied value.

In any compressible volume containing gas, the initial gas mass is
calculated as

.. math::
    :label: 5.9-17

	m_{\text{g}} \left( i \right) = \frac{p_{\text{g}}\left( i \right) V_{\text{g}} \left( i \right)}{R_{\text{g}} T_{\text{g}} \left( i \right)}

where :math:`R_{\text{g}}` is the gas constant.

.. _section-5.9.4.7:

Pumps
^^^^^

The steady-state pump head, flow, and temperature for each pump are
determined by the procedure in :numref:`section-5.9.2` or :numref:`section-5.9.3`. Then,
the gravity head is calculated using :eq:`5.9-11`. If a centrifugal pump
option is used then the pump speed required to obtain the required
steady-state pump head with the specified flow is obtained by iteration,
as described in :numref:`section-5.9.4.2`.

An electromagnetic pump is treated as a loss-less pump in series with a
pipe. The pump head is calculated as

.. math::
    :label: 5.9-18

	\Delta p_{\text{p}} \left( t \right)  = H_{\text{so}} F_{\text{p}} \left( t \right) \left\lbrack 1 - \frac{w}{\rho AV_{\text{s}}} \right\rbrack - \Delta p_{\text{pipe}}

where :math:`H_{\text{so}}` is the steady-state stall head,
:math:`F_{\text{p}} \left( t \right)` is a user-supplied function for the time dependence
of the stall head, :math:`V_{\text{s}}` is the synchronous velocity of the
magnetic field, and :math:`\Delta p_{\text{pipe}}` is the pipe-type pressure drop,
given by :eq:`5.9-9`. For the steady-state solution :math:`F_{\text{p}} \left( t \right)`
is 1.0. After the steady-state pump head and flow are known, the
steady-state stall head is obtained from :eq:`5.9-12a-b` as

.. math::
    :label: 5.9-19

	H_{\text{so}} = \frac{\Delta p_{\text{p}}\left( t = 0 \right) + \Delta p_{\text{pipe}}}{1 - \frac{w}{\rho AV_{\text{s}}}}

.. _section-5.9.5:

Null Transient for Steady-State Initialization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In order to eliminate a spurious reactivity insertion at the start of
|SAS| transient calculations due to the neglect of
component-to-component heat transfer, RVACS heat removal, and direct element heating in the
PRIMAR-4 steady-state initialization, a new capability to bring the
PRIMAR-4 temperatures into equilibrium before the start of the transient
calculations has been added to the code. This new capability requires
small modifications to the code and uses a relatively small amount of
computer time to provide significantly better initial conditions at the
start of the transient calculations.

The current PRIMAR-4 steady-state initialization does not account for
component-component heat transfer and RVACS heat removal, although these
effects are accounted for during the transient calculations. In the
current LMR designs, component-component heat transfer and RVACS heat
removal have a significant impact on vessel wall temperatures; and
changes in vessel wall temperatures can lead to large reactivity
changes. Therefore, at the start of a transient calculation the vessel
wall temperatures will change as they approach a new state in
equilibrium with component-to-component heat transfer and RVACS heat
removal; and these temperature changes will add a significant amount of
spurious reactivity.

Re-writing the PRIMAR-4 steady-state initialization routines to provide
a direct equilibrium temperature solution including arbitrary
component-to-component heat transfer would require re-formulating the
whole steady-state initialization algorithm and would require completely
re-writing many of the routines. Also, a direct equilibrium solution
could require a large amount of computer time. Therefore, a simpler
approach was taken. The current PRIMAR-4 steady-state initialization
routines are used to provide coolant flow rates and a starting point for
the temperatures. Then a null transient is run to set the temperatures
before the start of the regular transient. During the null transient the
transient heat transfer routines are used, including component-component heat
transfer, RVACS heat removal, and direct element heating.

*Null Transient*

During the null transient, only the PRIMAR-4 transient heat transfer
routines are called, and everything except the PRIMAR-4 temperatures (excepting the inlet plenum temperature) is
held constant.
Because changing temperatures in :ref:`equivalent circuit pumps<Equivalent Circuit EM pump>` with temperature-dependent circuit parameters will impact their steady-state initialization, the related pump initialization routines may also called.
A user-specified time step size is used for the null transient. The user
also specifies the number of steps to be used in the null transient and
specifies a convergence criterion. The null transient is run until
either the specified number of steps have been run or until the maximum
fractional change from step to step in component-to-component heat
transfer or RVACS heat removal is less than the specified convergence
criterion. After the completion of the null transient, the reactivity
components are set to zero before the start of the regular transient
calculation.

During the null transient, the heat removal from steam generators and
table look-up IHXs is reduced by an amount equal to the RVACS heat
removal and increased by an amount equal to the direct element heat generation so that the total heat removal rate matches the total power
generation rate.

There are a number of advantages to this null transient capability. It
allows the temperatures to converge toward the correct equilibrium
values, and it eliminates spurious reactivity insertion during the
regular transient due to non-equilibrium initial temperatures for the
vessel wall. Also, the null transient does not require much computing
time. Each time step is fast because all core channel calculations and
PRIMAR-4 flow and pressure calculations are bypassed. The time steps
can be large, without any stability limitations due to flow rate
calculations, although some heat transfer time step stability limits
still apply.

The null transient approach has some limitations. One limitation is that
temperature changes during the null transient change gravity heads. The
PRIMAR-4 steady-state initialization adjusts pump heads and orifice
coefficients so that the pressures and flows are in equilibrium at the
start of the null transient. Currently, no additional adjustments are
made at the end of the null transient; so at the beginning of the
regular transient the liquid pressures and flows might not be exactly in
equilibrium. At nominal flow rates, the gravity heads are a small part
of the over-all pressure balances; so moderate temperature changes
during the null transient will usually have only a very small impact on
the pressure balances at the start of the regular transient. A second
limitation is that it can take a long time for the null transient to
converge to an equilibrium situation if there are long thermal time
constants in the system. This limitation can usually be gotten around by
using fictitiously low heat capacities for some components during the
null transient and then changing the heat capacities to their proper
values on a restart before the start of the regular transient.

*Time Step Limitations*

Most of the temperature calculations in PRIMAR-4 are semi-implicit or
fully implicit, and there are no time step stability limits imposed by
most of these calculations, but in the component-to-component heat
transfer calculations there is at least one place where explicit
forward differencing limits the time step size. For
component-to-component heat transfer from a source with temperature
:math:`T_{\text{s}}` to a compressible volume liquid, the equation solved is of
the form

.. math::
    :label: 5.9-20

	M_{\text{l}} C_{\text{l}} \frac{\text{dT}_{\text{l}}}{\text{dt}} = hA \left( T_{\text{s}} - T_{\text{l}} \right)  + \text{ other terms}

where :math:`M_{\text{l}}`, :math:`C_{\text{l}}`, and :math:`T_{\text{l}}` are the mass,
specific heat, and temperature of the liquid, and :math:`hA` is the heat
transfer coefficient times area for the component-to-component heat
transfer. The evaluation of the :math:`hA \left( T_{\text{s}} - T_{\text{l}} \right)`
term is partly explicit, so for stability the maximum time step that can
be used is of the order of , where

.. math::
    :label: 5.9-21

	\tau = \frac{M_{\text{l}}C_{\text{l}}}{hA}

For typical cases, this maximum time step is quite large (tens or
hundreds or thousands of seconds), but in some cases it can be small
enough to be a significant limitation.