Class GasFlotationUnit

All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, ProcessEquipmentInterface, SeparatorInterface, StateVectorProvider, ProcessElementInterface, SimulationInterface, NamedInterface

public class GasFlotationUnit extends Separator
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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • numberOfStages

      private int numberOfStages
      Number of flotation stages.
    • oilRemovalEfficiency

      private double oilRemovalEfficiency
      Overall oil removal efficiency (0.0-1.0).
    • perStageEfficiency

      private double perStageEfficiency
      Per-stage efficiency (0.0-1.0). Calculated from overall and number of stages.
    • minGasOverpressureBar

      private double minGasOverpressureBar
      Minimum flotation gas overpressure above water pressure (bar).
    • minGasVolumeFractionPct

      private double minGasVolumeFractionPct
      Minimum flotation gas volume fraction (Avol%).
    • minRejectFractionPerStage

      private double minRejectFractionPerStage
      Minimum reject flow per stage as fraction of inlet water flow.
    • minGasMixingDPBar

      private double minGasMixingDPBar
      Minimum gas mixing valve dP (bar).
    • flotationGasType

      private String flotationGasType
      Flotation gas type: "fuel_gas" or "nitrogen".
    • waterFlowRateM3h

      private double waterFlowRateM3h
      Water flow rate in m3/h.
    • inletOilMgL

      private double inletOilMgL
      Inlet oil concentration in mg/L.
    • outletOilMgL

      private double outletOilMgL
      Calculated outlet oil concentration in mg/L.
    • flotationGasFlowRateM3h

      private double flotationGasFlowRateM3h
      Gas flow rate in Am3/h.
    • rejectFlowPerStageM3h

      private double rejectFlowPerStageM3h
      Reject flow rate per stage in m3/h.
  • Constructor Details

    • GasFlotationUnit

      public GasFlotationUnit(String name)
      Creates a gas flotation unit.
      Parameters:
      name - equipment name
    • GasFlotationUnit

      public GasFlotationUnit(String name, StreamInterface inletStream)
      Creates a gas flotation unit with inlet stream.
      Parameters:
      name - equipment name
      inletStream - 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

      public void setFlotationGasType(String gasType)
      Sets the flotation gas type.
      Parameters:
      gasType - "fuel_gas" or "nitrogen"
    • getFlotationGasType

      public String getFlotationGasType()
      Gets the flotation gas type.
      Returns:
      gas type string
    • 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

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class Separator
      Parameters:
      id - UUID
    • getOutletOilMgL

      public double getOutletOilMgL()
      Gets the outlet oil concentration.
      Returns:
      oil concentration in mg/L
    • getDesignValidationSummary

      public String getDesignValidationSummary()
      Gets a design validation summary.
      Returns:
      summary string