Calculate required injection rates for Reservoir Voidage Replacement
Standard Barrels per Day (STB/d)
Reservoir barrels per Stock tank barrel (rb/stb)
Standard Barrels per Day (STB/d)
Usually between 1.0 – 1.05 (rb/stb)
1.0 means 100% replacement (Pressure Maintenance)
Formation volume factor of injected water
Reservoir Voidage (Oil):0 rb/d
Reservoir Voidage (Water):0 rb/d
Total Daily Voidage:0 rb/d
Required Water Injection Rate0 STB/d
(Approx. 0 m³/day)
Understanding Water Injection Rate Calculation
In petroleum engineering and reservoir management, determining the correct Water Injection Rate is critical for secondary recovery techniques. The primary goal is usually to maintain reservoir pressure by replacing the volume of fluids (oil, water, and gas) produced with an equivalent volume of injected water. This concept is known as Voidage Replacement.
Why Calculate Injection Rates?
As hydrocarbons are extracted from a reservoir, the internal pressure drops. If the pressure drops below the bubble point, gas liberates, potentially reducing the oil's mobility and overall recovery factor. By injecting water at a calculated rate, engineers can:
The calculation relies on the Material Balance Equation. The calculator above uses a simplified Voidage Replacement Ratio (VRR) model. The core formula to determine the required injection rate ($Q_{inj}$) is:
Qinj = [ VRR × ( (Qo × Bo) + (Qw × Bw) ) ] / Bwi
Where:
Qo: Daily Oil Production Rate (STB/day)
Bo: Oil Formation Volume Factor (reservoir barrels/stock tank barrel). This accounts for the expansion of oil at reservoir temperature and pressure.
Qw: Daily Water Production Rate (STB/day)
Bw: Water Formation Volume Factor.
VRR: Target Voidage Replacement Ratio. A VRR of 1.0 implies maintaining current pressure. A VRR > 1.0 implies repressurizing the reservoir.
Bwi: Formation Volume Factor of the injected water (usually close to 1.0).
Example Calculation
Suppose a field is producing 5,000 STB/day of oil and 1,000 STB/day of water.
Step 3: Convert to Surface Injection Rate.
Assuming injected water FVF is 1.0:
Required Injection = 7,270 STB/day.
Factors Affecting Water Injection
While this calculator provides the theoretical rate for voidage replacement, real-world application must consider injectivity indices (the ability of the rock to accept water), fracture pressure limits, and surface pump capacities. Over-injection can fracture the cap rock, while under-injection leads to pressure depletion.
function calculateInjectionRate() {
// 1. Get input values using var
var oilProd = parseFloat(document.getElementById('oilProd').value);
var oilFvf = parseFloat(document.getElementById('oilFvf').value);
var waterProd = parseFloat(document.getElementById('waterProd').value);
var waterFvf = parseFloat(document.getElementById('waterFvf').value);
var targetVrr = parseFloat(document.getElementById('targetVrr').value);
var injFvf = parseFloat(document.getElementById('injFvf').value);
// 2. Validate inputs
if (isNaN(oilProd) || isNaN(oilFvf) || isNaN(waterProd) || isNaN(waterFvf) || isNaN(targetVrr) || isNaN(injFvf)) {
alert("Please enter valid numerical values for all fields.");
return;
}
if (injFvf <= 0) {
alert("Injection Water FVF must be greater than 0.");
return;
}
// 3. Perform Calculations
// Calculate voidage generated by oil production (in reservoir barrels)
var oilVoidage = oilProd * oilFvf;
// Calculate voidage generated by water production (in reservoir barrels)
var waterVoidage = waterProd * waterFvf;
// Total voidage
var totalVoidage = oilVoidage + waterVoidage;
// Required Reservoir Injection Volume based on Target VRR
var reqReservoirInjection = totalVoidage * targetVrr;
// Convert required reservoir volume back to surface conditions for injection
var surfaceInjectionRate = reqReservoirInjection / injFvf;
// Convert STB to Cubic Meters (approx 1 STB = 0.158987 m3)
var metricInjectionRate = surfaceInjectionRate * 0.158987;
// 4. Update the Result UI
document.getElementById('resVoidOil').innerHTML = oilVoidage.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " rb/d";
document.getElementById('resVoidWater').innerHTML = waterVoidage.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " rb/d";
document.getElementById('totalVoidage').innerHTML = totalVoidage.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " rb/d";
document.getElementById('finalInjectionRate').innerHTML = surfaceInjectionRate.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " STB/d";
document.getElementById('metricRate').innerHTML = metricInjectionRate.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
// Show result container
document.getElementById('result').style.display = "block";
}