Class InjectionStrategy

java.lang.Object
neqsim.process.fielddevelopment.reservoir.InjectionStrategy
All Implemented Interfaces:
Serializable

public class InjectionStrategy extends Object implements Serializable
Injection strategy for reservoir pressure maintenance.

This class calculates required injection rates for voidage replacement and pressure maintenance strategies. Supports water injection, gas injection, and WAG (water-alternating-gas).

Voidage Replacement

Voidage replacement ratio (VRR) is defined as: VRR = (Injection Volume) / (Production Voidage) where production voidage is the reservoir volume of produced fluids. VRR = 1.0 maintains reservoir pressure.

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • strategyType

      private InjectionStrategy.StrategyType strategyType
    • targetVRR

      private double targetVRR
      Target voidage replacement ratio (1.0 = full replacement).
    • wagRatio

      private double wagRatio
      WAG ratio (water cycles / gas cycles).
    • wagCycleDays

      private double wagCycleDays
      WAG cycle duration in days.
    • targetPressure

      private double targetPressure
      Target reservoir pressure for pressure maintenance (bara).
    • maxWaterRate

      private double maxWaterRate
      Maximum water injection rate (Sm3/day).
    • maxGasRate

      private double maxGasRate
      Maximum gas injection rate (Sm3/day).
    • injectionTemperature

      private double injectionTemperature
      Injection fluid temperature (K).
    • waterInjectionEfficiency

      private double waterInjectionEfficiency
      Water injection efficiency (0-1).
    • gasInjectionEfficiency

      private double gasInjectionEfficiency
      Gas injection efficiency (0-1).
  • Constructor Details

    • InjectionStrategy

      public InjectionStrategy(InjectionStrategy.StrategyType strategyType)
      Creates a new injection strategy.
      Parameters:
      strategyType - strategy type
  • Method Details

    • waterInjection

      public static InjectionStrategy waterInjection(double targetVRR)
      Creates a water injection strategy.
      Parameters:
      targetVRR - target voidage replacement ratio
      Returns:
      injection strategy
    • gasInjection

      public static InjectionStrategy gasInjection(double targetVRR)
      Creates a gas injection strategy.
      Parameters:
      targetVRR - target voidage replacement ratio
      Returns:
      injection strategy
    • wag

      public static InjectionStrategy wag(double wagRatio, double cycleDays)
      Creates a WAG strategy.
      Parameters:
      wagRatio - water/gas ratio
      cycleDays - cycle duration in days
      Returns:
      injection strategy
    • pressureMaintenance

      public static InjectionStrategy pressureMaintenance(double targetPressureBara)
      Creates a pressure maintenance strategy.
      Parameters:
      targetPressureBara - target reservoir pressure in bara
      Returns:
      injection strategy
    • calculateInjection

      public InjectionStrategy.InjectionResult calculateInjection(SimpleReservoir reservoir, double oilProductionRate, double gasProductionRate, double waterProductionRate)
      Calculates required injection rates for voidage replacement.
      Parameters:
      reservoir - the reservoir
      oilProductionRate - oil production rate (Sm3/day)
      gasProductionRate - gas production rate (Sm3/day)
      waterProductionRate - water production rate (Sm3/day)
      Returns:
      injection result with water and gas rates
    • calculateProductionVoidage

      private double calculateProductionVoidage(SimpleReservoir reservoir, double oilRate, double gasRate, double waterRate)
      Calculates production voidage at reservoir conditions.
      Parameters:
      reservoir - the reservoir
      oilRate - oil rate (Sm3/day)
      gasRate - gas rate (Sm3/day)
      waterRate - water rate (Sm3/day)
      Returns:
      production voidage (m3/day at reservoir conditions)
    • calculateWaterRate

      private double calculateWaterRate(SimpleReservoir reservoir, double targetVolume)
      Calculates water injection rate for target reservoir volume.
      Parameters:
      reservoir - the reservoir
      targetVolume - target reservoir volume (m3/day)
      Returns:
      water injection rate (Sm3/day)
    • calculateGasRate

      private double calculateGasRate(SimpleReservoir reservoir, double targetVolume)
      Calculates gas injection rate for target reservoir volume.
      Parameters:
      reservoir - the reservoir
      targetVolume - target reservoir volume (m3/day)
      Returns:
      gas injection rate (Sm3/day)
    • calculatePressureMaintenanceRate

      private double calculatePressureMaintenanceRate(SimpleReservoir reservoir)
      Calculates injection rate for pressure maintenance.
      Parameters:
      reservoir - the reservoir
      Returns:
      water injection rate (Sm3/day)
    • calculateInjectionVolume

      private double calculateInjectionVolume(SimpleReservoir reservoir, double waterRate, double gasRate)
      Calculates injection volume at reservoir conditions.
      Parameters:
      reservoir - the reservoir
      waterRate - water rate (Sm3/day)
      gasRate - gas rate (Sm3/day)
      Returns:
      injection volume (m3/day at reservoir conditions)
    • getStrategyType

      public InjectionStrategy.StrategyType getStrategyType()
      Gets the strategy type.
      Returns:
      strategy type
    • setTargetVRR

      public InjectionStrategy setTargetVRR(double targetVRR)
      Sets the target VRR.
      Parameters:
      targetVRR - target voidage replacement ratio
      Returns:
      this for chaining
    • getTargetVRR

      public double getTargetVRR()
      Gets the target VRR.
      Returns:
      target VRR
    • setMaxWaterRate

      public InjectionStrategy setMaxWaterRate(double maxWaterRate)
      Sets maximum water injection rate.
      Parameters:
      maxWaterRate - max rate (Sm3/day)
      Returns:
      this for chaining
    • setMaxGasRate

      public InjectionStrategy setMaxGasRate(double maxGasRate)
      Sets maximum gas injection rate.
      Parameters:
      maxGasRate - max rate (Sm3/day)
      Returns:
      this for chaining
    • setInjectionTemperature

      public InjectionStrategy setInjectionTemperature(double temperatureK)
      Sets injection temperature.
      Parameters:
      temperatureK - temperature in Kelvin
      Returns:
      this for chaining