Class ProducedWaterTreatmentTrain
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.watertreatment.ProducedWaterTreatmentTrain
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
Produced water treatment train for offshore oil and gas facilities.
Models a typical produced water treatment process including:
- Hydrocyclone - Primary oil removal (bulk separation)
- Flotation unit - Secondary treatment for fine droplets
- Skim tank - Polishing for final discharge spec
Norwegian Continental Shelf Discharge Limits
- Oil-in-water: 30 mg/L monthly weighted average
- Dispersed oil: Monitored daily
- Zero harmful discharge target
Typical Equipment Performance
| Equipment | Droplet Size | Efficiency |
|---|---|---|
| Hydrocyclone | >20 μm | 90-98% |
| IGF/DGF | >5 μm | 80-95% |
| Skim Tank | >50 μm | 60-80% |
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumTreatment stage type enumeration.static classWater treatment stage model. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate StreamInterfaceprivate booleanstatic final doubleNCS monthly average OIW limit (mg/L).static final doubleOSPAR limit (mg/L).private doubleprivate doubleprivate doubleprivate StreamInterfaceprivate static final longprivate final List<ProducedWaterTreatmentTrain.WaterTreatmentStage> private StreamInterfaceprivate doubleFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionCreates a produced water treatment train.ProducedWaterTreatmentTrain(String name, StreamInterface inletStream) Creates a produced water treatment train with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a treatment stage.voidClears default stages and allows custom configuration.Generates treatment summary report.doublegetAnnualOilDischargeTonnes(double operatingHoursPerYear) Gets annual oil discharge.Gets the inlet stream.doubleGets outlet oil-in-water concentration.doubleGets outlet oil-in-water concentration in ppm.doubleGets overall treatment efficiency.doubleGets recovered oil flow rate.Gets recovered oil stream.Gets list of treatment stages.Gets treated water stream.booleanisCompliantWith(double limitMgL) Checks compliance against a specific limit.booleanChecks if discharge meets NCS limits.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetInletOilConcentration(double oiwMgL) Sets the inlet oil-in-water concentration.voidsetInletStream(StreamInterface stream) Sets the inlet water stream.voidsetStageEfficiency(String stageName, double efficiency) Sets stage efficiency by name.voidsetWaterFlowRate(double flowRateM3h) Sets the water flow rate.Methods inherited from class ProcessEquipmentBaseClass
copy, displayResult, equals, getConditionAnalysisMessage, getController, getEnergyStream, getEntropyProduction, getExergyChange, getMassBalance, getMassBalance, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, hashCode, initMechanicalDesign, isActive, isActive, isSetEnergyStream, reportResults, run_step, runConditionAnalysis, setController, setEnergyStream, setEnergyStream, setFlowValveController, setMinimumFlow, setPressure, setRegulatorOutSignal, setSpecification, setTemperature, solved, toJson, toJsonMethods 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
getCapacityDuty, getCapacityMax, getExergyChange, getFluid, getRestCapacity, 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 serialVersionUID- See Also:
-
NCS_OIW_LIMIT_MGL
public static final double NCS_OIW_LIMIT_MGLNCS monthly average OIW limit (mg/L).- See Also:
-
OSPAR_OIW_LIMIT_MGL
public static final double OSPAR_OIW_LIMIT_MGLOSPAR limit (mg/L).- See Also:
-
stages
-
inletStream
-
treatedWaterStream
-
recoveredOilStream
-
inletOilConcentrationMgL
private double inletOilConcentrationMgL -
outletOilConcentrationMgL
private double outletOilConcentrationMgL -
waterFlowRateM3h
private double waterFlowRateM3h -
recoveredOilM3h
private double recoveredOilM3h -
overallEfficiency
private double overallEfficiency -
isCompliant
private boolean isCompliant
-
-
Constructor Details
-
ProducedWaterTreatmentTrain
Creates a produced water treatment train.- Parameters:
name- equipment name
-
ProducedWaterTreatmentTrain
Creates a produced water treatment train with inlet stream.- Parameters:
name- equipment nameinletStream- water stream from production separator
-
-
Method Details
-
setInletStream
Sets the inlet water stream.- Parameters:
stream- produced water stream
-
getInletStream
-
setInletOilConcentration
public void setInletOilConcentration(double oiwMgL) Sets the inlet oil-in-water concentration.- Parameters:
oiwMgL- oil concentration in mg/L (ppm by mass for water)
-
setWaterFlowRate
public void setWaterFlowRate(double flowRateM3h) Sets the water flow rate.- Parameters:
flowRateM3h- water flow rate in m³/h
-
addStage
Adds a treatment stage.- Parameters:
stage- treatment stage to add
-
clearStages
public void clearStages()Clears default stages and allows custom configuration. -
setStageEfficiency
Sets stage efficiency by name.- Parameters:
stageName- stage nameefficiency- efficiency (0.0-1.0)
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
getOilInWaterMgL
public double getOilInWaterMgL()Gets outlet oil-in-water concentration.- Returns:
- OIW in mg/L
-
getOilInWaterPpm
public double getOilInWaterPpm()Gets outlet oil-in-water concentration in ppm.- Returns:
- OIW in ppm (same as mg/L for water)
-
isDischargeCompliant
public boolean isDischargeCompliant()Checks if discharge meets NCS limits.- Returns:
- true if OIW < 30 mg/L
-
isCompliantWith
public boolean isCompliantWith(double limitMgL) Checks compliance against a specific limit.- Parameters:
limitMgL- OIW limit in mg/L- Returns:
- true if compliant
-
getOverallEfficiency
public double getOverallEfficiency()Gets overall treatment efficiency.- Returns:
- efficiency (0.0-1.0)
-
getRecoveredOilM3h
public double getRecoveredOilM3h()Gets recovered oil flow rate.- Returns:
- recovered oil in m³/h
-
getAnnualOilDischargeTonnes
public double getAnnualOilDischargeTonnes(double operatingHoursPerYear) Gets annual oil discharge.- Parameters:
operatingHoursPerYear- annual operating hours- Returns:
- annual oil discharge in tonnes
-
getTreatedWaterStream
Gets treated water stream.- Returns:
- treated water outlet
-
getRecoveredOilStream
Gets recovered oil stream.- Returns:
- recovered oil outlet
-
getStages
Gets list of treatment stages.- Returns:
- treatment stages
-
generateReport
Generates treatment summary report.- Returns:
- markdown formatted report
-