Thresholds

Reactor Safety Thermohydraulic Thresholds

Ensuring the reactor’s safety is top priority. Thus, certain situations are to be avoided during normal operation and accidents. In the case of thermohydraulics, several conditions are telltale signs of incoming doom. Within this module different TH thresholds are contained, allowing for post-run analysis of their appearance:

Condition / Threshold

Implemented Correlations

ONB - Onset of Nucleate Boiling

Bergles Rosenhow[2]

OFI - Onset of Flow Instability

Whittle Forgan[3]

OSV - Onset of Significant Void

Saha Zuber[1], Saha Zuber (Deprecated)[1],

CHF - Critical Heat Flux

Sudo Kaminaga[7], Mirshak[4], Fabrega[5],

BP - Boiling Power

Boiling Power[8]

References

Fabrega_CHF(Tin, T_sat, Dh)[source]

The limit for CHF as measured and calculated by Fabrega[5] for slow flows (v < 0.5 m/s)

\[10^7 D_\text{h}(0.023(T_\text{sat} - T_\text{bulk in}) + 4.56)\]
Parameters:
  • Tin (Celsius) – Bulk coolant temperature at inlet

  • T_sat (Celsius) – Saturation temperature

  • Dh (Meter) – Channel hydraulic diameter

Returns:

q’’ – Heat flux where Critical Heat Flux (CHF) begins

Return type:

WPerM2

Mirshak_CHF(T_bulk, T_sat, pressure, v)[source]

The limit for CHF as measured and calculated by Mirshak[4] for rapid flows (v > 1.5 m/s)

\[1.51\cdot 10^6 (1 + 0.1198v)(1 + 0.00914 (T_\text{sat} - T_\text{bulk}))(1+1.9\cdot 10^{-6} p)\]
Parameters:
  • T_bulk (Celsius) – Bulk coolant temperature

  • T_sat (Celsius) – Saturation temperature

  • pressure (Pa) – pressure in channel

  • v (MPerS) – Coolant flow velocity.

Returns:

q’’ – Heat flux where Critical Heat Flux (CHF) begins

Return type:

WPerM2

Saha_Zuber_OSV(T_bulk, coolant, u, Dh)[source]

Calculates the minimal q’’ heat flux at which OSV occurs, according to Saha & Zuber (1974)[1]:

for \(\text{Pe} < 70,000\):

\[T_\text{sat} - T_\text{bulk} = 0.0022\frac{q''_\text{OSV}D_h}{k_\text{bulk}}\]

for \(\text{Pe} > 70,000\):

\[T_\text{sat} - T_\text{bulk} = 153.8 \frac{q''_\text{OSV}}{c_{p, \text{bulk}}G}\]

Danger

This method assumes that the coolant temperature does not change when the flux changes. This is not what people usually mean when they use OSV. See Saha_Zuber_OSV_computed_bulk for what you should probably use. This function is deprecated as the main usage and may change its name to reflect that in the future.

Parameters:
  • T_bulk (Celsius) – Coolant bulk temperature.

  • coolant (Liquid) – Coolant properties at T_bulk and appropriate pressure.

  • u (MPerS) – Coolant flow velocity.

  • Dh (Meter) – Hydraulic diameter

Returns:

q’’ – OSV (Onset of Significant Void) heat flux.

Return type:

WPerM2

Saha_Zuber_OSV_computed_bulk(T_inlet, coolant, mdot, Dh, area, heated_perimeter, flux_shape, dz, flux_enworse=1.0)[source]

Calculates the minimal q’’ heat flux at which OSV occurs, according to Saha & Zuber (1974)[1] (see Saha_Zuber_OSV), but the bulk temperature is computed as though the flux through the channel is indeed \(q''_{OSV}\).

Saha & Zuber’s correlation may be written as:

\[T_\text{sat} - T_\text{bulk} = \frac{q''_{OSV}}{X}\]

Where \(X\) is, for \(\text{Pe} < 70,000\):

\[X = \frac{\text{Nu}_c}{\text{Pe}}Gc_p = \frac{k}{D_h}\text{Nu}_c\]

for \(\text{Pe} > 70,000\):

\[X = \text{St}_c G c_p\]

and \(\text{St}_c = 0.0065, \text{Nu}_c = 455\).

Assuming \(q''(z)_{OSV} = \alpha q''(z)\), and the flux is given for the entire heated_perimeter (\(H_p\)):

