Class PackingHydraulicsCalculator

java.lang.Object
neqsim.process.equipment.distillation.internals.PackingHydraulicsCalculator
All Implemented Interfaces:
Serializable

public class PackingHydraulicsCalculator extends Object implements Serializable
Packing hydraulics calculator for packed distillation columns.

Calculates hydraulic performance and HETP for random and structured packing using industry-standard correlations:

  • Flooding velocity — Eckert generalized correlation (GPDC chart)
  • Pressure drop — Leva correlation for wet packing
  • HETP — Onda correlation for mass transfer coefficients, then HETP from HTU
  • Liquid distribution — minimum wetting rate check
  • Loading/flooding transition

References: Eckert, J.S. Chem. Eng. Prog. (1970); Leva, M. Chem. Eng. Prog. (1954); Onda, K. J. Chem. Eng. Japan (1968); Kister, H.Z. "Distillation Design" (1992); Billet, R. "Packed Towers" (1995).

Version:
1.0
Author:
NeqSim
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Logger object for class.
    • packingCategory

      private String packingCategory
      Packing category: "random" or "structured".
    • packingName

      private String packingName
      Packing type name (e.g., "Pall-Ring-50", "Mellapak-250Y").
    • specificSurfaceArea

      private double specificSurfaceArea
      Packing specific surface area [m2/m3].
    • voidFraction

      private double voidFraction
      Packing void fraction (porosity) [-].
    • packingFactor

      private double packingFactor
      Packing factor Fp [m-1] (used in Eckert GPDC correlation).
    • nominalSize

      private double nominalSize
      Nominal packing size [mm] (for random packing).
    • criticalSurfaceTension

      private double criticalSurfaceTension
      Critical surface tension of packing material [N/m] (for Onda).
    • columnDiameter

      private double columnDiameter
      Column internal diameter [m].
    • packedHeight

      private double packedHeight
      Packed bed height [m].
    • designFloodFraction

      private double designFloodFraction
      Design flooding fraction (typically 0.65-0.75 for packed columns).
    • vaporMassFlow

      private double vaporMassFlow
      Vapor mass flow rate [kg/s].
    • liquidMassFlow

      private double liquidMassFlow
      Liquid mass flow rate [kg/s].
    • vaporDensity

      private double vaporDensity
      Vapor density [kg/m3].
    • liquidDensity

      private double liquidDensity
      Liquid density [kg/m3].
    • vaporViscosity

      private double vaporViscosity
      Vapor viscosity [Pa.s].
    • liquidViscosity

      private double liquidViscosity
      Liquid viscosity [Pa.s].
    • surfaceTension

      private double surfaceTension
      Liquid surface tension [N/m].
    • vaporDiffusivity

      private double vaporDiffusivity
      Vapor diffusivity [m2/s].
    • liquidDiffusivity

      private double liquidDiffusivity
      Liquid diffusivity [m2/s].
    • floodingVelocity

      private double floodingVelocity
      Flooding gas velocity [m/s].
    • actualVelocity

      private double actualVelocity
      Actual gas superficial velocity [m/s].
    • percentFlood

      private double percentFlood
      Percent of flooding [%].
    • pressureDropPerMeter

      private double pressureDropPerMeter
      Pressure drop [Pa/m of packing].
    • totalPressureDrop

      private double totalPressureDrop
      Total pressure drop [Pa].
    • kGa

      private double kGa
      Gas-phase mass transfer coefficient [mol/(m2.s.Pa)] or [1/s].
    • kLa

      private double kLa
      Liquid-phase mass transfer coefficient [m/s].
    • wettedArea

      private double wettedArea
      Wetted specific area [m2/m3].
    • htuG

      private double htuG
      Height of a gas-phase transfer unit [m].
    • htuL

      private double htuL
      Height of a liquid-phase transfer unit [m].
    • htuOG

      private double htuOG
      Height of an overall gas-phase transfer unit [m].
    • hetp

      private double hetp
      HETP — Height Equivalent to a Theoretical Plate [m].
    • numberOfTheoreticalStages

      private double numberOfTheoreticalStages
      Number of theoretical stages in packed height.
    • minimumWettingRate

      private double minimumWettingRate
      Minimum liquid wetting rate [m3/(m2.s)].
    • actualLiquidVelocity

      private double actualLiquidVelocity
      Actual liquid superficial velocity [m/s].
    • wettingOk

      private boolean wettingOk
      Wetting check: true if liquid rate exceeds minimum.
    • fsFactor

      private double fsFactor
      F-factor = u_v * sqrt(rho_v) [Pa^0.5].
    • designOk

      private boolean designOk
      Overall design verdict.
  • Constructor Details

    • PackingHydraulicsCalculator

      public PackingHydraulicsCalculator()
      Default constructor.
  • Method Details

    • calculate

      public void calculate()
      Perform all packing hydraulic calculations.

      Call after setting packing specs and operating conditions. Results available through getters.

    • calculateFloodingVelocity

      private void calculateFloodingVelocity()
      Calculate flooding velocity using the Eckert Generalized Pressure Drop Correlation (GPDC).

      The GPDC relates the flow parameter FLV to the capacity parameter Y at flooding. The Sherwood/Leva/Eckert chart is fitted with a polynomial in log-log space.

    • calculateActualVelocity

      private void calculateActualVelocity()
      Calculate actual velocity and percent flooding.
    • calculatePressureDrop

      private void calculatePressureDrop()
      Calculate pressure drop using the Leva correlation for irrigated packing.

      Uses the dry packing Ergun-type equation with a Leva wet correction factor that increases with liquid loading.

    • calculateMassTransfer

      private void calculateMassTransfer()
      Calculate mass transfer coefficients using the Onda correlation.

      The Onda correlation (1968) predicts gas and liquid phase mass transfer coefficients and the effective wetted area for random and structured packings.

    • calculateHETP

      private void calculateHETP()
      Calculate HETP from mass transfer coefficients.

      Uses the two-resistance model: 1/KOG = 1/kG + m/kL, then HTU_OG = G/(KOG * a * P), and HETP = HTU_OG * ln(lambda) / (lambda - 1), where lambda = m * G_m / L_m is the stripping factor.

    • estimateHETP

      private double estimateHETP()
      Estimate HETP from empirical rules of thumb when mass transfer calculation is not feasible.
      Returns:
      estimated HETP [m]
    • getEffectivePackingDiameter

      private double getEffectivePackingDiameter()
      Get effective packing diameter for mass-transfer correlations.

      Random packings normally provide a nominal size. Structured packings often do not, so an equivalent hydraulic diameter 4 epsilon / a is used as a finite fallback.

      Returns:
      effective packing diameter in metres
    • calculateWettingCheck

      private void calculateWettingCheck()
      Check minimum liquid wetting rate.
    • assessDesign

      private void assessDesign()
      Assess overall design.
    • sizeColumnDiameter

      public double sizeColumnDiameter()
      Size column diameter for packed column at the design flood fraction.
      Returns:
      required column diameter [m]
    • roundToStandardDiameter

      private double roundToStandardDiameter(double diameter)
      Round diameter to nearest standard vessel size.
      Parameters:
      diameter - raw diameter [m]
      Returns:
      standard diameter [m]
    • setPackingPreset

      public void setPackingPreset(String preset)
      Set packing to a standard random packing type.

      Supported presets are provided by PackingSpecificationLibrary. The old hard-coded names remain available, and additional entries can be supplied through designdata/Packing.csv.

      Parameters:
      preset - packing name preset
    • setStructuredPackingPreset

      public void setStructuredPackingPreset(String preset)
      Set packing to a standard structured packing type.

      Supported presets are provided by PackingSpecificationLibrary. The old hard-coded names remain available, and additional entries can be supplied through designdata/Packing.csv.

      Parameters:
      preset - structured packing name preset
    • setPackingSpecification

      public void setPackingSpecification(PackingSpecification specification)
      Apply a reusable packing specification.
      Parameters:
      specification - packing specification to apply
      Throws:
      IllegalArgumentException - if the specification is null
    • getPackingCategory

      public String getPackingCategory()
      Get packing category ("random" or "structured").
      Returns:
      packing category
    • setPackingCategory

      public void setPackingCategory(String category)
      Set packing category.
      Parameters:
      category - "random" or "structured"
    • getPackingName

      public String getPackingName()
      Get packing name.
      Returns:
      packing name
    • setPackingName

      public void setPackingName(String name)
      Set packing name.
      Parameters:
      name - packing name
    • getSpecificSurfaceArea

      public double getSpecificSurfaceArea()
      Get specific surface area [m2/m3].
      Returns:
      specific surface area
    • setSpecificSurfaceArea

      public void setSpecificSurfaceArea(double area)
      Set specific surface area [m2/m3].
      Parameters:
      area - specific surface area
    • getVoidFraction

      public double getVoidFraction()
      Get void fraction (porosity).
      Returns:
      void fraction
    • setVoidFraction

      public void setVoidFraction(double fraction)
      Set void fraction.
      Parameters:
      fraction - void fraction
    • getPackingFactor

      public double getPackingFactor()
      Get packing factor [m-1].
      Returns:
      packing factor
    • setPackingFactor

      public void setPackingFactor(double factor)
      Set packing factor [m-1].
      Parameters:
      factor - packing factor
    • setNominalSize

      public void setNominalSize(double size)
      Set nominal packing size [mm].
      Parameters:
      size - nominal size
    • setCriticalSurfaceTension

      public void setCriticalSurfaceTension(double tension)
      Set critical surface tension of packing material [N/m].
      Parameters:
      tension - critical surface tension
    • setColumnDiameter

      public void setColumnDiameter(double diameter)
      Set column diameter [m].
      Parameters:
      diameter - column diameter
    • getColumnDiameter

      public double getColumnDiameter()
      Get column diameter [m].
      Returns:
      column diameter
    • setPackedHeight

      public void setPackedHeight(double height)
      Set packed bed height [m].
      Parameters:
      height - packed height
    • getPackedHeight

      public double getPackedHeight()
      Get packed bed height [m].
      Returns:
      packed height
    • setDesignFloodFraction

      public void setDesignFloodFraction(double fraction)
      Set design flooding fraction (typical 0.65-0.75).
      Parameters:
      fraction - design flooding fraction
    • setVaporMassFlow

      public void setVaporMassFlow(double flow)
      Set vapor mass flow [kg/s].
      Parameters:
      flow - vapor mass flow
    • setLiquidMassFlow

      public void setLiquidMassFlow(double flow)
      Set liquid mass flow [kg/s].
      Parameters:
      flow - liquid mass flow
    • setVaporDensity

      public void setVaporDensity(double density)
      Set vapor density [kg/m3].
      Parameters:
      density - vapor density
    • setLiquidDensity

      public void setLiquidDensity(double density)
      Set liquid density [kg/m3].
      Parameters:
      density - liquid density
    • setVaporViscosity

      public void setVaporViscosity(double viscosity)
      Set vapor viscosity [Pa.s].
      Parameters:
      viscosity - vapor viscosity
    • setLiquidViscosity

      public void setLiquidViscosity(double viscosity)
      Set liquid viscosity [Pa.s].
      Parameters:
      viscosity - liquid viscosity
    • setSurfaceTension

      public void setSurfaceTension(double tension)
      Set liquid surface tension [N/m].
      Parameters:
      tension - surface tension
    • setVaporDiffusivity

      public void setVaporDiffusivity(double diffusivity)
      Set vapor diffusivity [m2/s].
      Parameters:
      diffusivity - vapor diffusivity
    • setLiquidDiffusivity

      public void setLiquidDiffusivity(double diffusivity)
      Set liquid diffusivity [m2/s].
      Parameters:
      diffusivity - liquid diffusivity
    • getFloodingVelocity

      public double getFloodingVelocity()
      Get flooding velocity [m/s].
      Returns:
      flooding velocity
    • getActualVelocity

      public double getActualVelocity()
      Get actual gas superficial velocity [m/s].
      Returns:
      actual velocity
    • getPercentFlood

      public double getPercentFlood()
      Get percent of flooding.
      Returns:
      percent flood
    • getPressureDropPerMeter

      public double getPressureDropPerMeter()
      Get pressure drop per meter of packing [Pa/m].
      Returns:
      pressure drop per meter
    • getTotalPressureDrop

      public double getTotalPressureDrop()
      Get total pressure drop [Pa].
      Returns:
      total pressure drop
    • getHETP

      public double getHETP()
      Get HETP [m].
      Returns:
      height equivalent to a theoretical plate
    • getNumberOfTheoreticalStages

      public double getNumberOfTheoreticalStages()
      Get number of theoretical stages in the packed bed.
      Returns:
      number of theoretical stages
    • getKGa

      public double getKGa()
      Get gas-phase mass transfer coefficient [1/s].
      Returns:
      kG*a
    • getKLa

      public double getKLa()
      Get liquid-phase mass transfer coefficient [1/s].
      Returns:
      kL*a
    • getWettedArea

      public double getWettedArea()
      Get wetted specific area [m2/m3].
      Returns:
      wetted area
    • getHtuG

      public double getHtuG()
      Get HTU_G [m].
      Returns:
      gas-phase height of transfer unit
    • getHtuL

      public double getHtuL()
      Get HTU_L [m].
      Returns:
      liquid-phase height of transfer unit
    • getHtuOG

      public double getHtuOG()
      Get HTU_OG [m].
      Returns:
      overall gas-phase height of transfer unit
    • getFsFactor

      public double getFsFactor()
      Get F-factor [Pa^0.5].
      Returns:
      F-factor
    • isWettingOk

      public boolean isWettingOk()
      Check if wetting is adequate.
      Returns:
      true if above minimum wetting rate
    • isDesignOk

      public boolean isDesignOk()
      Check if overall design is feasible.
      Returns:
      true if all checks pass