Cartesian Multiphase Solver
Theory guide
In LAVA, the multiphase model is the 4-eq Homogeneous Relaxation Model (HRM). This model assumes instantaneous mechanical and temperature relaxation between the species. When solved directly with stiffened-gas EOS for the liquid species, the numerical solution can fail for extreme cases with strong shocks and cavitation. This is due to the non-monotonic behavior of the speed of sound in a liquid/vapor mixture (see the formulation by Wood).
Thus, the LAVA solver employs a robust fractional method for time-stepping of the HRM model. Specifically, the 5-eq model of Allaire et al. (Allaire's model) is employed for the first hyperbolic step. In Allaire's model, the temperature of the species can be distinct from one another, resulting in the expansion of the thermodynamic degree of freedom (HRM: pressure, density, mass fractions; Allaire's: pressure, density, mass fractions, volume fractions). In the limit of infinitely fast temperature relaxation, an algebraic step is employed to relax the mixture into a single common temperature via modification of pressure and volume fractions 1. It is shown here that the Allaire's model + thermo-relaxation recovers the solution of the HRM model.
The model is further augmented with an approximate phase transfer model by Chiapolino et al.2.
A key consequence of the transition to Allaire's model for the hyperbolic step is that temperature information of all species must be present for consistency. This means that all mass and volume fractions must be strictly nonzero. In practice, we employ positivity-preserving limiters (PP) to enforce that partial densities and volume fractions are bounded from below by EPS = 1e-10 for double and 1e-6 for single precision. Input thermodynamic conditions are automatically adjusted so that this bound is met.
Specific Inputs
Mixture
Similar syntax to multi-species (MS), but first species must be liquid, and second species must be its corresponding vapor (optional), then the gas species in any order.
Navier Stokes
Options for the governing equations are set in this section.
navier stokes
{
viscous = false # required for MP. Default false
phase transition = true # Default false
use approximate solver = true # Default true
}
-
Viscous flow is not supported with MP yet.
-
phase transitioncontrols whether to perform phase transfer calculation or not. Then,use approximate solvercontrols whether to use the approximate model by Chiapolino et al. or perform root finding to exactly satisfy the Gibbs free energy balance.
Reference Conditions
The full set of thermodynamic variables required to specify the multiphase mixture is: pressure, temperature, and mass fractions.
reference conditions {
pressure = 1e5
temperature = 300.
mass fractions = [0.1, 0.1, 0.8]
multiphase equilibrium = true # default is false
# Other non-thermodynamic reference properties...
}
multiphase equilibrium = true, the first two components of the mass fractions vector will be recomputed so that the two liquid and vapor species have the same Gibbs free energy, i.e., the phases are in equilibrium with one another. This option is recommended when running with phase transition = true, see Navier Stokes.
Warning
For multiphase, there is no default values for the thermodynamic properties. The user must specify the complete state via one of the combinations above.
Initial Conditions
The user can specify regions in the domain where the initial conditions are modified from the reference condition. Details of this can be found in the Cartesian inputs documentation page. Multiphase requires more thermodynamic state information as described in Reference Conditions. Some examples of an initial condition patch for launch pad simulation, where we define a region of standing water, is shown below:
-
Fully-prescribed state
ic_1 { corner_1 = [-64.6, -1.0] corner_2 = [ 0.0, 1.6] velocity = [0.0,0.0,0.0] pressure = 101325.000000 temperature = 300. multiphase equilibrium = true # Optional option to specify phase eq. Default is false mass fractions = [9.9999997964053133e-01, 3.5946861473104996e-10, 1.0000000000000000e-08, 1.0000000000000000e-08] } -
Modified state, where pressure field is omitted since it is the same as the reference condition
ic_1 { corner_1 = [-64.6, -1.0] corner_2 = [ 0.0, 1.6] velocity = [0.0,0.0,0.0] temperature = 300. multiphase equilibrium = true # Optional option to specify phase eq. Default is false mass fractions = [9.9999997964053133e-01, 3.5946861473104996e-10, 1.0000000000000000e-08, 1.0000000000000000e-08] }
The extra option multiphase equilibrium controls whether the mass fraction of the IC state is modified to satisfy phase equilibrium.
Standing Water Exact Q
For launch pad simulations, when prescribing an IC patch for the standing water, the standing water Exact Q option can be employed to spatially smooth the transition between the IC patch and the reference condition in the rest of the domain.
Here, theinterface thickness is a required input (in meters) that dictates the thickness of the transition layer between the IC patch and the surrounding. The blending between IC and reference conditions is accomplished in the following manner, depending on the setting phase transition in Navier Stokes:
- The blending is done on pressure, temperature, and mass fractions. Volume fractions are recomputed to match the single mixture temperature. Furthermore, if
phasetransition = true, then the liquid/vapor compositions are also recomputed to achieve phase equilibrium.
Immersed Boundary Conditions
Wall Conditions
Since viscous=true is not supported with MP, only slip adiabatic wall is supported
mdot Inlet Condition
In the MP solver, the mdot inlet condition is typically used for aerated water injection. In contrast to the MS and NS1 case, the method for prescribing the thermodynamic condition of the injected flow is slightly different, with the addition of the multiphaseequilibrium option.
Info
To maintain robustness of the injected flows, LAVA will automatically modify the prescribed mass/volume fractions if needed to ensure that PP bounds are not violated.
BC_1 {
type = inlet
kind = [mdot]
temperature = 300
multiphaseequilibrium = true # Default false
massfractions = [0.992442,1e-8,1e-8,0.007558]
# Other non-thermodynamic inputs...
}
Nozzle Boundary Conditions
BC_1
{
type = nozzle
datafiletype = 4
dostagnation = false
multiphaseequilibrium = true
components = [56]
timeshift = 0.0
asciiLineTimeStart = 0
asciiLineTimeStop = 1
asciiLineTimeSkip = 1
asciiLineReadSpecies = true
nozzle normal = [-0.9999416651122017, -0.010795763249607787, 3.4331981600350204E-4]
numberofradialpoints = 200
filename = rd181_exitplane.dat
ispecies = 2
}
multiphaseequilibrium = true is used to specify whether the injected state is required to be at phase equilibrium or not.
Recommended Compositional Inputs
- Automatic adjustments are in place to ensure that the specified state does not violate PP bounds. These guarantee features is available for reference condition, initial conditions with/without standing water exact Q, mdot Immersed BC, and nozzle BC.
- Even then, to ensure robustness and avoid any unseen edge cases, make sure that each component of input mass fractions are at least 1e-8.
References
-
Wong, M. L., Angel, J. B., Barad, M. F., and Kiris, C. C., "A Positivity-Preserving High-Order Weighted Compact Nonlinear Scheme for Compressible Gas-Liquid Flows," Journal of Computational Physics, Vol. 444, 2021, p. 110569. https://doi.org/10.1016/j.jcp.2021.110569 ↩
-
Chiapolino, A., Boivin, P., and Saurel, R., "A Simple and Fast Phase Transition Relaxation Solver for Compressible Multicomponent Two-Phase Flows," Computers & Fluids, Vol. 150, 2017, pp. 31--45. https://doi.org/https://doi.org/10.1016/j.compfluid.2017.03.022 ↩