generate_aquifer_influence
Generate aquifer influence functions for reservoir simulation to quantify water influx from surrounding aquifers into hydrocarbon reservoirs using Van Everdingen & Hurst analytical solutions.
Instructions
Generate Van Everdingen & Hurst aquifer influence functions.
CRITICAL AQUIFER MODELING TOOL - Creates dimensionless aquifer influence functions for AQUTAB keyword in ECLIPSE/Intersect. These functions quantify water influx from surrounding aquifers into hydrocarbon reservoirs.
Parameters:
res (float or list, required): Dimensionless aquifer radius (ReD). Must be > 1.0. Can be scalar or list. Typical: 5-100. Example: 10.0. ReD = re/rw where re = aquifer outer radius, rw = reservoir radius.
start (float, required): Minimum dimensionless time (tD_min). Must be > 0. Typical: 0.01-1.0. Example: 0.1.
end (float, required): Maximum dimensionless time (tD_max). Must be > start. Typical: 10-1000. Example: 100.0.
rows (int, required): Number of time points in table. Must be > 0. Typical: 20-100. Example: 50. More rows = smoother curves.
Background: Van Everdingen & Hurst (1949) developed analytical solutions for aquifer influx using diffusivity equation. These functions relate:
Dimensionless time (tD) = (k × t) / (φ × μ × ct × rw²)
Dimensionless pressure (pD) = aquifer response function
Dimensionless radius (ReD) = aquifer geometry
Influence Function: The influence function pD(tD, ReD) represents the dimensionless pressure response at the reservoir-aquifer boundary. It depends on:
Aquifer geometry (radial vs linear, finite vs infinite)
Boundary conditions (constant rate vs constant pressure)
Aquifer properties (permeability, porosity, compressibility)
Applications:
Material Balance: Quantify aquifer support in material balance analysis
Pressure Maintenance: Evaluate aquifer pressure support
Water Influx: Calculate cumulative water influx over time
History Matching: Match production history with aquifer model
Production Forecasting: Predict future aquifer influx
Integration Method: Uses numerical integration (Gaussian quadrature) of diffusivity equation with high-resolution integration (M=8) for accuracy. The solution is computed at specified dimensionless time points.
Returns: Dictionary with:
dimensionless_time (list): Dimensionless time values (tD)
dimensionless_pressures (list): List of pD arrays (one per ReD)
rows (int): Number of time points
dimensionless_radii (list): ReD values used
time_range (dict): Start and end dimensionless times
note (str): Usage guidance for ECLIPSE
inputs (dict): Echo of input parameters
Common Mistakes:
ReD < 1.0 (aquifer radius must be > reservoir radius)
tD_max < tD_min (end must be > start)
Too few rows (<10) causing poor resolution
Wrong dimensionless radius (must match aquifer geometry)
Confusing dimensionless time with actual time
Not accounting for aquifer compressibility
Example Usage:
Result: Table with 50 time points from tD=0.1 to tD=100.0 for ReD=10.0.
Note: AQUTAB keyword is ready for direct inclusion in ECLIPSE DATA file. The influence functions are dimensionless and must be scaled using reservoir and aquifer properties. For multiple aquifers, generate separate tables for each aquifer with different ReD values.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |