Class ColumnInternalsDesigner
java.lang.Object
neqsim.process.equipment.distillation.internals.ColumnInternalsDesigner
- All Implemented Interfaces:
Serializable
Column internals designer for distillation columns.
High-level facade that evaluates hydraulic performance on every tray in a converged
DistillationColumn, identifies the controlling tray (highest vapor/liquid loading), sizes
the column diameter, and produces a comprehensive JSON report.
Supports both tray columns (sieve, valve, bubble-cap via TrayHydraulicsCalculator) and
packed columns (PackingHydraulicsCalculator).
Usage example:
// After running a DistillationColumn:
column.run();
ColumnInternalsDesigner designer = new ColumnInternalsDesigner(column);
designer.setInternalsType("sieve");
designer.setTraySpacing(0.6);
designer.setDesignFloodFraction(0.80);
designer.calculate();
double diameter = designer.getRequiredDiameter();
boolean ok = designer.isDesignOk();
String report = designer.toJson();
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleOverall tray efficiency (O'Connell average).private DistillationColumnThe distillation column to evaluate.private doubleColumn diameter override [m].private intIndex of the controlling tray (highest loading).private doubleDesign flooding fraction (0-1).private booleanOverall design verdict.private doubleDowncomer area fraction (tray columns).private doubleHole area fraction (sieve trays).private doubleHole diameter [mm] (for sieve trays).private StringInternals type: "sieve", "valve", "bubble-cap", or "packed".private static final org.apache.logging.log4j.LoggerLogger object for class.private doubleMaximum percent flooding across all trays.private doubleMinimum percent flooding across all trays (turndown check).private doublePacked bed height [m] (for packed columns).private StringPacking preset name (for packed columns).private PackingHydraulicsCalculatorPacking hydraulics result (packed columns only).private doubleRequired column diameter [m].private static final longSerialization version UID.private booleanWhether the packing is structured.private doubleTotal column pressure drop [Pa].private List<TrayHydraulicsCalculator> Per-tray hydraulics results (tray columns only).private doubleTray spacing [m] (for tray columns).private doubleWeir height [m] (for tray columns). -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.Constructor with column. -
Method Summary
Modifier and TypeMethodDescriptionvoidRun all internals sizing calculations.private voidCalculate internals for packed columns.private voidCalculate internals for tray columns.doubleGet the average tray efficiency (O'Connell).intGet the controlling tray index.doubleGet maximum percent flooding across all trays.doubleGet minimum percent flooding across all trays.Get the packing result calculator.doubleGet the required column diameter [m].doubleGet total column pressure drop [Pa].doubleGet total column pressure drop [mbar].private double[]getTrayFlows(SimpleTray tray) Extract vapor and liquid mass flow rates from a tray [kg/s].private double[]getTrayProperties(SimpleTray tray) Extract physical properties from a tray's fluid.Get the per-tray results list.booleanCheck if the overall design is feasible.voidsetColumn(DistillationColumn column) Set the distillation column.voidsetColumnDiameterOverride(double diameter) Override column diameter [m].voidsetDesignFloodFraction(double fraction) Set design flooding fraction (typical 0.70-0.85 for trays, 0.65-0.75 for packing).voidsetDowncommerAreaFraction(double fraction) Set downcomer area fraction (0.08-0.12).voidsetHoleAreaFraction(double fraction) Set hole area fraction (sieve trays, 0.05-0.16).voidsetHoleDiameter(double diameter) Set hole diameter [mm] (sieve trays).voidsetInternalsType(String type) Set internals type: "sieve", "valve", "bubble-cap", or "packed".voidsetPackedHeight(double height) Set packed bed height [m].voidsetPackingPreset(String preset) Set packing preset (for packed columns).voidsetStructuredPacking(boolean structured) Set whether packing is structured (default false = random).voidsetTraySpacing(double spacing) Set tray spacing [m].voidsetWeirHeight(double height) Set weir height [m].toJson()Get a comprehensive JSON report of column internals sizing.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger object for class. -
column
The distillation column to evaluate. -
internalsType
Internals type: "sieve", "valve", "bubble-cap", or "packed". -
traySpacing
private double traySpacingTray spacing [m] (for tray columns). -
weirHeight
private double weirHeightWeir height [m] (for tray columns). -
holeDiameter
private double holeDiameterHole diameter [mm] (for sieve trays). -
holeAreaFraction
private double holeAreaFractionHole area fraction (sieve trays). -
downcommerAreaFraction
private double downcommerAreaFractionDowncomer area fraction (tray columns). -
designFloodFraction
private double designFloodFractionDesign flooding fraction (0-1). -
packingPreset
Packing preset name (for packed columns). -
structuredPacking
private boolean structuredPackingWhether the packing is structured. -
packedHeight
private double packedHeightPacked bed height [m] (for packed columns). -
columnDiameterOverride
private double columnDiameterOverrideColumn diameter override [m]. If > 0, use this instead of auto-sizing. -
trayResults
Per-tray hydraulics results (tray columns only). -
packingResult
Packing hydraulics result (packed columns only). -
controllingTrayIndex
private int controllingTrayIndexIndex of the controlling tray (highest loading). -
requiredDiameter
private double requiredDiameterRequired column diameter [m]. -
designOk
private boolean designOkOverall design verdict. -
averageTrayEfficiency
private double averageTrayEfficiencyOverall tray efficiency (O'Connell average). -
totalPressureDrop
private double totalPressureDropTotal column pressure drop [Pa]. -
maxPercentFlood
private double maxPercentFloodMaximum percent flooding across all trays. -
minPercentFlood
private double minPercentFloodMinimum percent flooding across all trays (turndown check).
-
-
Constructor Details
-
ColumnInternalsDesigner
Constructor with column.- Parameters:
column- the converged distillation column
-
ColumnInternalsDesigner
public ColumnInternalsDesigner()Default constructor. Column must be set viasetColumn(DistillationColumn).
-
-
Method Details
-
setColumn
Set the distillation column.- Parameters:
column- the distillation column
-
setInternalsType
Set internals type: "sieve", "valve", "bubble-cap", or "packed".- Parameters:
type- internals type
-
setTraySpacing
public void setTraySpacing(double spacing) Set tray spacing [m].- Parameters:
spacing- tray spacing
-
setWeirHeight
public void setWeirHeight(double height) Set weir height [m].- Parameters:
height- weir height
-
setHoleDiameter
public void setHoleDiameter(double diameter) Set hole diameter [mm] (sieve trays).- Parameters:
diameter- hole diameter
-
setHoleAreaFraction
public void setHoleAreaFraction(double fraction) Set hole area fraction (sieve trays, 0.05-0.16).- Parameters:
fraction- hole area fraction
-
setDowncommerAreaFraction
public void setDowncommerAreaFraction(double fraction) Set downcomer area fraction (0.08-0.12).- Parameters:
fraction- downcomer area fraction
-
setDesignFloodFraction
public void setDesignFloodFraction(double fraction) Set design flooding fraction (typical 0.70-0.85 for trays, 0.65-0.75 for packing).- Parameters:
fraction- design flooding fraction
-
setPackingPreset
Set packing preset (for packed columns).- Parameters:
preset- packing name (e.g., "Pall-Ring-50", "Mellapak-250Y")
-
setStructuredPacking
public void setStructuredPacking(boolean structured) Set whether packing is structured (default false = random).- Parameters:
structured- true for structured packing
-
setPackedHeight
public void setPackedHeight(double height) Set packed bed height [m].- Parameters:
height- packed bed height
-
setColumnDiameterOverride
public void setColumnDiameterOverride(double diameter) Override column diameter [m]. Set to -1 for auto-sizing.- Parameters:
diameter- column diameter or -1 for auto
-
calculate
public void calculate()Run all internals sizing calculations.For tray columns, evaluates hydraulics on EVERY tray, finds the controlling tray, and sizes the column diameter. For packed columns, runs the packing hydraulics calculator.
-
calculateTrayed
private void calculateTrayed()Calculate internals for tray columns. -
calculatePacked
private void calculatePacked()Calculate internals for packed columns. -
getTrayFlows
Extract vapor and liquid mass flow rates from a tray [kg/s].- Parameters:
tray- the tray to query- Returns:
- array {vaporMassFlow, liquidMassFlow} in kg/s
-
getTrayProperties
Extract physical properties from a tray's fluid.- Parameters:
tray- the tray to query- Returns:
- array {vaporDensity, liquidDensity, liquidViscosity, surfaceTension, relativeVolatility} in SI units
-
getRequiredDiameter
public double getRequiredDiameter()Get the required column diameter [m].- Returns:
- required diameter
-
isDesignOk
public boolean isDesignOk()Check if the overall design is feasible.- Returns:
- true if all tray/packing checks pass
-
getControllingTrayIndex
public int getControllingTrayIndex()Get the controlling tray index.- Returns:
- index of the tray with highest vapor loading
-
getTrayResults
Get the per-tray results list.- Returns:
- list of TrayHydraulicsCalculator results (one per tray)
-
getPackingResult
Get the packing result calculator.- Returns:
- PackingHydraulicsCalculator or null if tray column
-
getMaxPercentFlood
public double getMaxPercentFlood()Get maximum percent flooding across all trays.- Returns:
- max percent flood
-
getMinPercentFlood
public double getMinPercentFlood()Get minimum percent flooding across all trays.- Returns:
- min percent flood
-
getAverageTrayEfficiency
public double getAverageTrayEfficiency()Get the average tray efficiency (O'Connell).- Returns:
- average efficiency (0-1)
-
getTotalPressureDrop
public double getTotalPressureDrop()Get total column pressure drop [Pa].- Returns:
- total pressure drop
-
getTotalPressureDropMbar
public double getTotalPressureDropMbar()Get total column pressure drop [mbar].- Returns:
- total pressure drop in mbar
-
toJson
Get a comprehensive JSON report of column internals sizing.- Returns:
- JSON string with full internals design results
-