\[T_\text{bulk} = T_{in} + \frac{H_p}{\dot{m}c_p}\alpha \int^z q'' dz'\]

meaning:

\[\alpha = \frac{q''_{OSV}}{q''} = \frac{T_\text{sat} - T_{in}}{\frac{q''}{X} + \frac{H_p}{\dot{m}c_p}\int^z q'' dz'}\]

and finally, \(q''_{OSV}\) is independent of the normalization of \(q''\):

\[q''_{OSV} = \frac{X(T_\text{sat} - T_{in})}{1 + \frac{XH_p}{\dot{m}c_p}\frac{\int^z q'' dz'}{q''(z)}}\]
Parameters:
  • T_inlet (Celsius) – Coolant bulk temperature.

  • coolant (Liquid) – Coolant properties at T_bulk and appropriate pressure.

  • mdot (KgPerS) – Mass flow rate

  • Dh (Meter) – Hydraulic diameter

  • area (Meter2) – Flow area

  • heated_perimeter (Meter) – Heated perimeter

  • flux_shape (Value) – A one dimensional heat flux distribution, which can be freely normalized.

  • dz (Meter) – Axial cell lengths

  • flux_enworse (float) – Factor to make the flux worse by. This is for local flux disturbance effects like fuel homogeneity.

Returns:

q’’ – OSV (Onset of Significant Void) heat flux.

Return type:

WPerM2

Sudo_Kaminaga_CHF(T_bulk, sat_coolant, mdot, pipe, g=9.80665)[source]

The limit heat flux for CHF according to Kaminaga et al.[7].

Parameters:
  • T_bulk (Celsius) – Bulk coolant temperature

  • sat_coolant (Liquid) – Coolant properties at saturation temperature

  • mdot (KgPerS) – Coolant mass flow rate

  • pipe (EffectivePipe) – Channel Geometry

  • g (MPerS2) – Gravitational acceleration constant

Return type:

float | ndarray

Notes

The width of the channel is taken from the pipe from an attribute called width. This attribute is only ever really used here, and it is geometrically set for most channels, and can be manually set for custom pipes, or left as None.

This width should not be taken as the heated width, according to Mishima’s experiments. In the original works by Mishima[9], which Sudo & Kaminage cite[7], they use the hydraulic diameter for annular channels, and the channel width for their rectangular case, where the heated region was 30mm out of 40mm. Thus, heated width would be the wrong quantity to use here.

References

Returns:

q’’ – CHF (Critical Heat Flux)

Return type:

WPerM2

Parameters:
  • T_bulk (float | ndarray)

  • sat_coolant (Liquid)

  • mdot (float | ndarray)

  • pipe (EffectivePipe)

  • g (float | ndarray)

Whittle_Forgan_OFI(mdot, sat_temperature, inlet_temperature, pipe, cp)[source]

The limit for “Onset of Flow Instability” as per Whittle and Forgan[3], but with a correction by Fabréga[6]. In essence, power for OFI is given by:

\[P_\text{RD} = \frac{\dot{m} c_\text{p}(T_\text{sat} - T_\text{inlet})} {1 + 3.15 (D_\text{h} / L_\text{h}) (1.08G)^{0.29}}\]

Where \(G= \rho u = \dot{m}/A\) is the mass flow flux, given in CGS. The reference says so: “G: vitesse massique à l’entrée et évaluée en CGS”

Parameters:
  • mdot (KgPerS) – Mass flow rate

  • sat_temperature (Celsius) – Saturation temperature at the outlet.

  • inlet_temperature (Celsius) – Bulk temperature at the fuel inlet.

  • pipe (EffectivePipe) – The geometry of the flow region.

  • cp (Callable[[Celsius], JPerKgK]) – Strategy for computing the specific heat of the coolant.

Returns:

PRD_OFI – OFI limit power

Return type:

Watt

boiling_power(mdot, T_sat, Tin, cp_in)[source]

The limit for “Boiling power ratio” as per TERMIC(CONVEC)[8] - ratio of the channel power leading to saturated water temperature at the channel outlet to the current channel power:

\[BP = \dot{m} c_\text{p}(T_\text{sat} - T_\text{inlet})\]
Parameters:
  • mdot (KgPerS) – Mass flow rate

  • Tin (Celsius) – Bulk coolant temperature @ inlet

  • cp_in (JPerKgK) – Specific heat of the coolant at Tin

  • T_sat (Celsius) – Saturation temperature

Returns:

Power required to reach the saturation temperature in the channel.

Return type:

Watt