Class Hydrocyclone
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.separator.Separator
neqsim.process.equipment.watertreatment.Hydrocyclone
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SeparatorInterface, StateVectorProvider, SimulationInterface, NamedInterface
Hydrocyclone for produced water treatment.
Hydrocyclones use centrifugal force to separate oil droplets from water. The swirling flow creates a centrifugal force many times gravity, causing oil droplets to migrate to the center and exit through the reject stream.
Performance Characteristics
- d50 cut size: ~10-15 μm (50% removal efficiency)
- d100: ~20-30 μm (near 100% removal)
- Reject ratio: 1-3% of feed
- Pressure drop: 1-3 bar
Separation Efficiency Model
η = 1 - exp(-A × (d / d50)^n)
where d50 is the cut size and n is typically 2-4.
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class Separator
Separator.Builder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleTypical d50 cut size in microns.private doubleInlet oil concentration (mg/L).private doubleOverall oil removal efficiency.private doubleOutlet oil concentration (mg/L).private doublePressure drop across cyclone (bar).private doubleReject ratio (oil-rich stream / feed).private static final longFields inherited from class Separator
liquidLevel, numberOfInputStreamsFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionHydrocyclone(String name) Creates a hydrocyclone.Hydrocyclone(String name, StreamInterface inletStream) Creates a hydrocyclone with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets the d50 cut size.doublegetEfficiencyForDropletSize(double dropletSizeMicrons) Calculates removal efficiency for a given droplet size.doubleGets oil removal efficiency.doubleGets outlet oil concentration.doubleGets pressure drop.doubleGets the reject ratio.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetD50Microns(double d50) Sets the d50 cut size.voidsetInletOilConcentration(double oilMgL) Sets inlet oil concentration.voidsetOilRemovalEfficiency(double efficiency) Sets overall oil removal efficiency.voidsetPressureDropBar(double dp) Sets pressure drop.voidsetRejectRatio(double ratio) Sets the reject ratio.Methods inherited from class Separator
addSeparatorSection, addStream, builder, calcLiquidVolume, displayResult, enforceHeadspace, equals, evaluateFireExposure, evaluateFireExposure, getCapacityDuty, getCapacityMax, getDeRatedGasLoadFactor, getDeRatedGasLoadFactor, getDesignLiquidLevelFraction, getEfficiency, getEntropyProduction, getExergyChange, getExergyChange, getFeedStream, getGas, getGasCarryunderFraction, getGasLoadFactor, getGasLoadFactor, getGasOutStream, getGasSuperficialVelocity, getHeatDuty, getHeatDuty, getHeatInput, getHeatInput, getInnerSurfaceArea, getInternalDiameter, getLiquid, getLiquidCarryoverFraction, getLiquidLevel, getLiquidOutStream, getMassBalance, getMechanicalDesign, getOrientation, getPressure, getPressureDrop, getResultTable, getSeparatorLength, getSeparatorSection, getSeparatorSection, getSeparatorSections, getStateVector, getThermoSystem, getUnwettedArea, getWettedArea, hashCode, initializeTransientCalculation, initMechanicalDesign, isSetHeatInput, levelFromVolume, liquidArea, runTransient, setDesignLiquidLevelFraction, setDuty, setDuty, setEfficiency, setEntrainment, setGasCarryunderFraction, setHeatDuty, setHeatDuty, setHeatInput, setHeatInput, setInletStream, setInternalDiameter, setLiquidCarryoverFraction, setLiquidLevel, setOrientation, setPressureDrop, setSeparatorLength, setTempPres, toJson, toJson, validateSetupMethods inherited from class ProcessEquipmentBaseClass
copy, getConditionAnalysisMessage, getController, getEnergyStream, getMassBalance, getMinimumFlow, getPressure, getProperty, getReport_json, getSpecification, getTemperature, getTemperature, isActive, isActive, isSetEnergyStream, reportResults, run_step, runConditionAnalysis, setController, setEnergyStream, setEnergyStream, setFlowValveController, setMinimumFlow, setPressure, setRegulatorOutSignal, setSpecification, setTemperature, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagName, setName, setTagNameMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
getFluid, getRestCapacity, needRecalculationMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, run_step, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime, solvedMethods inherited from interface StateVectorProvider
getStateDimension, getStateNames
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
d50Microns
private double d50MicronsTypical d50 cut size in microns. -
rejectRatio
private double rejectRatioReject ratio (oil-rich stream / feed). -
pressureDrop
private double pressureDropPressure drop across cyclone (bar). -
oilRemovalEfficiency
private double oilRemovalEfficiencyOverall oil removal efficiency. -
inletOilMgL
private double inletOilMgLInlet oil concentration (mg/L). -
outletOilMgL
private double outletOilMgLOutlet oil concentration (mg/L).
-
-
Constructor Details
-
Hydrocyclone
-
Hydrocyclone
Creates a hydrocyclone with inlet stream.- Parameters:
name- equipment nameinletStream- water stream containing oil
-
-
Method Details
-
setD50Microns
public void setD50Microns(double d50) Sets the d50 cut size.- Parameters:
d50- cut size in microns
-
getD50Microns
public double getD50Microns()Gets the d50 cut size.- Returns:
- d50 in microns
-
setRejectRatio
public void setRejectRatio(double ratio) Sets the reject ratio.- Parameters:
ratio- reject/feed ratio (0.01-0.05 typical)
-
getRejectRatio
public double getRejectRatio()Gets the reject ratio.- Returns:
- reject ratio
-
setOilRemovalEfficiency
public void setOilRemovalEfficiency(double efficiency) Sets overall oil removal efficiency.- Parameters:
efficiency- efficiency (0.0-1.0)
-
getOilRemovalEfficiency
public double getOilRemovalEfficiency()Gets oil removal efficiency.- Returns:
- efficiency (0.0-1.0)
-
setInletOilConcentration
public void setInletOilConcentration(double oilMgL) Sets inlet oil concentration.- Parameters:
oilMgL- oil concentration in mg/L
-
getEfficiencyForDropletSize
public double getEfficiencyForDropletSize(double dropletSizeMicrons) Calculates removal efficiency for a given droplet size.Uses a modified Rosin-Rammler distribution:
η(d) = 1 - exp(-0.693 × (d / d50)^n)
- Parameters:
dropletSizeMicrons- droplet diameter in microns- Returns:
- removal efficiency (0.0-1.0)
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Specified by:
runin interfaceSimulationInterface- Overrides:
runin classSeparator- Parameters:
id- UUID
-
getOutletOilMgL
public double getOutletOilMgL()Gets outlet oil concentration.- Returns:
- oil concentration in mg/L
-
getPressureDropBar
public double getPressureDropBar()Gets pressure drop.- Returns:
- pressure drop in bar
-
setPressureDropBar
public void setPressureDropBar(double dp) Sets pressure drop.- Parameters:
dp- pressure drop in bar
-