Class SeparatorSizingCalculator

java.lang.Object
neqsim.process.fielddevelopment.evaluation.SeparatorSizingCalculator
All Implemented Interfaces:
Serializable

public class SeparatorSizingCalculator extends Object implements Serializable
Separator sizing calculator aligned with TPG4230 course material.

Implements industry-standard separator sizing methods including:

  • API 12J - Liquid retention time based on oil density
  • Stokes Law - Droplet/bubble settling velocity
  • Souders-Brown - Maximum gas velocity (K-factor method)
  • GPSA - General sizing guidelines

Key Equations

Stokes Settling Velocity:

v_s = g × d² × (ρ_L - ρ_G) / (18 × μ)

Souders-Brown Gas Velocity:

V_max = K × sqrt((ρ_L - ρ_G) / ρ_G)

Residence Time Criterion:

t_residence > t_separation
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

  • Constructor Details

    • SeparatorSizingCalculator

      public SeparatorSizingCalculator()
  • Method Details

    • getAPI12JRetentionTime

      public double getAPI12JRetentionTime(double oilDensityKgM3)
      Returns minimum liquid retention time per API 12J.

      API 12J recommends retention times based on oil API gravity/density:

      API 12J Retention Times
      Oil Density (kg/m³) API Gravity Retention Time (s)
      < 850 > 35° 60
      850-930 20-35° 120
      > 930 < 20° 180
      Parameters:
      oilDensityKgM3 - oil density in kg/m³
      Returns:
      minimum retention time in seconds
    • getAPI12JRetentionTimeFromAPI

      public double getAPI12JRetentionTimeFromAPI(double apiGravity)
      Returns retention time based on API gravity.
      Parameters:
      apiGravity - API gravity (dimensionless)
      Returns:
      minimum retention time in seconds
    • stokesSettlingVelocity

      public double stokesSettlingVelocity(double dropletDiameterM, double heavyPhaseDensity, double lightPhaseDensity, double continuousPhaseViscosity)
      Calculates droplet/bubble settling velocity using Stokes Law.

      Stokes Law applies to laminar flow around spherical particles (Re < 1):

      v_s = g × d² × (ρ_heavy - ρ_light) / (18 × μ)
      

      where:

      • g = gravitational acceleration (9.81 m/s²)
      • d = droplet/bubble diameter (m)
      • ρ_heavy = density of heavier phase (kg/m³)
      • ρ_light = density of lighter phase (kg/m³)
      • μ = viscosity of continuous phase (Pa·s)
      Parameters:
      dropletDiameterM - droplet or bubble diameter (m)
      heavyPhaseDensity - density of heavier phase (kg/m³)
      lightPhaseDensity - density of lighter phase (kg/m³)
      continuousPhaseViscosity - viscosity of continuous phase (Pa·s)
      Returns:
      settling velocity (m/s), positive = downward for droplets
    • oilDropletSettlingInGas

      public double oilDropletSettlingInGas(double dropletDiameterMicrons, double oilDensity, double gasDensity, double gasViscosity)
      Calculates oil droplet settling velocity in gas phase.
      Parameters:
      dropletDiameterMicrons - droplet diameter in microns
      oilDensity - oil density (kg/m³)
      gasDensity - gas density (kg/m³)
      gasViscosity - gas viscosity (Pa·s)
      Returns:
      settling velocity (m/s)
    • gasBubbleRiseInLiquid

      public double gasBubbleRiseInLiquid(double bubbleDiameterMm, double liquidDensity, double gasDensity, double liquidViscosity)
      Calculates gas bubble rise velocity in liquid phase.
      Parameters:
      bubbleDiameterMm - bubble diameter in mm
      liquidDensity - liquid density (kg/m³)
      gasDensity - gas density (kg/m³)
      liquidViscosity - liquid viscosity (Pa·s)
      Returns:
      rise velocity (m/s)
    • separationTime

      public double separationTime(double settlingDistance, double settlingVelocity)
      Calculates separation time for a droplet to settle a given distance.
      Parameters:
      settlingDistance - vertical distance to settle (m)
      settlingVelocity - settling velocity from Stokes (m/s)
      Returns:
      separation time (s)
    • soudersbrownGasVelocity

      public double soudersbrownGasVelocity(double kFactor, double liquidDensity, double gasDensity)
      Calculates maximum gas velocity using Souders-Brown equation.

      The Souders-Brown equation determines the maximum allowable gas velocity to prevent liquid entrainment:

      V_max = K × sqrt((ρ_L - ρ_G) / ρ_G)
      

      where K is the Souders-Brown coefficient (m/s), typically:

      • 0.04-0.05 m/s for vertical separators without demister
      • 0.06-0.12 m/s for horizontal separators
      • 0.10-0.15 m/s for separators with wire mesh demister
      Parameters:
      kFactor - Souders-Brown K factor (m/s)
      liquidDensity - liquid density (kg/m³)
      gasDensity - gas density (kg/m³)
      Returns:
      maximum gas velocity (m/s)
    • getRecommendedKFactor

      public double getRecommendedKFactor(SeparatorSizingCalculator.SeparatorType type, boolean hasDemister)
      Returns recommended K-factor based on separator configuration.
      Parameters:
      type - separator type
      hasDemister - true if wire mesh demister is installed
      Returns:
      recommended K-factor (m/s)
    • sizeSeparator

      Sizes a separator for the given feed stream.

      This method calculates the required separator dimensions based on:

      • Gas capacity constraint (Souders-Brown)
      • Liquid retention time (API 12J)
      • Slenderness ratio limits (L/D)
      Parameters:
      feed - inlet stream to separator
      type - separator orientation
      standard - design standard to apply
      Returns:
      sizing result with dimensions and constraints
    • createSeparator

      Creates a sized Separator equipment from a sizing result.
      Parameters:
      name - equipment name
      feed - inlet stream
      result - sizing result
      Returns:
      configured Separator
    • sizeUsingNeqSimDesign

      public SeparatorSizingCalculator.SeparatorSizingResult sizeUsingNeqSimDesign(Separator separator)
      Uses existing NeqSim SeparatorMechanicalDesign for sizing.

      This method leverages the existing NeqSim separator design infrastructure.

      Parameters:
      separator - existing separator with inlet stream
      Returns:
      sizing result from mechanical design