Class TwoPhasePressureDrop
Implements the Friedel (1979) correlation, the most widely-used general two-phase pressure drop method for horizontal and vertical tubes. Also includes the Muller-Steinhagen and Heck (1986) correlation as a simpler alternative.
The Friedel correlation uses a two-phase friction multiplier phi_lo^2 applied to the all-liquid frictional pressure drop:
(dP/dz)_tp = phi_lo^2 * (dP/dz)_lo phi_lo^2 = E + 3.24 * F * H / (Fr^0.045 * We^0.035)
The correlation is validated for wide ranges of flow conditions (all flow patterns except stratified flow) and is recommended by HTRI as a primary method.
References:
- Friedel, L. (1979). "Improved friction pressure drop correlations for horizontal and vertical two-phase pipe flow." European Two-Phase Flow Group Meeting, Ispra, Italy, Paper E2.
- Muller-Steinhagen, H. and Heck, K. (1986). "A simple friction pressure drop correlation for two-phase flow in pipes." Chemical Engineering and Processing, 20, 297-308.
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivatePrivate constructor to prevent instantiation. -
Method Summary
Modifier and TypeMethodDescriptionstatic doublecalcAccelerationPressureDrop(double massFlux, double qualityIn, double qualityOut, double liquidDensity, double vaporDensity) Calculates the acceleration pressure drop component due to quality change.(package private) static doublecalcFanningFriction(double Re) Calculates the Fanning friction factor for smooth tubes.static doublecalcFriedelAveragePressureDrop(double massFlux, double qualityIn, double qualityOut, double tubeID, double tubeLength, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension, int intervals) Calculates the average two-phase pressure drop over a quality change using numerical integration.static doublecalcFriedelGradient(double massFlux, double vaporQuality, double tubeID, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension) Calculates the two-phase frictional pressure drop gradient using the Friedel (1979) correlation.static doublecalcFriedelPressureDrop(double massFlux, double vaporQuality, double tubeID, double tubeLength, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension) Calculates the total two-phase frictional pressure drop over a tube length.static doublecalcGravitationalGradient(double vaporQuality, double liquidDensity, double vaporDensity) Calculates the gravitational pressure drop component for vertical two-phase flow.private static doublecalcMomentumFlux(double quality, double liquidDensity, double vaporDensity) Calculates the momentum flux term for a given quality.static doublecalcMullerSteinhagenHeckGradient(double massFlux, double vaporQuality, double tubeID, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity) Calculates the two-phase frictional pressure drop gradient using the Muller-Steinhagen and Heck (1986) correlation.
-
Constructor Details
-
TwoPhasePressureDrop
private TwoPhasePressureDrop()Private constructor to prevent instantiation.
-
-
Method Details
-
calcFriedelGradient
public static double calcFriedelGradient(double massFlux, double vaporQuality, double tubeID, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension) Calculates the two-phase frictional pressure drop gradient using the Friedel (1979) correlation.This is the recommended method for most conditions. Valid for all flow patterns except stratified flow. Accuracy is typically within 30% for the recommended range.
- Parameters:
massFlux- total mass flux G (kg/(m2*s))vaporQuality- local vapor quality x (0 to 1)tubeID- tube inner diameter (m)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)liquidViscosity- liquid dynamic viscosity (Pa*s)vaporViscosity- vapor dynamic viscosity (Pa*s)surfaceTension- surface tension (N/m)- Returns:
- frictional pressure drop gradient (Pa/m)
-
calcFriedelPressureDrop
public static double calcFriedelPressureDrop(double massFlux, double vaporQuality, double tubeID, double tubeLength, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension) Calculates the total two-phase frictional pressure drop over a tube length.- Parameters:
massFlux- total mass flux (kg/(m2*s))vaporQuality- vapor quality (assumed constant along length) (0 to 1)tubeID- tube inner diameter (m)tubeLength- tube length (m)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)liquidViscosity- liquid viscosity (Pa*s)vaporViscosity- vapor viscosity (Pa*s)surfaceTension- surface tension (N/m)- Returns:
- total frictional pressure drop (Pa)
-
calcFriedelAveragePressureDrop
public static double calcFriedelAveragePressureDrop(double massFlux, double qualityIn, double qualityOut, double tubeID, double tubeLength, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity, double surfaceTension, int intervals) Calculates the average two-phase pressure drop over a quality change using numerical integration.Integrates the Friedel gradient over the quality range using Simpson's rule.
- Parameters:
massFlux- total mass flux (kg/(m2*s))qualityIn- inlet vapor quality (0 to 1)qualityOut- outlet vapor quality (0 to 1)tubeID- tube inner diameter (m)tubeLength- tube length (m)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)liquidViscosity- liquid viscosity (Pa*s)vaporViscosity- vapor viscosity (Pa*s)surfaceTension- surface tension (N/m)intervals- number of integration intervals (minimum 4, must be even)- Returns:
- average frictional pressure drop over the tube (Pa)
-
calcMullerSteinhagenHeckGradient
public static double calcMullerSteinhagenHeckGradient(double massFlux, double vaporQuality, double tubeID, double liquidDensity, double vaporDensity, double liquidViscosity, double vaporViscosity) Calculates the two-phase frictional pressure drop gradient using the Muller-Steinhagen and Heck (1986) correlation.A simpler alternative to Friedel that does not require surface tension:
(dP/dz)_tp = G_factor * (1-x)^(1/3) + B * x^3 where G_factor = A + 2*(B-A)*x A = (dP/dz)_lo (all-liquid) B = (dP/dz)_vo (all-vapor)
Accuracy is typically within 30-50%, but the method is very robust and easy to implement.
- Parameters:
massFlux- total mass flux G (kg/(m2*s))vaporQuality- local vapor quality (0 to 1)tubeID- tube inner diameter (m)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)liquidViscosity- liquid viscosity (Pa*s)vaporViscosity- vapor viscosity (Pa*s)- Returns:
- frictional pressure drop gradient (Pa/m)
-
calcGravitationalGradient
public static double calcGravitationalGradient(double vaporQuality, double liquidDensity, double vaporDensity) Calculates the gravitational pressure drop component for vertical two-phase flow.Uses homogeneous void fraction:
alpha = 1 / (1 + (1-x)/x * rho_v/rho_l) rho_tp = rho_l*(1-alpha) + rho_v*alpha (dP/dz)_grav = rho_tp * g
- Parameters:
vaporQuality- vapor quality (0 to 1)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)- Returns:
- gravitational pressure drop gradient (Pa/m), positive for upflow
-
calcAccelerationPressureDrop
public static double calcAccelerationPressureDrop(double massFlux, double qualityIn, double qualityOut, double liquidDensity, double vaporDensity) Calculates the acceleration pressure drop component due to quality change.dP_accel = G^2 * [x_out^2/(alpha_out*rho_v) + (1-x_out)^2/((1-alpha_out)*rho_l) - x_in^2/(alpha_in*rho_v) - (1-x_in)^2/((1-alpha_in)*rho_l)]- Parameters:
massFlux- total mass flux (kg/(m2*s))qualityIn- inlet vapor quality (0 to 1)qualityOut- outlet vapor quality (0 to 1)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)- Returns:
- acceleration pressure drop (Pa)
-
calcMomentumFlux
private static double calcMomentumFlux(double quality, double liquidDensity, double vaporDensity) Calculates the momentum flux term for a given quality.- Parameters:
quality- vapor quality (0 to 1)liquidDensity- liquid density (kg/m3)vaporDensity- vapor density (kg/m3)- Returns:
- momentum flux term (m3/kg)
-
calcFanningFriction
static double calcFanningFriction(double Re) Calculates the Fanning friction factor for smooth tubes.Uses Blasius for turbulent flow (Re > 2300) and 16/Re for laminar.
- Parameters:
Re- Reynolds number- Returns:
- Fanning friction factor
-