Class LiquidLiquidExtractor
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.separator.LiquidLiquidExtractor
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
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 Summary
FieldsModifier and TypeFieldDescriptionprivate StreamInterfaceExtract stream (solvent-rich phase containing extracted solute).private StreamInterfaceFeed stream (aqueous or original phase).private MixerInternal mixer for combining feed and solvent.private static final org.apache.logging.log4j.LoggerLogger object for class.private intNumber of theoretical stages.private doublePressure drop across extractor in bar.private StreamInterfaceRaffinate stream (feed-rich phase, depleted in solute).private doubleResidence time per stage in minutes.private static final longSerialization version UID.private StreamInterfaceSolvent stream (extraction solvent).private doubleOverall stage efficiency (0.0 to 1.0).Fields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionLiquidLiquidExtractor(String name) Constructor for LiquidLiquidExtractor.LiquidLiquidExtractor(String name, StreamInterface feedStream, StreamInterface solventStream) Constructor for LiquidLiquidExtractor with feed and solvent streams. -
Method Summary
Modifier and TypeMethodDescriptionGet the extract stream (solvent-rich phase).Get the feed stream.Returns all inlet streams connected to this equipment.intGet the number of theoretical stages.Returns all outlet streams produced by this equipment.doubleGet the pressure drop.Get the raffinate stream (feed-rich phase).doubleGet residence time per stage.Get the solvent stream.doubleGet the stage efficiency.private voidInitialize outlet streams from feed system.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetFeedStream(StreamInterface feedStream) Set the feed stream.voidsetNumberOfStages(int stages) Set the number of theoretical stages.voidsetPressureDrop(double dP) Set the pressure drop across the extractor.voidsetResidenceTimePerStage(double time) Set residence time per stage.voidsetSolventStream(StreamInterface solventStream) Set the solvent stream.voidsetStageEfficiency(double efficiency) Set the overall stage efficiency.toJson()Serializes the Process Equipment along with its state to a JSON string.toMap()Get a map representation of the extractor.Methods inherited from class ProcessEquipmentBaseClass
addCapacityConstraint, addController, copy, displayResult, equals, getAvailableMargin, getAvailableMarginPercent, getBottleneckConstraint, getCapacityConstraints, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMassBalance, getMaxUtilization, getMaxUtilizationPercent, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReferenceDesignation, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, getUtilizationSummary, hashCode, initElectricalDesign, initializeDefaultConstraints, initInstrumentDesign, initMechanicalDesign, isActive, isActive, isCapacityAnalysisEnabled, isCapacityExceeded, isFailed, isHardLimitExceeded, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solved, toJsonMethods 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 NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getElectricalDesign, getEquipmentState, getExergyChange, getExergyDestruction, getExergyDestruction, getFluid, getInstrumentDesign, getOperatingEnvelopeViolation, getOutletFlowRate, getOutletPressure, getOutletTemperature, getReferenceDesignationString, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculation, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime
-
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. -
feedStream
Feed stream (aqueous or original phase). -
solventStream
Solvent stream (extraction solvent). -
extractStream
Extract stream (solvent-rich phase containing extracted solute). -
raffinateStream
Raffinate stream (feed-rich phase, depleted in solute). -
inletMixer
Internal mixer for combining feed and solvent. -
numberOfStages
private int numberOfStagesNumber of theoretical stages. -
stageEfficiency
private double stageEfficiencyOverall stage efficiency (0.0 to 1.0). -
pressureDrop
private double pressureDropPressure drop across extractor in bar. -
residenceTimePerStage
private double residenceTimePerStageResidence time per stage in minutes.
-
-
Constructor Details
-
LiquidLiquidExtractor
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 extractorfeedStream- the feed streamsolventStream- the solvent stream
-
-
Method Details
-
setFeedStream
Set the feed stream.- Parameters:
feedStream- the feed stream
-
setSolventStream
Set the solvent stream.- Parameters:
solventStream- the solvent stream
-
initOutletStreams
private void initOutletStreams()Initialize outlet streams from feed system. -
getFeedStream
-
getSolventStream
-
getExtractStream
Get the extract stream (solvent-rich phase).- Returns:
- extract stream
-
getRaffinateStream
Get the raffinate stream (feed-rich phase).- Returns:
- raffinate stream
-
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 withoutinstanceofchecks.- Returns:
- unmodifiable list of inlet streams (empty by default)
-
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 withoutinstanceofchecks.- 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
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
toJson
Serializes the Process Equipment along with its state to a JSON string.
- Specified by:
toJsonin interfaceProcessEquipmentInterface- Overrides:
toJsonin classProcessEquipmentBaseClass- Returns:
- json string.
-
toMap
-