Two-fluid model
The two-Fluid simulation framework in OpenSTREAM provides a detailed representation of multiphase flow by solving six conservation equations—mass, momentum, and energy for both liquid and vapor phases. This formulation enables the simulation of key non-equilibrium effects and is foundational in nuclear reactor thermal-hydraulic code systems.
The two-fluid model serves several key roles within OpenSTREAM:
Full separate phase treatment: Liquid and vapor are modeled as distinct continua, each with its own set of governing equations.
Non-equilibrium dynamics: Captures both thermal and hydrodynamic non-equilibrium, essential for accurate transient and boiling flow simulations.
Industry relevance: Commonly used in reactor system codes to simulate phenomena such as evaporation, condensation, and phase separation.
By explicitly modeling both liquid and vapor phases, the two-fluid approach preserves critical non-equilibrium dynamics while offering a flexible foundation for detailed model development and advanced thermal-hydraulic analysis.
An overview of the two-fluid model implemented in OpenSTREAM is provided below. A more detailed derivation and theoretical background can be found in Le Corre et al. [2025] and Walter [2024].
Governing equations
1. Mass conservation
Liquid: \(\frac{\partial}{\partial t}(\frac{W_l}{u_l}) + \frac{\partial W_l}{\partial z} = -A a_i (\Gamma - \Lambda) - \sum \Pi_{wall}^n \Gamma_{wb}^n\)
Vapor: \(\frac{\partial}{\partial t}(\frac{W_v}{u_v}) + \frac{\partial W_v}{\partial z} = A a_i (\Gamma - \Lambda) + \sum \Pi_{wall}^n \Gamma_{wb}^n\)
where:
\(W_l\), \(W_v\) are the liquid and vapor mass flow rates
\(u_l\), \(u_v\) are the liquid and vapor velocities
\(a_i\), is the volumetric interfacial area
\(\Gamma\) is the interfacial evaporation mass flux
\(\Lambda\) is the interfacial condensation mass flux
\(\Gamma_{wb}^n\) is the wall boiling mass flux for wall index \(n\)
2. Momentum conservation
Liquid: \(\rho_l A_l (\frac{\partial u_l}{\partial t} + u_l \frac{\partial u_l}{\partial z}) = -A a_i \Lambda (u_l - u_v) - A_l (\frac{\partial p}{\partial z} + \cos\theta g \rho_l) + A a_i \tau_{v,l} - \sum \Pi_{wall}^n \tau_{wall,l}^n\)
Vapor: \(\rho_v A_v (\frac{\partial u_v}{\partial t} + u_v \frac{\partial u_v}{\partial z}) = (A a_i \Gamma + \sum \Pi_{wall}^n \Gamma_{wb}^n) (u_l - u_v) - A_v (\frac{\partial p}{\partial z} + \cos\theta g \rho_v) - A a_i \tau_{v,l} - \sum \Pi_{wall}^n \tau_{wall,v}^n\)
where
\(A_l\), \(A_v\) are the liquid and vapor cross-sectional areas
\(\tau_{v,l}\) is the interfacial shear stress
\(\tau_{wall,l}\), \(\tau_{wall,v}\) are the liquid and vapor wall shear stresses
3. Energy conservation
Liquid: \(\rho_l A_l (\frac{\partial h_l}{\partial t} + u_l \frac{\partial h_l}{\partial z}) = -A a_i \Lambda (h_l - h_v) + \sum \Pi_{wall}^n ({q^{\prime\prime}}_{wall,l}^n - (h_v - h_l) \Gamma_{wb}^n)\)
Vapor: \(\rho_v A_v (\frac{\partial h_v}{\partial t} + u_v \frac{\partial h_v}{\partial z}) = A a_i \Gamma (h_l - h_v) + \sum \Pi_{wall}^n {q^{\prime\prime}}_{wall,v}^n\)
where
\(h_l\), \(h_v\) are the liquid and vapor specific enthalpies
\({q^{\prime\prime}}_{wall,l}^n\), \({q^{\prime\prime}}_{wall,v}^n\) are the wall heat flux to liquid and vapor for wall index \(n\)
Closure relations
To complete the conservation equations, several closure relations are required:
Volumetric interfacial area: \(a_i\)
Interfacial evaporation and condensation mass fluxes: \(\Gamma\), \(\Lambda\)
Wall boiling mass flux: \(\Gamma_{wb}^n\)
Interfacial shears stress: \(\tau_{v,l}\)
Wall shear stress for each phase: \(\tau_{wall,l}\), \(\tau_{wall,v}\)
Wall heat flux for each phase: \({q^{\prime\prime}}_{wall,l}^n\), \({q^{\prime\prime}}_{wall,v}^n\)
Wall heat transfer models
These relations depend on the local flow regime, which is determined by an additional flow regime identification model.
The selected closure models are defined in the OpenSTREAM model file, chosen from the available options listed in InputEnums. If not explicitly specified by the user, default models are applied as defined in Inputs.Model. All closure relations are implemented in Solvers.TwoFluid.Liquid and Solvers.TwoFluid.Vapor, which the users can modify to suit specific simulation needs.
In addition, the thermodynamic properties for each phase are computed using CoolProp, an open-source thermophysical property library that provides accurate equations of state and transport properties for a wide range of fluids.
Features and assumptions
Supports both steady-state and transient simulations in straight channels
Supports uniform and non-uniform wall heat flux distribution
Captures phase-specific velocities and temperatures
Includes interfacial mass, momentum, and energy exchange
Supports wall boiling and condensation
Neglects minor contributions such as frictional heating and temporal pressure gradient contributions
Role in OpenSTREAM
The two-fluid model is the legacy framework for simulating non-equilibrium two-phase flows. It is validated against system codes like TRACE and supports both steady-state and transient simulations.
Implementation notes
Package
Module
Two-fluid solver class
Phase classes
Flow regime enumeration class
Key solver methods
Key field properties: