Class Crystallizer
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.separator.Crystallizer
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Crystallizer for producing solid crystals from solution.
Models a crystallization process where dissolved solutes are brought out of solution as solid crystals. Supports cooling crystallization (reducing temperature), evaporative crystallization (removing solvent), and anti-solvent crystallization.
The crystallizer operates by flashing the feed at reduced temperature and/or pressure to concentrate the solution beyond the saturation point, causing crystallization. NeqSim's solid phase equilibrium capabilities (TPSolidflash) are leveraged when available.
Usage example:
Crystallizer cryst = new Crystallizer("Sugar Crystallizer", feedStream);
cryst.setCrystallizationType("cooling");
cryst.setOutletTemperature(273.15 + 30.0); // cool to 30 C
cryst.setSolidRecovery(0.85); // 85% of solute crystallizes
cryst.run();
StreamInterface crystals = cryst.getCrystalStream();
StreamInterface motherLiquor = cryst.getMotherLiquorStream();
- Version:
- 1.0
- Author:
- NeqSim team
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringType of crystallization: "cooling", "evaporative", "antisolvent".private doubleCrystal purity (mass fraction of target in crystals).private StreamInterfaceCrystal (solid) outlet stream.private doubleHeat duty for cooling/heating in Watts.private StreamInterfaceInlet feed stream.private static final org.apache.logging.log4j.LoggerLogger object for class.private StreamInterfaceMother liquor (liquid) outlet stream.private doubleOutlet pressure in bara.private doubleOutlet temperature in Kelvin.private doubleResidence time in hours.private static final longSerialization version UID.private doubleSolid recovery fraction of the target solute (0-1).private StringName of the target solute to crystallize.private doubleVessel volume in m3.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
ConstructorsConstructorDescriptionCrystallizer(String name) Constructor for Crystallizer.Crystallizer(String name, StreamInterface inletStream) Constructor for Crystallizer with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionGet the crystallization type.doubleGet the crystal purity.Get the crystal (solid) outlet stream.doubleGet the heat duty.Get the inlet stream.Returns all inlet streams connected to this equipment.Get the mother liquor outlet stream.doubleGet the outlet pressure.Returns all outlet streams produced by this equipment.doubleGet the outlet temperature in Kelvin.doubleGet the residence time.doubleGet the solid recovery fraction.Get the target solute name.doubleGet the vessel volume.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetCrystallizationType(String type) Set the crystallization type.voidsetCrystalPurity(double purity) Set the crystal purity.voidsetInletStream(StreamInterface inletStream) Set the inlet stream.voidsetOutletPressure(double pressureBara) Set the outlet pressure (for evaporative crystallization).voidsetOutletTemperature(double temperatureK) Set the outlet temperature.voidsetOutletTemperature(double temperature, String unit) Set the outlet temperature with unit.voidsetResidenceTime(double hours) Set the residence time.voidsetSolidRecovery(double recovery) Set the solid recovery fraction.voidsetTargetSolute(String componentName) Set the target solute to crystallize.voidsetVesselVolume(double volumeM3) Set the vessel volume.toJson()Serializes the Process Equipment along with its state to a JSON string.toMap()Get a map representation of the crystallizer.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. -
crystalStream
Crystal (solid) outlet stream. -
motherLiquorStream
Mother liquor (liquid) outlet stream. -
crystallizationType
Type of crystallization: "cooling", "evaporative", "antisolvent". -
outletTemperature
private double outletTemperatureOutlet temperature in Kelvin. Used for cooling crystallization. -
outletPressure
private double outletPressureOutlet pressure in bara. Used for evaporative crystallization. -
solidRecovery
private double solidRecoverySolid recovery fraction of the target solute (0-1). -
targetSolute
Name of the target solute to crystallize. -
crystalPurity
private double crystalPurityCrystal purity (mass fraction of target in crystals). -
residenceTime
private double residenceTimeResidence time in hours. -
vesselVolume
private double vesselVolumeVessel volume in m3. -
heatDuty
private double heatDutyHeat duty for cooling/heating in Watts.
-
-
Constructor Details
-
Crystallizer
Constructor for Crystallizer.- Parameters:
name- name of the crystallizer
-
Crystallizer
Constructor for Crystallizer with inlet stream.- Parameters:
name- name of the crystallizerinletStream- the feed stream
-
-
Method Details
-
setInletStream
Set the inlet stream.- Parameters:
inletStream- the feed stream
-
getInletStream
-
getCrystalStream
Get the crystal (solid) outlet stream.- Returns:
- crystal stream
-
getMotherLiquorStream
Get the mother liquor outlet stream.- Returns:
- mother liquor 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)
-
setCrystallizationType
Set the crystallization type.- Parameters:
type- "cooling", "evaporative", or "antisolvent"
-
getCrystallizationType
-
setOutletTemperature
public void setOutletTemperature(double temperatureK) Set the outlet temperature.- Parameters:
temperatureK- temperature in Kelvin
-
setOutletTemperature
Set the outlet temperature with unit.- Parameters:
temperature- temperature valueunit- temperature unit ("K", "C", "F")
-
getOutletTemperature
public double getOutletTemperature()Get the outlet temperature in Kelvin.- Returns:
- outlet temperature
-
setOutletPressure
public void setOutletPressure(double pressureBara) Set the outlet pressure (for evaporative crystallization).- Parameters:
pressureBara- pressure in bara
-
getOutletPressure
public double getOutletPressure()Get the outlet pressure.- Returns:
- pressure in bara
-
setSolidRecovery
public void setSolidRecovery(double recovery) Set the solid recovery fraction.- Parameters:
recovery- fraction of solute that crystallizes (0-1)
-
getSolidRecovery
public double getSolidRecovery()Get the solid recovery fraction.- Returns:
- solid recovery
-
setTargetSolute
Set the target solute to crystallize.- Parameters:
componentName- name of the component to crystallize
-
getTargetSolute
-
setCrystalPurity
public void setCrystalPurity(double purity) Set the crystal purity.- Parameters:
purity- mass fraction of target in crystals (0-1)
-
getCrystalPurity
public double getCrystalPurity()Get the crystal purity.- Returns:
- crystal purity
-
setResidenceTime
public void setResidenceTime(double hours) Set the residence time.- Parameters:
hours- residence time in hours
-
getResidenceTime
public double getResidenceTime()Get the residence time.- Returns:
- residence time in hours
-
setVesselVolume
public void setVesselVolume(double volumeM3) Set the vessel volume.- Parameters:
volumeM3- vessel volume in m3
-
getVesselVolume
public double getVesselVolume()Get the vessel volume.- Returns:
- vessel volume in m3
-
getHeatDuty
public double getHeatDuty()Get the heat duty.- Returns:
- heat duty in Watts
-
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
-