Class MultiEffectEvaporator
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.heatexchanger.MultiEffectEvaporator
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Multi-effect evaporator for concentration of solutions.
Models a series of evaporator effects at decreasing pressures. Each effect uses the vapor from the previous effect as the heating medium, achieving significant steam economy. Commonly used in sugar refining, dairy processing, and bio-product concentration.
The model performs sequential flash calculations at decreasing pressures, removing vapor at each stage to concentrate the liquid product.
Usage example:
MultiEffectEvaporator evap = new MultiEffectEvaporator("MEE", feedStream);
evap.setNumberOfEffects(3);
evap.setFirstEffectPressure(2.0); // bara
evap.setLastEffectPressure(0.2); // bara
evap.setTargetConcentrationFactor(5.0); // 5x concentration
evap.run();
StreamInterface concentrate = evap.getConcentrateStream();
StreamInterface condensate = evap.getVaporCondensateStream();
- Version:
- 1.0
- Author:
- NeqSim team
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StreamInterfaceConcentrated liquid outlet stream.Pressures for each effect (calculated from first/last).private doublePressure of the first (highest pressure) effect in bara.private StreamInterfaceInlet feed stream.private doublePressure of the last (lowest pressure) effect in bara.private static final org.apache.logging.log4j.LoggerLogger object for class.private intNumber of evaporator effects.private doubleOverall heat transfer coefficient in W/(m2*K).private static final longSerialization version UID.private doubleTotal steam consumption in kg/hr (calculated).private doubleSteam economy (kg water evaporated / kg steam used).private doubleTarget concentration factor (ratio of feed to concentrate flow).private doubleTotal heat transfer area in m2 (calculated).private StreamInterfaceCombined vapor/condensate outlet stream.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
ConstructorsConstructorDescriptionMultiEffectEvaporator(String name) Constructor for MultiEffectEvaporator.MultiEffectEvaporator(String name, StreamInterface inletStream) Constructor for MultiEffectEvaporator with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCalculate the pressure distribution across effects using geometric spacing.Get the concentrated liquid outlet stream.doubleGet the first effect pressure.Get the inlet stream.Returns all inlet streams connected to this equipment.doubleGet the last effect pressure.intGet the number of effects.Returns all outlet streams produced by this equipment.doubleGet the overall heat transfer coefficient.doubleGet the steam consumption.doubleGet the steam economy.doubleGet the target concentration factor.doubleGet the total heat transfer area (calculated after run).Get the combined vapor condensate stream.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetFirstEffectPressure(double pressure) Set the first (highest) effect pressure.voidsetInletStream(StreamInterface inletStream) Set the inlet feed stream.voidsetLastEffectPressure(double pressure) Set the last (lowest) effect pressure.voidsetNumberOfEffects(int effects) Set the number of evaporator effects.voidsetOverallHeatTransferCoefficient(double u) Set the overall heat transfer coefficient.voidsetTargetConcentrationFactor(double factor) Set the target concentration factor.toJson()Serializes the Process Equipment along with its state to a JSON string.toMap()Get a map representation of the evaporator.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. -
inletStream
Inlet feed stream. -
concentrateStream
Concentrated liquid outlet stream. -
vaporCondensateStream
Combined vapor/condensate outlet stream. -
numberOfEffects
private int numberOfEffectsNumber of evaporator effects. -
firstEffectPressure
private double firstEffectPressurePressure of the first (highest pressure) effect in bara. -
lastEffectPressure
private double lastEffectPressurePressure of the last (lowest pressure) effect in bara. -
targetConcentrationFactor
private double targetConcentrationFactorTarget concentration factor (ratio of feed to concentrate flow). -
overallHeatTransferCoefficient
private double overallHeatTransferCoefficientOverall heat transfer coefficient in W/(m2*K). -
totalHeatTransferArea
private double totalHeatTransferAreaTotal heat transfer area in m2 (calculated). -
steamConsumption
private double steamConsumptionTotal steam consumption in kg/hr (calculated). -
steamEconomy
private double steamEconomySteam economy (kg water evaporated / kg steam used). -
effectPressures
-
-
Constructor Details
-
MultiEffectEvaporator
Constructor for MultiEffectEvaporator.- Parameters:
name- name of the evaporator
-
MultiEffectEvaporator
Constructor for MultiEffectEvaporator with inlet stream.- Parameters:
name- name of the evaporatorinletStream- the feed stream
-
-
Method Details
-
setInletStream
Set the inlet feed stream.- Parameters:
inletStream- the feed stream
-
getInletStream
-
getConcentrateStream
Get the concentrated liquid outlet stream.- Returns:
- concentrate stream
-
getVaporCondensateStream
Get the combined vapor condensate stream.- Returns:
- vapor condensate 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)
-
setNumberOfEffects
public void setNumberOfEffects(int effects) Set the number of evaporator effects.- Parameters:
effects- number of effects (1-7 typically)
-
getNumberOfEffects
public int getNumberOfEffects()Get the number of effects.- Returns:
- number of effects
-
setFirstEffectPressure
public void setFirstEffectPressure(double pressure) Set the first (highest) effect pressure.- Parameters:
pressure- pressure in bara
-
getFirstEffectPressure
public double getFirstEffectPressure()Get the first effect pressure.- Returns:
- pressure in bara
-
setLastEffectPressure
public void setLastEffectPressure(double pressure) Set the last (lowest) effect pressure.- Parameters:
pressure- pressure in bara
-
getLastEffectPressure
public double getLastEffectPressure()Get the last effect pressure.- Returns:
- pressure in bara
-
setTargetConcentrationFactor
public void setTargetConcentrationFactor(double factor) Set the target concentration factor.- Parameters:
factor- ratio of feed mass flow to concentrate mass flow
-
getTargetConcentrationFactor
public double getTargetConcentrationFactor()Get the target concentration factor.- Returns:
- concentration factor
-
setOverallHeatTransferCoefficient
public void setOverallHeatTransferCoefficient(double u) Set the overall heat transfer coefficient.- Parameters:
u- heat transfer coefficient in W/(m2*K)
-
getOverallHeatTransferCoefficient
public double getOverallHeatTransferCoefficient()Get the overall heat transfer coefficient.- Returns:
- U in W/(m2*K)
-
getTotalHeatTransferArea
public double getTotalHeatTransferArea()Get the total heat transfer area (calculated after run).- Returns:
- area in m2
-
getSteamEconomy
public double getSteamEconomy()Get the steam economy.- Returns:
- kg water evaporated per kg steam
-
getSteamConsumption
public double getSteamConsumption()Get the steam consumption.- Returns:
- steam consumption in kg/hr
-
calculateEffectPressures
private void calculateEffectPressures()Calculate the pressure distribution across effects using geometric spacing. -
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
-