Water Injection Rate Calculation

Water Injection Rate Calculator (Voidage Replacement) body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; padding: 20px; background-color: #f4f7f9; } .calculator-container { background: #ffffff; padding: 30px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); margin-bottom: 40px; border-top: 5px solid #0077be; } h1 { text-align: center; color: #2c3e50; margin-bottom: 10px; } .subtitle { text-align: center; color: #666; font-size: 0.9em; margin-bottom: 30px; } .input-group { margin-bottom: 20px; } .input-row { display: flex; gap: 20px; flex-wrap: wrap; } .col-half { flex: 1; min-width: 250px; } label { display: block; margin-bottom: 8px; font-weight: 600; color: #2c3e50; } input[type="number"] { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; box-sizing: border-box; /* Ensures padding doesn't affect width */ } input[type="number"]:focus { border-color: #0077be; outline: none; box-shadow: 0 0 0 3px rgba(0,119,190,0.1); } .help-text { font-size: 12px; color: #7f8c8d; margin-top: 4px; } button { display: block; width: 100%; padding: 15px; background-color: #0077be; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background 0.3s; margin-top: 20px; } button:hover { background-color: #005f99; } #result { margin-top: 30px; padding: 20px; background-color: #eef7fc; border-radius: 8px; border: 1px solid #bfe3f5; display: none; } .result-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #daeef9; } .result-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .result-label { font-weight: 600; color: #555; } .result-value { font-weight: bold; font-size: 1.2em; color: #0077be; } .main-result { text-align: center; padding: 15px; background: #fff; border-radius: 6px; margin-top: 10px; border: 2px solid #0077be; } .main-result .result-label { display: block; font-size: 1.1em; margin-bottom: 5px; color: #2c3e50; } .main-result .result-value { font-size: 2em; color: #0077be; } .article-content { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); } .article-content h2 { color: #2c3e50; border-bottom: 2px solid #f0f0f0; padding-bottom: 10px; margin-top: 30px; } .article-content p { margin-bottom: 15px; } .article-content ul { margin-bottom: 20px; padding-left: 20px; } .article-content li { margin-bottom: 8px; }

Water Injection Rate Calculator

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 Rate 0 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:

  • Maintain reservoir pressure (Pressure Maintenance).
  • Sweep remaining oil towards production wells.
  • Prevent subsidence in the formation.

The Calculation Formula

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.

  • Oil FVF ($B_o$) is 1.25 rb/stb.
  • Water FVF ($B_w$) is 1.02 rb/stb.
  • Target VRR is 1.0 (maintain pressure).

Step 1: Calculate Voidage.
Oil Voidage = 5,000 × 1.25 = 6,250 rb/d
Water Voidage = 1,000 × 1.02 = 1,020 rb/d
Total Voidage = 7,270 rb/d

Step 2: Apply Target VRR.
Required Reservoir Volume = 7,270 × 1.0 = 7,270 rb/d

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"; }

Leave a Comment