Class GasScrubberMechanicalDesign
- All Implemented Interfaces:
Serializable
GasScrubberMechanicalDesign class.
- Version:
- $Id: $Id
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class SeparatorMechanicalDesign
SeparatorMechanicalDesign.SeparatorValidationResult -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ConformityRuleSetActive conformity rule set, null if none set.private doubleCyclone deck elevation from bottom of vessel [m].private doubleFraction of cyclone dp to drain chamber [%].private doubleCyclone Euler number (total dp vs rho*v^2).private doubleCyclone tube length [m].private doubleDemisting cyclone inner diameter [m].private doubleDrain pipe inner diameter [m].private booleanWhether demisting cyclones are installed.private booleanWhether inlet cyclones are installed.private booleanWhether mesh pad is installed (above inlet, below cyclones).private booleanWhether vane pack is installed.private doubleInlet cyclone inner diameter [m].private doubleLA(H) — High level alarm elevation from BTL [m].private doubleLA(HH) — High-High level alarm elevation from BTL [m].private doubleLA(L) — Low level alarm elevation from BTL [m].private doubleLA(LL) — Low-Low level alarm elevation from BTL [m].(package private) static org.apache.logging.log4j.LoggerLogger object for class.private doubleMesh pad area [m2].private doubleMesh pad thickness [mm].private intNumber of demisting cyclones.private intNumber of inlet cyclones.private static final longSerialization version UID.private doubleVane pack area [m2].Fields inherited from class SeparatorMechanicalDesign
Fg, gasLoadFactor, retentionTime, volumeSafetyFactorFields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignCv, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignPressureDrop, maxDesignVelocity, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, outerDiameter, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for GasScrubberMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidappendRow(StringBuilder sb, String label, String value) Appends a formatted row to the text report.voidcalcDesign.Runs all applicable conformity checks using the current operating state.Gets the active conformity rule set name, or null if none is set.doubleGets the cyclone deck elevation.doubleGets the fraction of cyclone dp to drain chamber.doubleGets the cyclone Euler number for total pressure drop.doubleGets the cyclone tube length.doubleGets the demisting cyclone inner diameter.doubleGets the drain pipe inner diameter.doubleDeprecated.doubleGets the inlet cyclone inner diameter.doubleGets the LA(H) elevation from BTL.doubleGets the LA(HH) elevation from BTL.doubleGets the LA(L) elevation from BTL.doubleGets the LA(LL) elevation from BTL.doubleGets the mesh pad area.doubleGets the mesh pad thickness.intGets the number of demisting cyclones.intGets the number of inlet cyclones.Get the mechanical design response object.doubleGets the vane pack area.booleanWhether demisting cyclones are installed.booleanWhether inlet cyclones are installed.booleanWhether mesh pad is installed.booleanWhether vane pack is installed.voidreadDesignSpecifications.voidsetConformityRules(String standardName) Sets the conformity standard to use for checking.voidsetCycloneDeckElevationM(double elevationM) Sets the cyclone deck elevation.voidsetCycloneDpToDrainPct(double pct) Sets the fraction of cyclone dp to drain chamber.voidsetCycloneEulerNumber(double eulerNumber) Sets the cyclone Euler number.voidsetCycloneLengthM(double lengthM) Sets the cyclone tube length.voidsetDemistingCyclones(int numberOfCyclones, double cycloneDiameterM, double deckElevationM) Configures the demisting cyclones.voidsetDemistingCyclones(int numberOfCyclones, double cycloneDiameterM, double deckElevationM, double cycloneLengthM) Configures the demisting cyclones with tube length.voidsetDesign.voidsetDrainPipeDiameterM(double diameterM) Sets the drain pipe inner diameter.voidsetHhllElevationM(double elevationM) Deprecated.usesetLaHHElevationM(double)insteadvoidsetInletCyclones(int numberOfCyclones, double cycloneDiameterM) Configures the inlet cyclones.voidsetInletDevice(String deviceTypeName) Sets the inlet device type by name string.voidsetLaHElevationM(double elevationM) Sets the LA(H) — High level alarm elevation from BTL.voidsetLaHHElevationM(double elevationM) Sets the LA(HH) — High-High level alarm elevation from BTL.voidsetLaLElevationM(double elevationM) Sets the LA(L) — Low level alarm elevation from BTL.voidsetLaLLElevationM(double elevationM) Sets the LA(LL) — Low-Low level alarm elevation from BTL.voidsetMeshPad(double areaM2, double thicknessMm) Configures the mesh pad.voidsetVanePack(double areaM2) Configures the vane pack.Generates a formatted text report of the scrubber mechanical design configuration.Methods inherited from class SeparatorMechanicalDesign
addSeparatorSection, applyDemistingInternal, calcGasOutletNozzleID, calcInletNozzleID, calcLiquidRetentionTime, calcLiquidVolumeAtLevel, calcOilOutletNozzleID, calcSurgeTime, calcSurgeVolume, calculateDefaultLevelFractions, calculateDesignPressure, calculateDesignTemperature, calculateEffectiveLengthsFromInternals, calculateFoamAdjustedVolume, calculateMinDesignTemperature, calculateSoudersBrownVelocity, calculateStokesVelocity, displayResults, getBootVolume, getDemisterPressureDrop, getDemisterThickness, getDemisterType, getDemisterVoidFraction, getDemisterWireDiameter, getDesignPressureMargin, getDesignSummary, getDesignTemperatureMarginC, getDropletDiameterGasLiquid, getDropletDiameterLiquidLiquid, getEffectiveLengthGas, getEffectiveLengthLiquid, getEntrainmentDetailJson, getFg, getFoamAllowanceFactor, getGasCarryUnderCalibrationFactor, getGasInOilFraction, getGasInWaterFraction, getGasLoadFactor, getGasOutletNozzleID, getHHLL, getHHLLFraction, getHIL, getHILFraction, getHLL, getHLLFraction, getInletDeviceKFactor, getInletNozzleID, getInletPipeDiameter, getInletToGasDemister, getInletToPerforatedPlate, getKFactorUtilization, getLIL, getLILFraction, getLiquidInGasCalibrationFactor, getLiquidLiquidCalibrationFactor, getLLL, getLLLFraction, getLLLL, getLLLLFraction, getMaxGasVelocityLimit, getMaxLiquidVelocity, getMinDesignTemperatureC, getMinOilRetentionTime, getMinWaterRetentionTime, getMistEliminatorDpCoeff, getMistEliminatorEfficiency, getMistEliminatorThickness, getNIL, getNILFraction, getNLL, getNLLFraction, getOilInGasFraction, getOilInWaterFraction, getOilOutletNozzleID, getOverallGasLiquidEfficiency, getPerforatedPlateToWeir, getRetentionTime, getSeparatorSection, getSeparatorSection, getSeparatorSections, getVolumeSafetyFactor, getWaterInGasFraction, getWaterInOilFraction, getWaterOutletNozzleID, getWeirFraction, getWeirHeight, getWeirHeightAbsolute, getWeirLength, isDetailedEntrainmentUsed, isMistEliminatorFlooded, loadProcessDesignParameters, performSizingCalculations, setAllLiquidLevelsFromHeights, setBootVolume, setDemisterPressureDrop, setDemisterThickness, setDemisterType, setDemisterVoidFraction, setDemisterWireDiameter, setDesignPressureMargin, setDesignTemperatureMarginC, setDropletDiameterGasLiquid, setDropletDiameterLiquidLiquid, setEffectiveLengthGas, setEffectiveLengthLiquid, setFg, setFoamAllowanceFactor, setFromDesignSpec, setFromExistingDesign, setFromExistingDesign, setGasLiquidSurfaceTension, setGasLoadFactor, setGasOutletNozzleID, setHHLLFraction, setHILFraction, setHLLFraction, setInletDeviceKFactor, setInletDeviceType, setInletNozzleID, setInletPipeDiameter, setInletToGasDemister, setInletToPerforatedPlate, setInterfaceLevelsFromHeights, setLILFraction, setLiquidLevelsFromHeights, setLLLFraction, setLLLLFraction, setMaxGasVelocityLimit, setMaxLiquidVelocity, setMinDesignTemperatureC, setMinOilRetentionTime, setMinWaterRetentionTime, setMistEliminatorDpCoeff, setMistEliminatorThickness, setNILFraction, setNLLFraction, setOilOutletNozzleID, setPerforatedPlateToWeir, setRetentionTime, setVolumeSafetyFactor, setWaterOutletNozzleID, setWeirFraction, setWeirHeightAbsolute, setWeirLength, toJson, validateDesign, validateDesignComprehensive, validateDropletDiameter, validateGasVelocity, validateLiquidVelocity, validateRetentionTimeMethods inherited from class MechanicalDesign
addDesignDataSource, calculateCostEstimate, costEstimateToJson, equals, generateBillOfMaterials, getApplicableStandards, getBareModuleCost, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getDuty, getGrassRootsCost, getHeatTransferArea, getInnerDiameter, getInstallationManHours, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignCv, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignPressureDrop, getMaxDesignVelocity, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getOuterDiameter, getPower, getPressureMarginFactor, getProcessEquipment, getPurchasedEquipmentCost, getRecommendedStandards, getTantanLength, getTensileStrength, getTotalModuleCost, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setCostEstimateCepci, setCostEstimateLocationFactor, setCostEstimateMaterial, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignCv, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignPressureDrop, setMaxDesignVelocity, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setOuterDiameter, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
static org.apache.logging.log4j.Logger loggerLogger object for class. -
hasInletCyclones
private boolean hasInletCyclonesWhether inlet cyclones are installed. -
numberOfInletCyclones
private int numberOfInletCyclonesNumber of inlet cyclones. -
inletCycloneDiameterM
private double inletCycloneDiameterMInlet cyclone inner diameter [m]. -
hasDemistingCyclones
private boolean hasDemistingCyclonesWhether demisting cyclones are installed. -
numberOfDemistingCyclones
private int numberOfDemistingCyclonesNumber of demisting cyclones. -
demistingCycloneDiameterM
private double demistingCycloneDiameterMDemisting cyclone inner diameter [m]. -
cycloneDeckElevationM
private double cycloneDeckElevationMCyclone deck elevation from bottom of vessel [m]. -
cycloneLengthM
private double cycloneLengthMCyclone tube length [m]. -
cycloneEulerNumber
private double cycloneEulerNumberCyclone Euler number (total dp vs rho*v^2). -
cycloneDpToDrainPct
private double cycloneDpToDrainPctFraction of cyclone dp to drain chamber [%]. -
hasMeshPad
private boolean hasMeshPadWhether mesh pad is installed (above inlet, below cyclones). -
meshPadAreaM2
private double meshPadAreaM2Mesh pad area [m2]. -
meshPadThicknessMm
private double meshPadThicknessMmMesh pad thickness [mm]. -
hasVanePack
private boolean hasVanePackWhether vane pack is installed. -
vanePackAreaM2
private double vanePackAreaM2Vane pack area [m2]. -
drainPipeDiameterM
private double drainPipeDiameterMDrain pipe inner diameter [m]. -
laLLElevationM
private double laLLElevationMLA(LL) — Low-Low level alarm elevation from BTL [m]. -
laLElevationM
private double laLElevationMLA(L) — Low level alarm elevation from BTL [m]. -
laHElevationM
private double laHElevationMLA(H) — High level alarm elevation from BTL [m]. Required for cyclone drainage calc. -
laHHElevationM
private double laHHElevationMLA(HH) — High-High level alarm elevation from BTL [m]. -
conformityRuleSet
Active conformity rule set, null if none set.
-
-
Constructor Details
-
GasScrubberMechanicalDesign
Constructor for GasScrubberMechanicalDesign.
- Parameters:
equipment- aProcessEquipmentInterfaceobject
-
-
Method Details
-
readDesignSpecifications
public void readDesignSpecifications()readDesignSpecifications.
- Overrides:
readDesignSpecificationsin classSeparatorMechanicalDesign
-
calcDesign
-
setDesign
-
setConformityRules
Sets the conformity standard to use for checking.This also enables the corresponding capacity constraints on the scrubber, so that the optimizer and capacity reporting use the same criteria.
- Parameters:
standardName- the standard identifier: "TR3500", "API-12J", "Shell-DEP", "NORSOK-P002"
-
checkConformity
Runs all applicable conformity checks using the current operating state.The scrubber must have been run (process simulation) before calling this method, so that the fluid state reflects current operating conditions.
- Returns:
- a conformity report with all check results
- Throws:
IllegalStateException- if no conformity rules have been set
-
getConformityStandard
Gets the active conformity rule set name, or null if none is set.- Returns:
- the standard name, or null
-
setInletDevice
Sets the inlet device type by name string.Accepted names (case-insensitive): "schoepentoeter", "inlet_vane", "inlet_cyclone", "deflector_plate", "half_pipe", "impingement_plate", "none".
- Parameters:
deviceTypeName- the inlet device type name- Throws:
IllegalArgumentException- if the name does not match any known device type
-
setInletCyclones
public void setInletCyclones(int numberOfCyclones, double cycloneDiameterM) Configures the inlet cyclones.- Parameters:
numberOfCyclones- number of inlet cyclonescycloneDiameterM- inlet cyclone inner diameter [m]
-
hasInletCyclones
public boolean hasInletCyclones()Whether inlet cyclones are installed.- Returns:
- true if inlet cyclones are configured
-
getNumberOfInletCyclones
public int getNumberOfInletCyclones()Gets the number of inlet cyclones.- Returns:
- number of inlet cyclones
-
getInletCycloneDiameterM
public double getInletCycloneDiameterM()Gets the inlet cyclone inner diameter.- Returns:
- cyclone diameter [m]
-
setDemistingCyclones
public void setDemistingCyclones(int numberOfCyclones, double cycloneDiameterM, double deckElevationM) Configures the demisting cyclones.- Parameters:
numberOfCyclones- number of demisting cyclonescycloneDiameterM- demisting cyclone inner diameter [m]deckElevationM- cyclone deck elevation from bottom of vessel [m]
-
setDemistingCyclones
public void setDemistingCyclones(int numberOfCyclones, double cycloneDiameterM, double deckElevationM, double cycloneLengthM) Configures the demisting cyclones with tube length.- Parameters:
numberOfCyclones- number of demisting cyclonescycloneDiameterM- demisting cyclone inner diameter [m]deckElevationM- cyclone deck elevation from bottom of vessel [m]cycloneLengthM- cyclone tube length [m]
-
hasDemistingCyclones
public boolean hasDemistingCyclones()Whether demisting cyclones are installed.- Returns:
- true if demisting cyclones are configured
-
getNumberOfDemistingCyclones
public int getNumberOfDemistingCyclones()Gets the number of demisting cyclones.- Returns:
- number of demisting cyclones
-
getDemistingCycloneDiameterM
public double getDemistingCycloneDiameterM()Gets the demisting cyclone inner diameter.- Returns:
- cyclone diameter [m]
-
getCycloneDeckElevationM
public double getCycloneDeckElevationM()Gets the cyclone deck elevation.- Returns:
- deck elevation from bottom of vessel [m]
-
setCycloneDeckElevationM
public void setCycloneDeckElevationM(double elevationM) Sets the cyclone deck elevation.- Parameters:
elevationM- deck elevation from bottom of vessel [m]
-
getCycloneLengthM
public double getCycloneLengthM()Gets the cyclone tube length.- Returns:
- cyclone tube length [m]
-
setCycloneLengthM
public void setCycloneLengthM(double lengthM) Sets the cyclone tube length.- Parameters:
lengthM- cyclone tube length [m]
-
getCycloneEulerNumber
public double getCycloneEulerNumber()Gets the cyclone Euler number for total pressure drop.- Returns:
- Euler number (dp vs rho*v^2, not 0.5*rho*v^2)
-
setCycloneEulerNumber
public void setCycloneEulerNumber(double eulerNumber) Sets the cyclone Euler number.- Parameters:
eulerNumber- Euler number for total dp
-
getCycloneDpToDrainPct
public double getCycloneDpToDrainPct()Gets the fraction of cyclone dp to drain chamber.- Returns:
- fraction [%]
-
setCycloneDpToDrainPct
public void setCycloneDpToDrainPct(double pct) Sets the fraction of cyclone dp to drain chamber.- Parameters:
pct- fraction [%]
-
setMeshPad
public void setMeshPad(double areaM2, double thicknessMm) Configures the mesh pad.- Parameters:
areaM2- mesh pad area [m2]thicknessMm- mesh pad thickness [mm]
-
hasMeshPad
public boolean hasMeshPad()Whether mesh pad is installed.- Returns:
- true if mesh pad is configured
-
getMeshPadAreaM2
public double getMeshPadAreaM2()Gets the mesh pad area.- Returns:
- mesh pad area [m2]
-
getMeshPadThicknessMm
public double getMeshPadThicknessMm()Gets the mesh pad thickness.- Returns:
- mesh pad thickness [mm]
-
setVanePack
public void setVanePack(double areaM2) Configures the vane pack.- Parameters:
areaM2- vane pack area [m2]
-
hasVanePack
public boolean hasVanePack()Whether vane pack is installed.- Returns:
- true if vane pack is configured
-
getVanePackAreaM2
public double getVanePackAreaM2()Gets the vane pack area.- Returns:
- vane pack area [m2]
-
setDrainPipeDiameterM
public void setDrainPipeDiameterM(double diameterM) Sets the drain pipe inner diameter.- Parameters:
diameterM- drain pipe ID [m]
-
getDrainPipeDiameterM
public double getDrainPipeDiameterM()Gets the drain pipe inner diameter.- Returns:
- drain pipe ID [m]
-
setLaLLElevationM
public void setLaLLElevationM(double elevationM) Sets the LA(LL) — Low-Low level alarm elevation from BTL.- Parameters:
elevationM- LA(LL) elevation [m]
-
getLaLLElevationM
public double getLaLLElevationM()Gets the LA(LL) elevation from BTL.- Returns:
- LA(LL) elevation [m]
-
setLaLElevationM
public void setLaLElevationM(double elevationM) Sets the LA(L) — Low level alarm elevation from BTL.- Parameters:
elevationM- LA(L) elevation [m]
-
getLaLElevationM
public double getLaLElevationM()Gets the LA(L) elevation from BTL.- Returns:
- LA(L) elevation [m]
-
setLaHElevationM
public void setLaHElevationM(double elevationM) Sets the LA(H) — High level alarm elevation from BTL. Required when demisting cyclones are present for drainage height conformity check.- Parameters:
elevationM- LA(H) elevation [m]
-
getLaHElevationM
public double getLaHElevationM()Gets the LA(H) elevation from BTL.- Returns:
- LA(H) elevation [m]
-
setLaHHElevationM
public void setLaHHElevationM(double elevationM) Sets the LA(HH) — High-High level alarm elevation from BTL.- Parameters:
elevationM- LA(HH) elevation [m]
-
getLaHHElevationM
public double getLaHHElevationM()Gets the LA(HH) elevation from BTL.- Returns:
- LA(HH) elevation [m]
-
setHhllElevationM
Deprecated.usesetLaHHElevationM(double)insteadSets the HHLL elevation from bottom of vessel. Kept for backward compatibility; prefersetLaHElevationM(double)for drainage calculations.- Parameters:
elevationM- HHLL elevation [m]
-
getHhllElevationM
Deprecated.usegetLaHHElevationM()insteadGets the HHLL elevation from bottom of vessel. Kept for backward compatibility.- Returns:
- HHLL elevation [m]
-
getResponse
Get the mechanical design response object.This method returns a
MechanicalDesignResponseobject that can be further customized or combined with other data before serialization.Returns a separator-specific response with additional fields for vessel sizing, internals, and process design data.
Overrides to populate scrubber-specific parameters (internals, elevations) into the JSON response.- Overrides:
getResponsein classSeparatorMechanicalDesign- Returns:
- MechanicalDesignResponse object
-
toTextReport
Generates a formatted text report of the scrubber mechanical design configuration. Shows vessel geometry, internals, elevations, and liquid levels in a readable table format.- Returns:
- formatted text report string
-
appendRow
Appends a formatted row to the text report.- Parameters:
sb- the StringBuilder to append tolabel- the row labelvalue- the row value
-
getLaHHElevationM()instead