Class CryogenicSeparator
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.separator.Separator
neqsim.process.equipment.separator.CryogenicSeparator
- All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, ProcessEquipmentInterface, SeparatorInterface, StateVectorProvider, ProcessElementInterface, SimulationInterface, NamedInterface
Cryogenic separator model with solid formation and freeze-out safety checks.
Extends the standard Separator for operation at cryogenic temperatures (below -50 C).
Adds safety checks for CO2 freeze-out, heavy hydrocarbon freeze-out, and ice formation that can
block equipment in LNG plants.
Key checks performed:
- CO2 solid formation risk (freeze-out below approximately -56.6 C at 1 atm)
- Benzene / aromatic freeze-out (freeze point 5.5 C but precipitates from LNG mixtures)
- Water ice formation if dehydration is insufficient
- Mercury amalgam risk at cold temperatures
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class Separator
Separator.Builder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanWhether CO2 freeze-out risk was detected.private doubleCO2 mole fraction in the feed.private booleanWhether heavy hydrocarbon freeze-out risk was detected.private static final org.apache.logging.log4j.Loggerprivate doubleMaximum allowable CO2 for cryogenic operation (mole fraction).private doubleMaximum allowable water for cryogenic operation (ppm molar).private static final longprivate booleanWhether solid phases were detected by thermodynamic flash.private booleanWhether water/ice formation risk was detected.Fields inherited from class Separator
DEFAULT_DROPLET_CUTSIZE_LIMIT, DEFAULT_INLET_MOMENTUM_LIMIT, DEFAULT_K_VALUE_LIMIT, DEFAULT_LIQUID_DENSITY_FOR_SIZING, DEFAULT_MIN_OIL_RETENTION_TIME, DEFAULT_MIN_WATER_RETENTION_TIME, electricalDesign, gasOutStream, gasSystem, gasVolume, inletStreamMixer, instrumentDesign, isInitTransient, liquidLevel, liquidOutStream, liquidSystem, liquidVolume, numberOfInputStreams, separatorMechanicalDesign, separatorSection, thermoSystem, thermoSystem2, thermoSystemCloned, waterSystemFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionCryogenicSeparator(String name) Constructor for CryogenicSeparator.CryogenicSeparator(String name, StreamInterface inletStream) Constructor for CryogenicSeparator with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcheckCO2Content(SystemInterface system, double operatingTempK) Check CO2 content against freeze-out limits.private voidcheckSolidFormation(SystemInterface system) Check for solid formation using thermodynamic solid flash.private voidcheckWaterContent(SystemInterface system, double operatingTempK) Check water content against ice formation limits.doubleGet the CO2 mole fraction in the feed.doubleGet the maximum allowable CO2 mole fraction.doubleGet the maximum allowable water content.booleanCheck if CO2 freeze-out risk was detected.booleanCheck if heavy hydrocarbon freeze-out risk was detected.booleanCheck if water/ice formation risk was detected.booleanCheck if any solid phase was detected.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetMaxCO2MolFrac(double maxFrac) Set the maximum allowable CO2 mole fraction for freeze-out prevention.voidsetMaxWaterPpm(double maxPpm) Set the maximum allowable water content.Methods inherited from class Separator
addCapacityConstraint, addSeparatorSection, addStream, autoSize, autoSize, autoSize, builder, calcDropletCutSize, calcDropletCutSizeAtHLL, calcGasAreaAboveLevel, calcGasVelocityAboveLevel, calcInletMomentumFlux, calcInletMomentumFlux, calcKValue, calcKValueAtHLL, calcLiquidVolume, calcOilRetentionTime, calcSegmentArea, calcWaterRetentionTime, clearCapacityConstraints, disableConstraint, disableConstraints, displayResult, enableConstraints, enforceHeadspace, equals, evaluateFireExposure, evaluateFireExposure, getBootVolume, getBottleneckConstraint, getCapacityConstraints, getCapacityDuty, getCapacityMax, getCapacityUtilization, getConstraintSummary, getDeRatedGasLoadFactor, getDeRatedGasLoadFactor, getDesignGasLoadFactor, getDesignLiquidLevelFraction, getEfficiency, getElectricalDesign, getEnabledConstraintNames, getEntropyProduction, getEquipmentState, getExergyChange, getExergyChange, getFeedStream, getGas, getGasCarryunderFraction, getGasLoadFactor, getGasLoadFactor, getGasOutStream, getGasSuperficialVelocity, getHeatDuty, getHeatDuty, getHeatInput, getHeatInput, getInletFlowRegime, getInletStreams, getInnerSurfaceArea, getInstrumentDesign, getInternalDiameter, getKFactor, getKFactorUtilization, getLiquid, getLiquidCarryoverFraction, getLiquidLevel, getLiquidOutStream, getMassBalance, getMaxAllowableGasFlowRate, getMaxAllowableGasVelocity, getMaxUtilization, getMechanicalDesign, getMistEliminatorDpCoeff, getMistEliminatorPressureDrop, getMistEliminatorThickness, getOperatingEnvelopeViolation, getOrientation, getOutletStreams, getPerformanceCalculator, getPerformanceSummary, getPressure, getPressureDrop, getResultTable, getSeparatorLength, getSeparatorSection, getSeparatorSection, getSeparatorSections, getSimulationValidationErrors, getSizingReport, getSizingReportJson, getStateVector, getThermoSystem, getUnwettedArea, getWeirHeight, getWeirLength, getWeirOverflowRate, getWettedArea, hasGeometry, hashCode, initDesignFromFlow, initElectricalDesign, initializeCapacityConstraints, initializeTransientCalculation, initInstrumentDesign, initMechanicalDesign, isAutoSized, isCapacityExceeded, isConstraintEnabled, isDetailedEntrainmentCalculation, isDropletCutSizeWithinLimit, isDropletCutSizeWithinLimit, isEnforceCapacityLimits, isEnhancedEntrainmentCalculation, isHardLimitExceeded, isInletMomentumWithinLimit, isInletMomentumWithinLimit, isKValueWithinLimit, isKValueWithinLimit, isMistEliminatorFlooded, isOilRetentionTimeAboveMinimum, isOilRetentionTimeAboveMinimum, isOverloaded, isSetHeatInput, isSimulationValid, isSinglePhase, isWaterRetentionTimeAboveMinimum, isWaterRetentionTimeAboveMinimum, isWithinAllLimits, isWithinOperatingEnvelope, levelFromVolume, liquidArea, removeCapacityConstraint, runTransient, setBootVolume, setDesignGasLoadFactor, setDesignLiquidLevelFraction, setDetailedEntrainmentCalculation, setDropletCutSizeLimit, setDuty, setDuty, setEfficiency, setEnforceCapacityLimits, setEnhancedEntrainmentCalculation, setEntrainment, setGasCarryunderFraction, setGasLiquidSurfaceTension, setHeatDuty, setHeatDuty, setHeatInput, setHeatInput, setInletDeviceType, setInletMomentumLimit, setInletPipeDiameter, setInletStream, setInternalDiameter, setKValueLimit, setLiquidCarryoverFraction, setLiquidLevel, setMinOilRetentionTime, setMinWaterRetentionTime, setMistEliminatorDpCoeff, setMistEliminatorThickness, setOrientation, setPerformanceCalculator, setPressureDrop, setSeparatorLength, setTempPres, setWeirHeight, setWeirLength, sizeFromFlow, toJson, toJson, updateEntrainmentForTransient, updateEntrainmentFromPerformanceCalculator, useAllConstraints, useAPIConstraints, useConstraints, useEquinorConstraints, useGasCapacityConstraints, useGasScrubberConstraints, useLiquidCapacityConstraints, validateSetupMethods inherited from class ProcessEquipmentBaseClass
addController, copy, getAvailableMargin, getAvailableMarginPercent, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getFailureMode, getMassBalance, getMaxUtilizationPercent, getMinimumFlow, getPressure, getProperty, getReferenceDesignation, getReport_json, getSpecification, getTemperature, getTemperature, getUtilizationSummary, initializeDefaultConstraints, isActive, isActive, isCapacityAnalysisEnabled, isFailed, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagNumber, setName, setTagNumberMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CapacityConstrainedEquipment
disableAllConstraints, enableAllConstraints, getAvailableMargin, getAvailableMarginPercent, getMaxUtilizationPercent, getUtilizationSummary, isCapacityAnalysisEnabled, isNearCapacityLimit, setCapacityAnalysisEnabledMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getExergyDestruction, getExergyDestruction, getFluid, getOutletFlowRate, getOutletPressure, getOutletTemperature, getReferenceDesignationString, getRestCapacity, needRecalculationMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, run_step, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime, solvedMethods inherited from interface StateVectorProvider
getStateDimension, getStateNames
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger logger -
co2FreezeOutRisk
private boolean co2FreezeOutRiskWhether CO2 freeze-out risk was detected. -
heavyHCFreezeOutRisk
private boolean heavyHCFreezeOutRiskWhether heavy hydrocarbon freeze-out risk was detected. -
waterIceRisk
private boolean waterIceRiskWhether water/ice formation risk was detected. -
co2MolFrac
private double co2MolFracCO2 mole fraction in the feed. -
maxCO2MolFrac
private double maxCO2MolFracMaximum allowable CO2 for cryogenic operation (mole fraction). -
maxWaterPpm
private double maxWaterPpmMaximum allowable water for cryogenic operation (ppm molar). -
solidPhaseDetected
private boolean solidPhaseDetectedWhether solid phases were detected by thermodynamic flash.
-
-
Constructor Details
-
CryogenicSeparator
Constructor for CryogenicSeparator.- Parameters:
name- name of the cryogenic separator
-
CryogenicSeparator
Constructor for CryogenicSeparator with inlet stream.- Parameters:
name- name of the cryogenic separatorinletStream- inlet stream
-
-
Method Details
-
setMaxCO2MolFrac
public void setMaxCO2MolFrac(double maxFrac) Set the maximum allowable CO2 mole fraction for freeze-out prevention.- Parameters:
maxFrac- maximum CO2 mole fraction (default 0.0001 = 100 ppm)
-
getMaxCO2MolFrac
public double getMaxCO2MolFrac()Get the maximum allowable CO2 mole fraction.- Returns:
- maximum CO2 mole fraction
-
setMaxWaterPpm
public void setMaxWaterPpm(double maxPpm) Set the maximum allowable water content.- Parameters:
maxPpm- maximum water content in ppm (molar)
-
getMaxWaterPpm
public double getMaxWaterPpm()Get the maximum allowable water content.- Returns:
- maximum water content in ppm (molar)
-
hasCO2FreezeOutRisk
public boolean hasCO2FreezeOutRisk()Check if CO2 freeze-out risk was detected.- Returns:
- true if CO2 freeze-out risk exists
-
hasHeavyHCFreezeOutRisk
public boolean hasHeavyHCFreezeOutRisk()Check if heavy hydrocarbon freeze-out risk was detected.- Returns:
- true if heavy HC freeze-out risk exists
-
hasWaterIceRisk
public boolean hasWaterIceRisk()Check if water/ice formation risk was detected.- Returns:
- true if water ice risk exists
-
isSolidPhaseDetected
public boolean isSolidPhaseDetected()Check if any solid phase was detected.- Returns:
- true if solid phase detected
-
getCO2MolFrac
public double getCO2MolFrac()Get the CO2 mole fraction in the feed.- Returns:
- CO2 mole fraction
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Specified by:
runin interfaceSimulationInterface- Overrides:
runin classSeparator- Parameters:
id- UUID
-
checkCO2Content
Check CO2 content against freeze-out limits.- Parameters:
system- fluid systemoperatingTempK- operating temperature in Kelvin
-
checkWaterContent
Check water content against ice formation limits.- Parameters:
system- fluid systemoperatingTempK- operating temperature in Kelvin
-
checkSolidFormation
Check for solid formation using thermodynamic solid flash.- Parameters:
system- fluid system to check
-