Class GasLiftOptimizer.PerformanceCurve

java.lang.Object
neqsim.process.fielddevelopment.screening.GasLiftOptimizer.PerformanceCurve
All Implemented Interfaces:
Serializable
Enclosing class:
GasLiftOptimizer

public static class GasLiftOptimizer.PerformanceCurve extends Object implements Serializable
Well performance curve representation.
Version:
1.0
Author:
ESOL
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    double[]
    Gas injection rates (Sm³/day).
    double
    Natural flow rate (zero injection).
    double[]
    Corresponding oil rates (Sm³/day).
    double
    Optimal GLR from performance curve analysis.
    private static final long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    PerformanceCurve(double[] gasRates, double[] oilRates)
    Creates a performance curve from data points.
    PerformanceCurve(double naturalRate, double maxRate, double optimalGas)
    Creates a curve from a parametric model (simplified hyperbolic).
  • Method Summary

    Modifier and Type
    Method
    Description
    private double
    calculateOilRate(double gas, double natural, double maxRate, double optGas)
    Calculates oil rate from a parametric gas lift performance model.
    private void
    Finds the optimal gas-liquid ratio from the performance curve.
    double
    getMarginalResponse(double gasRate)
    Calculates marginal oil response (dQoil/dQgas) at given gas rate.
    double
    getOilRate(double gasRate)
    Calculates oil rate for a given gas injection using curve interpolation.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • gasRates

      public double[] gasRates
      Gas injection rates (Sm³/day).
    • oilRates

      public double[] oilRates
      Corresponding oil rates (Sm³/day).
    • naturalFlowRate

      public double naturalFlowRate
      Natural flow rate (zero injection).
    • optimalGLR

      public double optimalGLR
      Optimal GLR from performance curve analysis.
  • Constructor Details

    • PerformanceCurve

      public PerformanceCurve(double[] gasRates, double[] oilRates)
      Creates a performance curve from data points.
      Parameters:
      gasRates - gas injection rates
      oilRates - corresponding oil production rates
    • PerformanceCurve

      public PerformanceCurve(double naturalRate, double maxRate, double optimalGas)
      Creates a curve from a parametric model (simplified hyperbolic).
      Parameters:
      naturalRate - natural flow rate (Sm³/d)
      maxRate - maximum rate with gas lift (Sm³/d)
      optimalGas - optimal gas injection (Sm³/d)
  • Method Details

    • getOilRate

      public double getOilRate(double gasRate)
      Calculates oil rate for a given gas injection using curve interpolation.
      Parameters:
      gasRate - gas injection rate (Sm³/d)
      Returns:
      oil rate (Sm³/d)
    • getMarginalResponse

      public double getMarginalResponse(double gasRate)
      Calculates marginal oil response (dQoil/dQgas) at given gas rate.
      Parameters:
      gasRate - gas injection rate (Sm³/d)
      Returns:
      marginal response (Sm³ oil / Sm³ gas)
    • findOptimalGLR

      private void findOptimalGLR()
      Finds the optimal gas-liquid ratio from the performance curve.

      The optimal GLR is the ratio of gas injection rate to oil rate at the point of maximum oil production on the performance curve. Beyond this point, additional gas injection provides diminishing returns or may even reduce production.

    • calculateOilRate

      private double calculateOilRate(double gas, double natural, double maxRate, double optGas)
      Calculates oil rate from a parametric gas lift performance model.

      Uses a modified logistic function with decline to model typical gas lift behavior:

      Q_oil = Q_natural + ΔQ × η(x) × d(x)

      where:

      • x = Q_gas / Q_gas_optimal (normalized gas rate)
      • η(x) = 1 / (1 + e^(-5(x-0.3))) is the efficiency factor (logistic)
      • d(x) = e^(-0.5×max(0, x-1.5)) is the decline factor at high GLR
      • ΔQ = Q_max - Q_natural is the maximum incremental production

      This model captures: (1) rapid initial response, (2) plateau near optimal GLR, (3) decline at excessive gas rates due to liquid loading.

      Parameters:
      gas - gas injection rate (Sm³/d)
      natural - natural flow rate without gas lift (Sm³/d)
      maxRate - maximum achievable rate with optimal gas lift (Sm³/d)
      optGas - optimal gas injection rate (Sm³/d)
      Returns:
      calculated oil rate (Sm³/d)