Class GasFlotationUnit
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.separator.Separator
neqsim.process.equipment.watertreatment.GasFlotationUnit
- All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, ProcessEquipmentInterface, SeparatorInterface, StateVectorProvider, ProcessElementInterface, SimulationInterface, NamedInterface
Gas flotation unit for produced water treatment.
Models Induced Gas Flotation (IGF) or Dissolved Gas Flotation (DGF) for removal of dispersed oil droplets from produced water. Fine gas bubbles are injected into the water; oil droplets attach to the bubbles and rise to the surface where they are skimmed off.
Design Parameters
- Flotation gas supply: Minimum 4 bar above water pressure, minimum 10 Avol% gas flow
- Reject flow: Minimum 2% of inlet water flow per unit/stage
- Reject valves: Actuated, sized for min to max flow per production profile
- Gas mixing dP: At least 0.5 bar across mixing valve for proper dispersion
Performance
- Typical oil removal: 80-95%
- Effective for droplets larger than 5 microns
- Usually 3-4 stages in series
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class Separator
Separator.Builder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleGas flow rate in Am3/h.private StringFlotation gas type: "fuel_gas" or "nitrogen".private doubleInlet oil concentration in mg/L.private doubleMinimum gas mixing valve dP (bar).private doubleMinimum flotation gas overpressure above water pressure (bar).private doubleMinimum flotation gas volume fraction (Avol%).private doubleMinimum reject flow per stage as fraction of inlet water flow.private intNumber of flotation stages.private doubleOverall oil removal efficiency (0.0-1.0).private doubleCalculated outlet oil concentration in mg/L.private doublePer-stage efficiency (0.0-1.0).private doubleReject flow rate per stage in m3/h.private static final longprivate doubleWater flow rate in m3/h.Fields inherited from class Separator
DEFAULT_DROPLET_CUTSIZE_LIMIT, DEFAULT_INLET_MOMENTUM_LIMIT, DEFAULT_K_VALUE_LIMIT, DEFAULT_LIQUID_DENSITY_FOR_SIZING, DEFAULT_MIN_OIL_RETENTION_TIME, DEFAULT_MIN_WATER_RETENTION_TIME, 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
ConstructorsConstructorDescriptionGasFlotationUnit(String name) Creates a gas flotation unit.GasFlotationUnit(String name, StreamInterface inletStream) Creates a gas flotation unit with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptiondoubleCalculates the minimum required flotation gas flow rate.doubleCalculates the per-stage efficiency from the overall efficiency and number of stages.doubleCalculates the minimum reject flow rate per stage.Gets a design validation summary.doubleGets the calculated flotation gas flow rate.Gets the flotation gas type.doubleGets the inlet oil concentration.intGets the number of flotation stages.doubleGets the overall oil removal efficiency.doubleGets the outlet oil concentration.doubleGets the calculated per-stage efficiency.doubleGets the reject flow per stage.doubleGets the total reject flow rate for all stages.doubleGets the water flow rate.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetFlotationGasType(String gasType) Sets the flotation gas type.voidsetInletOilConcentration(double oilMgL) Sets the inlet oil concentration.voidsetNumberOfStages(int stages) Sets the number of flotation stages.voidsetOilRemovalEfficiency(double efficiency) Sets the overall oil removal efficiency.voidsetWaterFlowRate(double flowRateM3h) Sets the water flow rate.Methods inherited from class Separator
addCapacityConstraint, addSeparatorSection, addStream, autoSize, autoSize, autoSize, builder, calcDropletCutSize, calcDropletCutSizeAtHLL, calcGasAreaAboveLevel, calcGasVelocityAboveLevel, calcInletMomentumFlux, calcInletMomentumFlux, calcKValue, calcKValueAtHLL, calcLiquidVolume, calcOilRetentionTime, calcSegmentArea, calcWaterRetentionTime, clearCapacityConstraints, disableConstraint, disableConstraints, displayResult, enableConstraints, enforceHeadspace, equals, evaluateFireExposure, evaluateFireExposure, getBootVolume, getBottleneckConstraint, getCapacityConstraints, getCapacityDuty, getCapacityMax, getCapacityUtilization, getConstraintSummary, getDeRatedGasLoadFactor, getDeRatedGasLoadFactor, getDesignGasLoadFactor, getDesignLiquidLevelFraction, getEfficiency, getElectricalDesign, getEnabledConstraintNames, getEntropyProduction, getEquipmentState, getExergyChange, getExergyChange, getFeedStream, getGas, getGasCarryunderFraction, getGasLoadFactor, getGasLoadFactor, getGasOutStream, getGasSuperficialVelocity, getHeatDuty, getHeatDuty, getHeatInput, getHeatInput, getInletFlowRegime, getInletStreams, getInnerSurfaceArea, getInstrumentDesign, getInternalDiameter, getKFactor, getKFactorUtilization, getLiquid, getLiquidCarryoverFraction, getLiquidLevel, getLiquidOutStream, getMassBalance, getMaxAllowableGasFlowRate, getMaxAllowableGasVelocity, getMaxUtilization, getMechanicalDesign, getMistEliminatorDpCoeff, getMistEliminatorPressureDrop, getMistEliminatorThickness, getOperatingEnvelopeViolation, getOrientation, getOutletStreams, getPerformanceCalculator, getPerformanceSummary, getPressure, getPressureDrop, getResultTable, getSeparatorLength, getSeparatorSection, getSeparatorSection, getSeparatorSections, getSimulationValidationErrors, getSizingReport, getSizingReportJson, getStateVector, getThermoSystem, getUnwettedArea, getWeirHeight, getWeirLength, getWeirOverflowRate, getWettedArea, hasGeometry, hashCode, initDesignFromFlow, initElectricalDesign, initializeCapacityConstraints, initializeTransientCalculation, initInstrumentDesign, initMechanicalDesign, isAutoSized, isCapacityExceeded, isConstraintEnabled, isDetailedEntrainmentCalculation, isDropletCutSizeWithinLimit, isDropletCutSizeWithinLimit, isEnforceCapacityLimits, isEnhancedEntrainmentCalculation, isHardLimitExceeded, isInletMomentumWithinLimit, isInletMomentumWithinLimit, isKValueWithinLimit, isKValueWithinLimit, isMistEliminatorFlooded, isOilRetentionTimeAboveMinimum, isOilRetentionTimeAboveMinimum, isOverloaded, isSetHeatInput, isSimulationValid, isSinglePhase, isWaterRetentionTimeAboveMinimum, isWaterRetentionTimeAboveMinimum, isWithinAllLimits, isWithinOperatingEnvelope, levelFromVolume, liquidArea, removeCapacityConstraint, runTransient, setBootVolume, setDesignGasLoadFactor, setDesignLiquidLevelFraction, setDetailedEntrainmentCalculation, setDropletCutSizeLimit, setDuty, setDuty, setEfficiency, setEnforceCapacityLimits, setEnhancedEntrainmentCalculation, setEntrainment, setGasCarryunderFraction, setGasLiquidSurfaceTension, setHeatDuty, setHeatDuty, setHeatInput, setHeatInput, setInletDeviceType, setInletMomentumLimit, setInletPipeDiameter, setInletStream, setInternalDiameter, setKValueLimit, setLiquidCarryoverFraction, setLiquidLevel, setMinOilRetentionTime, setMinWaterRetentionTime, setMistEliminatorDpCoeff, setMistEliminatorThickness, setOrientation, setPerformanceCalculator, setPressureDrop, setSeparatorLength, setTempPres, setWeirHeight, setWeirLength, sizeFromFlow, toJson, toJson, updateEntrainmentForTransient, updateEntrainmentFromPerformanceCalculator, useAllConstraints, useAPIConstraints, useConstraints, useEquinorConstraints, useGasCapacityConstraints, useGasScrubberConstraints, useLiquidCapacityConstraints, validateSetupMethods inherited from class ProcessEquipmentBaseClass
addController, copy, getAvailableMargin, getAvailableMarginPercent, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getFailureMode, getMassBalance, getMaxUtilizationPercent, getMinimumFlow, getPressure, getProperty, getReferenceDesignation, getReport_json, getSpecification, getTemperature, getTemperature, getUtilizationSummary, initializeDefaultConstraints, isActive, isActive, isCapacityAnalysisEnabled, isFailed, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solvedMethods 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 CapacityConstrainedEquipment
disableAllConstraints, enableAllConstraints, getAvailableMargin, getAvailableMarginPercent, getMaxUtilizationPercent, getUtilizationSummary, isCapacityAnalysisEnabled, isNearCapacityLimit, setCapacityAnalysisEnabledMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getExergyDestruction, getExergyDestruction, getFluid, getOutletFlowRate, getOutletPressure, getOutletTemperature, getReferenceDesignationString, 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:
-
numberOfStages
private int numberOfStagesNumber of flotation stages. -
oilRemovalEfficiency
private double oilRemovalEfficiencyOverall oil removal efficiency (0.0-1.0). -
perStageEfficiency
private double perStageEfficiencyPer-stage efficiency (0.0-1.0). Calculated from overall and number of stages. -
minGasOverpressureBar
private double minGasOverpressureBarMinimum flotation gas overpressure above water pressure (bar). -
minGasVolumeFractionPct
private double minGasVolumeFractionPctMinimum flotation gas volume fraction (Avol%). -
minRejectFractionPerStage
private double minRejectFractionPerStageMinimum reject flow per stage as fraction of inlet water flow. -
minGasMixingDPBar
private double minGasMixingDPBarMinimum gas mixing valve dP (bar). -
flotationGasType
Flotation gas type: "fuel_gas" or "nitrogen". -
waterFlowRateM3h
private double waterFlowRateM3hWater flow rate in m3/h. -
inletOilMgL
private double inletOilMgLInlet oil concentration in mg/L. -
outletOilMgL
private double outletOilMgLCalculated outlet oil concentration in mg/L. -
flotationGasFlowRateM3h
private double flotationGasFlowRateM3hGas flow rate in Am3/h. -
rejectFlowPerStageM3h
private double rejectFlowPerStageM3hReject flow rate per stage in m3/h.
-
-
Constructor Details
-
GasFlotationUnit
Creates a gas flotation unit.- Parameters:
name- equipment name
-
GasFlotationUnit
Creates a gas flotation unit with inlet stream.- Parameters:
name- equipment nameinletStream- water stream from upstream treatment
-
-
Method Details
-
setNumberOfStages
public void setNumberOfStages(int stages) Sets the number of flotation stages.- Parameters:
stages- number of stages (typically 3-4)
-
getNumberOfStages
public int getNumberOfStages()Gets the number of flotation stages.- Returns:
- number of stages
-
setOilRemovalEfficiency
public void setOilRemovalEfficiency(double efficiency) Sets the overall oil removal efficiency.- Parameters:
efficiency- efficiency (0.0-1.0)
-
getOilRemovalEfficiency
public double getOilRemovalEfficiency()Gets the overall oil removal efficiency.- Returns:
- efficiency (0.0-1.0)
-
setFlotationGasType
Sets the flotation gas type.- Parameters:
gasType- "fuel_gas" or "nitrogen"
-
getFlotationGasType
-
setInletOilConcentration
public void setInletOilConcentration(double oilMgL) Sets the inlet oil concentration.- Parameters:
oilMgL- oil concentration in mg/L
-
getInletOilConcentration
public double getInletOilConcentration()Gets the inlet oil concentration.- Returns:
- oil concentration in mg/L
-
setWaterFlowRate
public void setWaterFlowRate(double flowRateM3h) Sets the water flow rate.- Parameters:
flowRateM3h- flow rate in m3/h
-
getWaterFlowRate
public double getWaterFlowRate()Gets the water flow rate.- Returns:
- flow rate in m3/h
-
calcPerStageEfficiency
public double calcPerStageEfficiency()Calculates the per-stage efficiency from the overall efficiency and number of stages.Assumes each stage removes the same fraction of the remaining oil: (1 - eta_overall) = (1 - eta_stage)^n
- Returns:
- per-stage efficiency (0.0-1.0)
-
getPerStageEfficiency
public double getPerStageEfficiency()Gets the calculated per-stage efficiency.- Returns:
- per-stage efficiency (0.0-1.0)
-
calcMinimumGasFlowRate
public double calcMinimumGasFlowRate()Calculates the minimum required flotation gas flow rate.The gas flow must be at least 10 Avol% of the water flow rate: Q_gas_min = 0.10 * Q_water
- Returns:
- minimum gas flow rate in Am3/h
-
getFlotationGasFlowRate
public double getFlotationGasFlowRate()Gets the calculated flotation gas flow rate.- Returns:
- gas flow rate in Am3/h
-
calcRejectFlowPerStage
public double calcRejectFlowPerStage()Calculates the minimum reject flow rate per stage.Design rate for reject flow shall be minimum 2% per unit/stage of the inlet water flow rate.
- Returns:
- reject flow per stage in m3/h
-
getRejectFlowPerStage
public double getRejectFlowPerStage()Gets the reject flow per stage.- Returns:
- reject flow rate in m3/h
-
getTotalRejectFlow
public double getTotalRejectFlow()Gets the total reject flow rate for all stages.- Returns:
- total reject flow in m3/h
-
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 the outlet oil concentration.- Returns:
- oil concentration in mg/L
-
getDesignValidationSummary
Gets a design validation summary.- Returns:
- summary string
-