Class LiquidLiquidExtractor

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class LiquidLiquidExtractor extends ProcessEquipmentBaseClass
Liquid-liquid extractor for separation of components between two immiscible liquid phases.

Models a single-stage or multi-stage liquid-liquid extraction unit. Takes a feed stream and a solvent stream, mixes them, and performs a liquid-liquid equilibrium (LLE) flash to separate into extract (solvent-rich) and raffinate (feed-rich) phases.

Leverages NeqSim's built-in LLE flash capabilities for thermodynamically rigorous phase separation.

Usage example:

LiquidLiquidExtractor lle = new LiquidLiquidExtractor("Extractor", feedStream, solventStream);
lle.setNumberOfStages(3);
lle.run();

StreamInterface extract = lle.getExtractStream();
StreamInterface raffinate = lle.getRaffinateStream();
Version:
1.0
Author:
NeqSim team
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Logger object for class.
    • feedStream

      private StreamInterface feedStream
      Feed stream (aqueous or original phase).
    • solventStream

      private StreamInterface solventStream
      Solvent stream (extraction solvent).
    • extractStream

      private StreamInterface extractStream
      Extract stream (solvent-rich phase containing extracted solute).
    • raffinateStream

      private StreamInterface raffinateStream
      Raffinate stream (feed-rich phase, depleted in solute).
    • inletMixer

      private Mixer inletMixer
      Internal mixer for combining feed and solvent.
    • numberOfStages

      private int numberOfStages
      Number of theoretical stages.
    • stageEfficiency

      private double stageEfficiency
      Overall stage efficiency (0.0 to 1.0).
    • pressureDrop

      private double pressureDrop
      Pressure drop across extractor in bar.
    • residenceTimePerStage

      private double residenceTimePerStage
      Residence time per stage in minutes.
  • Constructor Details

    • LiquidLiquidExtractor

      public LiquidLiquidExtractor(String name)
      Constructor for LiquidLiquidExtractor.
      Parameters:
      name - name of the extractor
    • LiquidLiquidExtractor

      public LiquidLiquidExtractor(String name, StreamInterface feedStream, StreamInterface solventStream)
      Constructor for LiquidLiquidExtractor with feed and solvent streams.
      Parameters:
      name - name of the extractor
      feedStream - the feed stream
      solventStream - the solvent stream
  • Method Details

    • setFeedStream

      public void setFeedStream(StreamInterface feedStream)
      Set the feed stream.
      Parameters:
      feedStream - the feed stream
    • setSolventStream

      public void setSolventStream(StreamInterface solventStream)
      Set the solvent stream.
      Parameters:
      solventStream - the solvent stream
    • initOutletStreams

      private void initOutletStreams()
      Initialize outlet streams from feed system.
    • getFeedStream

      public StreamInterface getFeedStream()
      Get the feed stream.
      Returns:
      feed stream
    • getSolventStream

      public StreamInterface getSolventStream()
      Get the solvent stream.
      Returns:
      solvent stream
    • getExtractStream

      public StreamInterface getExtractStream()
      Get the extract stream (solvent-rich phase).
      Returns:
      extract stream
    • getRaffinateStream

      public StreamInterface getRaffinateStream()
      Get the raffinate stream (feed-rich phase).
      Returns:
      raffinate stream
    • getInletStreams

      public List<StreamInterface> getInletStreams()
      Returns all inlet streams connected to this equipment. Subclasses override to report their specific inlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology without instanceof checks.
      Returns:
      unmodifiable list of inlet streams (empty by default)
    • getOutletStreams

      public List<StreamInterface> getOutletStreams()
      Returns all outlet streams produced by this equipment. Subclasses override to report their specific outlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology without instanceof checks.
      Returns:
      unmodifiable list of outlet streams (empty by default)
    • setNumberOfStages

      public void setNumberOfStages(int stages)
      Set the number of theoretical stages.
      Parameters:
      stages - number of stages (must be at least 1)
    • getNumberOfStages

      public int getNumberOfStages()
      Get the number of theoretical stages.
      Returns:
      number of stages
    • setStageEfficiency

      public void setStageEfficiency(double efficiency)
      Set the overall stage efficiency.
      Parameters:
      efficiency - efficiency between 0.0 and 1.0
    • getStageEfficiency

      public double getStageEfficiency()
      Get the stage efficiency.
      Returns:
      stage efficiency
    • setPressureDrop

      public void setPressureDrop(double dP)
      Set the pressure drop across the extractor.
      Parameters:
      dP - pressure drop in bar
    • getPressureDrop

      public double getPressureDrop()
      Get the pressure drop.
      Returns:
      pressure drop in bar
    • setResidenceTimePerStage

      public void setResidenceTimePerStage(double time)
      Set residence time per stage.
      Parameters:
      time - residence time in minutes
    • getResidenceTimePerStage

      public double getResidenceTimePerStage()
      Get residence time per stage.
      Returns:
      residence time in minutes
    • run

      public void run(UUID id)

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

      Parameters:
      id - UUID
    • toJson

      public String toJson()

      Serializes the Process Equipment along with its state to a JSON string.

      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Returns:
      json string.
    • toMap

      private Map<String,Object> toMap()
      Get a map representation of the extractor.
      Returns:
      map of properties