Class SeparatorSizingCalculator
java.lang.Object
neqsim.process.fielddevelopment.evaluation.SeparatorSizingCalculator
- All Implemented Interfaces:
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumDesign standard to apply.static classResult container for separator sizing calculations.static enumSeparator orientation type. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleGravitational acceleration (m/s²).private static final long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateSeparator(String name, StreamInterface feed, SeparatorSizingCalculator.SeparatorSizingResult result) Creates a sized Separator equipment from a sizing result.doublegasBubbleRiseInLiquid(double bubbleDiameterMm, double liquidDensity, double gasDensity, double liquidViscosity) Calculates gas bubble rise velocity in liquid phase.doublegetAPI12JRetentionTime(double oilDensityKgM3) Returns minimum liquid retention time per API 12J.doublegetAPI12JRetentionTimeFromAPI(double apiGravity) Returns retention time based on API gravity.doublegetRecommendedKFactor(SeparatorSizingCalculator.SeparatorType type, boolean hasDemister) Returns recommended K-factor based on separator configuration.doubleoilDropletSettlingInGas(double dropletDiameterMicrons, double oilDensity, double gasDensity, double gasViscosity) Calculates oil droplet settling velocity in gas phase.doubleseparationTime(double settlingDistance, double settlingVelocity) Calculates separation time for a droplet to settle a given distance.sizeSeparator(StreamInterface feed, SeparatorSizingCalculator.SeparatorType type, SeparatorSizingCalculator.DesignStandard standard) Sizes a separator for the given feed stream.sizeUsingNeqSimDesign(Separator separator) Uses existing NeqSim SeparatorMechanicalDesign for sizing.doublesoudersbrownGasVelocity(double kFactor, double liquidDensity, double gasDensity) Calculates maximum gas velocity using Souders-Brown equation.doublestokesSettlingVelocity(double dropletDiameterM, double heavyPhaseDensity, double lightPhaseDensity, double continuousPhaseViscosity) Calculates droplet/bubble settling velocity using Stokes Law.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
GRAVITY
private static final double GRAVITYGravitational acceleration (m/s²).- See Also:
-
-
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 micronsoilDensity- 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 mmliquidDensity- 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 typehasDemister- true if wire mesh demister is installed- Returns:
- recommended K-factor (m/s)
-
sizeSeparator
public SeparatorSizingCalculator.SeparatorSizingResult sizeSeparator(StreamInterface feed, SeparatorSizingCalculator.SeparatorType type, SeparatorSizingCalculator.DesignStandard standard) 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 separatortype- separator orientationstandard- design standard to apply- Returns:
- sizing result with dimensions and constraints
-
createSeparator
public Separator createSeparator(String name, StreamInterface feed, SeparatorSizingCalculator.SeparatorSizingResult result) Creates a sized Separator equipment from a sizing result.- Parameters:
name- equipment namefeed- inlet streamresult- sizing result- Returns:
- configured Separator
-
sizeUsingNeqSimDesign
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
-