Class CryogenicSeparator

All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, ProcessEquipmentInterface, SeparatorInterface, StateVectorProvider, ProcessElementInterface, SimulationInterface, NamedInterface

public class CryogenicSeparator extends Separator
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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
    • co2FreezeOutRisk

      private boolean co2FreezeOutRisk
      Whether CO2 freeze-out risk was detected.
    • heavyHCFreezeOutRisk

      private boolean heavyHCFreezeOutRisk
      Whether heavy hydrocarbon freeze-out risk was detected.
    • waterIceRisk

      private boolean waterIceRisk
      Whether water/ice formation risk was detected.
    • co2MolFrac

      private double co2MolFrac
      CO2 mole fraction in the feed.
    • maxCO2MolFrac

      private double maxCO2MolFrac
      Maximum allowable CO2 for cryogenic operation (mole fraction).
    • maxWaterPpm

      private double maxWaterPpm
      Maximum allowable water for cryogenic operation (ppm molar).
    • solidPhaseDetected

      private boolean solidPhaseDetected
      Whether solid phases were detected by thermodynamic flash.
  • Constructor Details

    • CryogenicSeparator

      public CryogenicSeparator(String name)
      Constructor for CryogenicSeparator.
      Parameters:
      name - name of the cryogenic separator
    • CryogenicSeparator

      public CryogenicSeparator(String name, StreamInterface inletStream)
      Constructor for CryogenicSeparator with inlet stream.
      Parameters:
      name - name of the cryogenic separator
      inletStream - 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

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class Separator
      Parameters:
      id - UUID
    • checkCO2Content

      private void checkCO2Content(SystemInterface system, double operatingTempK)
      Check CO2 content against freeze-out limits.
      Parameters:
      system - fluid system
      operatingTempK - operating temperature in Kelvin
    • checkWaterContent

      private void checkWaterContent(SystemInterface system, double operatingTempK)
      Check water content against ice formation limits.
      Parameters:
      system - fluid system
      operatingTempK - operating temperature in Kelvin
    • checkSolidFormation

      private void checkSolidFormation(SystemInterface system)
      Check for solid formation using thermodynamic solid flash.
      Parameters:
      system - fluid system to check