Class WallFriction

java.lang.Object
neqsim.process.equipment.pipeline.twophasepipe.closure.WallFriction
All Implemented Interfaces:
Serializable

public class WallFriction extends Object implements Serializable
Wall friction correlations for two-fluid multiphase pipe flow.

Provides separate wall friction calculations for gas and liquid phases based on flow regime. The wall shear stress is calculated as: τ_w = 0.5 * f * ρ * v² where f is the Fanning friction factor.

Correlations by Flow Regime

  • Stratified: Taitel-Dukler (separate phases with hydraulic diameters)
  • Slug: Slug body + film friction
  • Annular: Core + film model
  • Single-phase: Haaland/Colebrook-White
Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • defaultRoughness

      private double defaultRoughness
      Default pipe roughness (m).
    • geometryCalc

      private GeometryCalculator geometryCalc
      Geometry calculator for stratified flow.
  • Constructor Details

    • WallFriction

      public WallFriction()
      Constructor.
  • Method Details

    • calculate

      public WallFriction.WallFrictionResult calculate(PipeSection.FlowRegime flowRegime, double gasVelocity, double liquidVelocity, double gasDensity, double liquidDensity, double gasViscosity, double liquidViscosity, double liquidHoldup, double diameter, double roughness)
      Calculate wall friction for both phases.
      Parameters:
      flowRegime - Current flow regime
      gasVelocity - Gas velocity (m/s)
      liquidVelocity - Liquid velocity (m/s)
      gasDensity - Gas density (kg/m³)
      liquidDensity - Liquid density (kg/m³)
      gasViscosity - Gas dynamic viscosity (Pa·s)
      liquidViscosity - Liquid dynamic viscosity (Pa·s)
      liquidHoldup - Liquid holdup (0-1)
      diameter - Pipe diameter (m)
      roughness - Pipe wall roughness (m)
      Returns:
      Wall friction results for both phases
    • calcStratifiedFriction

      private WallFriction.WallFrictionResult calcStratifiedFriction(double vG, double vL, double rhoG, double rhoL, double muG, double muL, double alphaL, double D, double eps)
      Calculate wall friction for stratified flow using Taitel-Dukler approach.

      Each phase uses its hydraulic diameter for friction calculation.

      Parameters:
      vG - gas velocity [m/s]
      vL - liquid velocity [m/s]
      rhoG - gas density [kg/m³]
      rhoL - liquid density [kg/m³]
      muG - gas dynamic viscosity [Pa·s]
      muL - liquid dynamic viscosity [Pa·s]
      alphaL - liquid holdup fraction [-]
      D - pipe diameter [m]
      eps - pipe wall roughness [m]
      Returns:
      wall friction result containing shear stresses and friction factors
    • calcSlugFriction

      private WallFriction.WallFrictionResult calcSlugFriction(double vG, double vL, double rhoG, double rhoL, double muG, double muL, double alphaL, double D, double eps)
      Calculate wall friction for slug flow.

      Uses mixture properties in slug body, stratified approach in film region.

      Parameters:
      vG - gas velocity [m/s]
      vL - liquid velocity [m/s]
      rhoG - gas density [kg/m³]
      rhoL - liquid density [kg/m³]
      muG - gas dynamic viscosity [Pa·s]
      muL - liquid dynamic viscosity [Pa·s]
      alphaL - liquid holdup fraction [-]
      D - pipe diameter [m]
      eps - pipe wall roughness [m]
      Returns:
      wall friction result containing shear stresses and friction factors
    • calcAnnularFriction

      private WallFriction.WallFrictionResult calcAnnularFriction(double vG, double vL, double rhoG, double rhoL, double muG, double muL, double alphaL, double D, double eps)
      Calculate wall friction for annular flow.

      Liquid film on wall, gas in core. Film friction dominates.

      Parameters:
      vG - gas velocity [m/s]
      vL - liquid velocity [m/s]
      rhoG - gas density [kg/m3]
      rhoL - liquid density [kg/m3]
      muG - gas viscosity [Pa.s]
      muL - liquid viscosity [Pa.s]
      alphaL - liquid volume fraction [-]
      D - pipe diameter [m]
      eps - pipe roughness [m]
      Returns:
      wall friction result containing friction factors and shear stresses
    • calcBubbleFriction

      private WallFriction.WallFrictionResult calcBubbleFriction(double vG, double vL, double rhoG, double rhoL, double muG, double muL, double alphaL, double D, double eps)
      Calculate wall friction for bubble/dispersed bubble flow.

      Liquid-continuous flow with dispersed gas bubbles. Use liquid properties.

      Parameters:
      vG - gas velocity (m/s)
      vL - liquid velocity (m/s)
      rhoG - gas density (kg/m³)
      rhoL - liquid density (kg/m³)
      muG - gas viscosity (Pa·s)
      muL - liquid viscosity (Pa·s)
      alphaL - liquid holdup fraction
      D - pipe diameter (m)
      eps - pipe roughness (m)
      Returns:
      wall friction result
    • calcChurnFriction

      private WallFriction.WallFrictionResult calcChurnFriction(double vG, double vL, double rhoG, double rhoL, double muG, double muL, double alphaL, double D, double eps)
      Calculate wall friction for churn flow.

      Similar to slug but more chaotic. Use mixture approach.

      Parameters:
      vG - gas velocity (m/s)
      vL - liquid velocity (m/s)
      rhoG - gas density (kg/m³)
      rhoL - liquid density (kg/m³)
      muG - gas viscosity (Pa·s)
      muL - liquid viscosity (Pa·s)
      alphaL - liquid holdup fraction
      D - pipe diameter (m)
      eps - pipe roughness (m)
      Returns:
      wall friction result
    • calcSinglePhaseGasFriction

      private WallFriction.WallFrictionResult calcSinglePhaseGasFriction(double vG, double rhoG, double muG, double D, double eps)
      Calculate wall friction for single-phase gas flow.
      Parameters:
      vG - gas velocity (m/s)
      rhoG - gas density (kg/m3)
      muG - gas viscosity (Pa.s)
      D - pipe diameter (m)
      eps - pipe roughness (m)
      Returns:
      wall friction result
    • calcSinglePhaseLiquidFriction

      private WallFriction.WallFrictionResult calcSinglePhaseLiquidFriction(double vL, double rhoL, double muL, double D, double eps)
      Calculate wall friction for single-phase liquid flow.
      Parameters:
      vL - liquid velocity (m/s)
      rhoL - liquid density (kg/m3)
      muL - liquid viscosity (Pa.s)
      D - pipe diameter (m)
      eps - pipe roughness (m)
      Returns:
      wall friction result
    • calcFanningFrictionFactor

      public double calcFanningFrictionFactor(double reynolds, double roughness, double diameter)
      Calculate Fanning friction factor using Haaland equation.

      Explicit approximation to Colebrook-White equation, valid for turbulent flow. For laminar flow (Re < 2300), uses f = 16/Re.

      Parameters:
      reynolds - Reynolds number
      roughness - Pipe roughness (m)
      diameter - Pipe diameter (m)
      Returns:
      Fanning friction factor
    • calcTurbulentFanning

      private double calcTurbulentFanning(double Re, double epsD)
      Haaland equation for turbulent Fanning friction factor.
      Parameters:
      Re - Reynolds number
      epsD - relative roughness (roughness/diameter)
      Returns:
      Fanning friction factor
    • calcColebrookFanning

      public double calcColebrookFanning(double reynolds, double roughness, double diameter)
      Calculate Colebrook-White friction factor iteratively.

      More accurate than Haaland for edge cases.

      Parameters:
      reynolds - Reynolds number
      roughness - Pipe roughness (m)
      diameter - Pipe diameter (m)
      Returns:
      Fanning friction factor
    • getDefaultRoughness

      public double getDefaultRoughness()
      Get default roughness value.
      Returns:
      Default roughness (m)
    • setDefaultRoughness

      public void setDefaultRoughness(double roughness)
      Set default roughness value.
      Parameters:
      roughness - Default roughness (m)