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 ADJKTOL
, and the adjustments cannot result in a negative loss coefficient.
If ADJKTOL
is set to a positive value and SAS determines an adjustment to 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 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.
5.9.1. Core Channels, Inlet Plenum, and Outlet Plenum
Since the core channel calculations are described in detail in Chapter 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 \(\text{ICV}\) are attached \(N\) channels and \(M\) bypass channels. The mixed-mean outlet temperature, \(T_{\text{mm}}\), of the core channels is given by
where \(T_{\text{exp}} \left( J \left( ic \right) \right)\) is the steady-state outlet temperature for core channel \(J \left( ic \right)\) and \(w_{\text{J}} \left( ic \right)\) is the steady-state flow through channel \(J \left( ic \right)\). The model assumes that the difference between \(T_{\text{mm}} \left( \text{ICV} \right)\) and the average inlet temperature of the \(N\) core channels, \(T_{\text{in}} \left( \text{ICV} \right)\), is proportional to the ratio of power to flow in the channels, or
where \(K\) is the constant of proportionality, \(f_{\text{pr}} \left( \text{ICV} \right)\) is the ratio of the power in the core channels attached to outlet plenum \(\text{ICV}\) to the power in all channels (core + bypass) attached to plenum \(\text{ICV}\), and \(f_{\text{fl}} \left( \text{ICV} \right)\) is the ratio of the flow in the core channels attached to outlet plenum \(\text{ICV}\) to the flow in all channels (core plus bypass) attached to plenum \(\text{ICV}\). The model also assumes that the difference between the average temperature of plenum \(\text{ICV}\), \(T_{\text{out}} \left( \text{ICV} \right)\), and the average inlet temperature of the \(N\) core channels and the M bypass channels, \(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
The average inlet temperatures are calculated as
and
where \(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 \(f_{\text{pr}}\) and \(f_{\text{fl}}\) are calculated from user-input power and flow information, and \(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 \(K\) and \(T_{\text{out}}\). Eliminating \(K\) between the two equations gives
or
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, \(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, \(w_{\text{adj}}\), is calculated by summing over the remainder of the liquid segments attached to the compressible volume. Then a factor, \(f_{\text{w}}\), is calculated as
and the flow for each unfixed liquid segment attached to the compressible volume is multiplied by \(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 Section 5.9.4.3.
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.
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.
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
The first term is the friction, as enhanced by bends. \(N_{\text{b}}\) is the number of bends in the element, and \(\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, \({\rho}_{\text{in}}\) and \({\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 \(G_{2\text{pr}}\) is the dimensionless loss coefficient for this term. The average density is the average of \({\rho}_{\text{in}}\) and \({\rho}_{\text{out}}\).
The Moody correlation [5-2] is used for the friction factor for Reynolds numbers, \(\text{Re}\), above 1082, whereas a laminar friction factor is used for lower Reynolds numbers:
where \(\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 \(\varepsilon/{D}_{\text{h}}\) is small.
5.9.4.2. Pipe
For a pipe, the pressure drop is computed as indicated in Section 5.9.4.1 above. The gravity head is calculated as
where \(k\) is the element number, \(\rho_{\text{k}}\) is the sodium density, \(z_{\text{i}}\) and \(z_{0}\) are the inlet and outlet elevations, and \(g\) is the acceleration of gravity.
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 Section 5.9.4.1. The temperature calculations for the detailed model are described in 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. (5.4-104).
5.9.4.4. Bypass Channel
The steady-state temperature solution for the bypass channel is described in Section 5.4.3. The pressure drop is calculated in subroutine PRESDR, as described in Section 5.9.4.1.
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 Section 5.9.4.1, calculates the pressure drop, and the gravity head is calculated using Eq. (5.4-104). The detailed steam generator model is described in Chapter 7.
5.9.4.6. Compressible Volumes
If compressible volume i contains liquid, then the steady-state liquid pressure, \(p_{\text{l}} \left( i \right)\), and temperature, \(T_{\text{l}} \left( i \right)\), are determined by the procedure described in Section 5.9.2 or Section 5.9.3. Then the initial liquid volume, \(V_{\text{l}} \left( i \right)\), is
where \(V_{\text{tot}} \left( i \right)\) is the total volume, and \(V_{\text{go}} \left( i \right)\) is the initial gas volume. The values of \(V_{\text{tot}} \left( i \right)\) and \(V_{\text{go}} \left( i \right)\) are specified by the user, whereas \(V_{\text{l}} \left( i \right)\) is computed by the code. The liquid mass, \(m_{\text{l}} \left( i \right)\), is then computed as
where \(\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, \(p_{\text{r}} \left( i \right)\), is set equal to the steady-state pressure \(p_{\text{l}} \left( i \right)\); and the reference temperature, \(T_{\text{r}} \left( i \right)\), is set equal to the steady-state liquid temperature, \(T_{\text{l}} \left( i \right)\).
The liquid pressure within a compressible volume varies with elevation due to the gravity head. The pressure \(p_{\text{l}} \left( i \right)\) is defined at the reference elevation \(z_{\text{l}} \left( i \right)\), so the pressure at any elevation \(z\), within the liquid is given by
where \(g\) is the acceleration of gravity. The steady-state liquid-gas interface elevation, \(z_{\text{i}} \left( i \right)\), is the elevation at which the user-supplied gas pressure, \(p_{\text{g}} \left( i \right)\), is equal to the liquid pressure:
Also, for use in the transient calculations, a minimum elevation, \(z_{\text{m}} \left( i \right)\), is defined as
where \(A_{\text{i}} \left( i \right)\) is the liquid-gas interface area. The minimum elevation, \(z_{\text{m}} \left( i \right)\), is the “bottom” of the compressible volume; if the liquid-gas interface elevation drops to \(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, \(V_{\text{g}} \left( i \right)\), is equal to the total volume, \(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
where \(R_{\text{g}}\) is the gas constant.
5.9.4.7. Pumps
The steady-state pump head, flow, and temperature for each pump are determined by the procedure in Section 5.9.2 or 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 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
where \(H_{\text{so}}\) is the steady-state stall head, \(F_{\text{p}} \left( t \right)\) is a user-supplied function for the time dependence of the stall head, \(V_{\text{s}}\) is the synchronous velocity of the magnetic field, and \(\Delta p_{\text{pipe}}\) is the pipe-type pressure drop, given by Eq. (5.9-9). For the steady-state solution \(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-12) as
5.9.5. Null Transient for Steady-State Initialization
In order to eliminate a spurious reactivity insertion at the start of SAS4A/SASSYS‑1 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 equivalent circuit pumps 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 \(T_{\text{s}}\) to a compressible volume liquid, the equation solved is of the form
where \(M_{\text{l}}\), \(C_{\text{l}}\), and \(T_{\text{l}}\) are the mass, specific heat, and temperature of the liquid, and \(hA\) is the heat transfer coefficient times area for the component-to-component heat transfer. The evaluation of the \(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
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.