SPE Comparative Solution 9 min read

SPE-9: Highly Heterogeneous Blackoil Benchmark

BirSim validation against the Killough (1995) SPE-9 benchmark. 9,000-cell heterogeneous blackoil model with pattern flood and multiple wells.

Permeon Engineering ·

Overview

The SPE-9 comparative solution problem (Killough, 1995) is a significantly more challenging validation case than SPE-1. It features a highly heterogeneous permeability field with values spanning several orders of magnitude, 25 producers and 1 water injector, and complex three-phase flow with strong bubble-point nonlinearity.

SPE-9 is a critical test of a simulator’s ability to handle heterogeneous reservoirs without numerical artifacts. BirSim reproduces the reference solution on cumulative production with byte-level mass conservation preserved, and its per-Newton-iteration cost matches OPM Flow.


Problem Description

ParameterValue
Grid24 × 25 × 15 (Cartesian)
Active cells9,000
Permeability range0.1–7,000 mD (x-direction)
Porosity0.10 – 0.28
Initial pressure3,600 psia at datum
Simulation period900 days
Wells1 injector, 25 producers
Producer controlMin BHP 1,000 psia

The permeability field is highly heterogeneous, with layer permeabilities ranging from nearly impermeable (0.1 mD) to highly conductive (7,000 mD), creating complex multi-layer crossflow and fingering behavior.


Accuracy

BirSim matches the SPE reference solution and OPM Flow on cumulative production. Water production deviations are slightly higher than oil, consistent with the 1–3% spread across simulators reported in the original SPE-9 paper.

Field Oil Production Total (FOPT)

Time (days)Reference (MMSTB)BirSim (MMSTB)Deviation
901.821.83+0.5%
3656.146.17+0.5%
6009.289.35+0.8%
90012.412.5+0.8%

Field Water Production Total (FWPT)

Time (days)Reference (MMSTB)BirSim (MMSTB)Deviation
900.210.210.0%
3652.182.21+1.1%
9009.879.99+1.2%

Performance

The instinct on a slow simulator (“the linear solver must be slow”) is usually wrong. Profiling SPE-9 showed 84% of runtime in Jacobian assembly — an O(n²) connection scan hiding in the kernel. Precomputing per-block transmissibility (O(1) lookup), block-ILU, a lazy-GMRES path, and a dt-target policy cut single-node runtime dramatically, with mass conservation preserved to the byte.

Single-node CPU (2 cores, same host)

BuildRuntimevs OPM
BirSim — first build612 s42× slower
BirSim — default config66.9 s—
BirSim — fully optimized44.6 s~3×
OPM Flow14.6 sreference

That is a 9.2× speedup on the default config and up to 13.7× fully optimized over the first running build. After the work, BirSim’s per-Newton cost matches OPM Flow across assembly, factorization, and linear solve.

Newton-count campaign

The one thing per-iteration parity leaves on the table is the number of iterations. Timestep-solution extrapolation and a predictive dt controller cut total Newton by 62%, bringing accepted-Newton to parity with OPM (226 vs 212) and projecting the best config to ~1.2× OPM.

Multi-CPU / GPU. SPE-9 (9,000 cells) is small enough that MPI adds little; it is reported as a single-node CPU case. Field-scale multi-CPU and GPU comparisons live on the Norne and SPE-10 pages. The GPU backend is in active development.


Heterogeneity Challenge

The SPE-9 permeability field is a stringent test of upwind weighting, transmissibility calculation, and gravity segregation. BirSim uses full-tensor transmissibility (harmonic averaging at interfaces), phase-potential upwinding for stable front tracking, and Stone II three-phase relative permeability — matching the recommendations from the original SPE-9 paper.


Reference

Killough, J.E.: “Ninth SPE Comparative Solution Project: A Reexamination of Black-Oil Simulation,” paper SPE-29110, 13th SPE Reservoir Simulation Symposium, San Antonio, TX, February 1995.