Class InjectionStrategy
java.lang.Object
neqsim.process.fielddevelopment.reservoir.InjectionStrategy
- All Implemented Interfaces:
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classResult container for injection calculations.static enumStrategy types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleGas injection efficiency (0-1).private doubleInjection fluid temperature (K).private doubleMaximum gas injection rate (Sm3/day).private doubleMaximum water injection rate (Sm3/day).private static final longprivate InjectionStrategy.StrategyTypeprivate doubleTarget reservoir pressure for pressure maintenance (bara).private doubleTarget voidage replacement ratio (1.0 = full replacement).private doubleWAG cycle duration in days.private doubleWAG ratio (water cycles / gas cycles).private doubleWater injection efficiency (0-1). -
Constructor Summary
ConstructorsConstructorDescriptionInjectionStrategy(InjectionStrategy.StrategyType strategyType) Creates a new injection strategy. -
Method Summary
Modifier and TypeMethodDescriptionprivate doublecalculateGasRate(SimpleReservoir reservoir, double targetVolume) Calculates gas injection rate for target reservoir volume.calculateInjection(SimpleReservoir reservoir, double oilProductionRate, double gasProductionRate, double waterProductionRate) Calculates required injection rates for voidage replacement.private doublecalculateInjectionVolume(SimpleReservoir reservoir, double waterRate, double gasRate) Calculates injection volume at reservoir conditions.private doublecalculatePressureMaintenanceRate(SimpleReservoir reservoir) Calculates injection rate for pressure maintenance.private doublecalculateProductionVoidage(SimpleReservoir reservoir, double oilRate, double gasRate, double waterRate) Calculates production voidage at reservoir conditions.private doublecalculateWaterRate(SimpleReservoir reservoir, double targetVolume) Calculates water injection rate for target reservoir volume.static InjectionStrategygasInjection(double targetVRR) Creates a gas injection strategy.Gets the strategy type.doubleGets the target VRR.static InjectionStrategypressureMaintenance(double targetPressureBara) Creates a pressure maintenance strategy.setInjectionTemperature(double temperatureK) Sets injection temperature.setMaxGasRate(double maxGasRate) Sets maximum gas injection rate.setMaxWaterRate(double maxWaterRate) Sets maximum water injection rate.setTargetVRR(double targetVRR) Sets the target VRR.static InjectionStrategywag(double wagRatio, double cycleDays) Creates a WAG strategy.static InjectionStrategywaterInjection(double targetVRR) Creates a water injection strategy.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
strategyType
-
targetVRR
private double targetVRRTarget voidage replacement ratio (1.0 = full replacement). -
wagRatio
private double wagRatioWAG ratio (water cycles / gas cycles). -
wagCycleDays
private double wagCycleDaysWAG cycle duration in days. -
targetPressure
private double targetPressureTarget reservoir pressure for pressure maintenance (bara). -
maxWaterRate
private double maxWaterRateMaximum water injection rate (Sm3/day). -
maxGasRate
private double maxGasRateMaximum gas injection rate (Sm3/day). -
injectionTemperature
private double injectionTemperatureInjection fluid temperature (K). -
waterInjectionEfficiency
private double waterInjectionEfficiencyWater injection efficiency (0-1). -
gasInjectionEfficiency
private double gasInjectionEfficiencyGas injection efficiency (0-1).
-
-
Constructor Details
-
InjectionStrategy
Creates a new injection strategy.- Parameters:
strategyType- strategy type
-
-
Method Details
-
waterInjection
Creates a water injection strategy.- Parameters:
targetVRR- target voidage replacement ratio- Returns:
- injection strategy
-
gasInjection
Creates a gas injection strategy.- Parameters:
targetVRR- target voidage replacement ratio- Returns:
- injection strategy
-
wag
Creates a WAG strategy.- Parameters:
wagRatio- water/gas ratiocycleDays- cycle duration in days- Returns:
- injection strategy
-
pressureMaintenance
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 reservoiroilProductionRate- 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 reservoiroilRate- oil rate (Sm3/day)gasRate- gas rate (Sm3/day)waterRate- water rate (Sm3/day)- Returns:
- production voidage (m3/day at reservoir conditions)
-
calculateWaterRate
Calculates water injection rate for target reservoir volume.- Parameters:
reservoir- the reservoirtargetVolume- target reservoir volume (m3/day)- Returns:
- water injection rate (Sm3/day)
-
calculateGasRate
Calculates gas injection rate for target reservoir volume.- Parameters:
reservoir- the reservoirtargetVolume- target reservoir volume (m3/day)- Returns:
- gas injection rate (Sm3/day)
-
calculatePressureMaintenanceRate
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 reservoirwaterRate- water rate (Sm3/day)gasRate- gas rate (Sm3/day)- Returns:
- injection volume (m3/day at reservoir conditions)
-
getStrategyType
Gets the strategy type.- Returns:
- strategy type
-
setTargetVRR
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
Sets maximum water injection rate.- Parameters:
maxWaterRate- max rate (Sm3/day)- Returns:
- this for chaining
-
setMaxGasRate
Sets maximum gas injection rate.- Parameters:
maxGasRate- max rate (Sm3/day)- Returns:
- this for chaining
-
setInjectionTemperature
Sets injection temperature.- Parameters:
temperatureK- temperature in Kelvin- Returns:
- this for chaining
-