Skip to content
Brent$117.6Gas TTF$1,192USD453.87 ₸
MunaiHub
Well testingDistributed pressure measurements Advanced 22 min read

Lumped multi-tank material balance model

A multi-tank material balance (also called a lumped-parameter material balance) is a model of an accumulation (a pool of oil or gas in the rock) made of several “tanks”. A tank is a block (a part of the accumulation that faults cut off) or a unit (a group of neighbouring layers) inside which we take the pressure to be the same. The tanks are connected by transmissibilities (numbers that say how much fluid passes between two tanks for each unit of pressure difference) across faults and partings (thin tight layers). For each tank we write its own material balance. It contains the production and injection of its wells, the crossflow to neighbouring tanks, and the elastic expansion of the fluids and the rock (the small swelling that happens as the pressure falls). The crossflow is proportional to the pressure difference. The result is a system of ordinary differential equations (equations for the rate of change of each pressure) for the pressures of the blocks in time. The model sits between the single-tank material balance and the grid reservoir simulation model (a computer model that cuts the reservoir into many small cells). It tells the blocks apart, but it does not follow the pressure and saturation inside them.

Why it matters

In an accumulation cut up by faults or tight partings, the pressure falls unevenly. The wells of some blocks lose pressure fast, while others hardly notice the withdrawal. A single tank sees only the average. Its oil in place and its forecast are right for the accumulation as a whole, but not for its parts. Its “apparent” volume also grows with time, as if edge water (water from the aquifer around the accumulation) were feeding the accumulation. A grid model at an early stage is built on guesses, and it takes a long time to recalculate for each test of a hypothesis. Several tanks, matched to the pressures in the blocks, answer the main development questions quickly: which blocks communicate and how well, what volume each group of wells drains, where injection is needed, and how long the pressures take to equalise. The transmissibilities and volumes found are then carried into the reservoir simulation model.

Quick refresher

  • A tank is a volume inside which the pressure is the same. We divide an accumulation into tanks where the pressure difference is concentrated at faults and tight partings. Inside the blocks the pressure must equalise quickly, in a time much shorter than the time constant of the link between the blocks (the time that the pressures of two blocks need to level out).
  • The balance of a tank: its storage capacity multiplied by the rate of change of pressure equals the net inflow from the neighbours minus the withdrawal. The storage capacity C=ctVpC = c_tV_p (the capacitance) is how much fluid the tank gives up when its pressure falls by 1 MPa. The transmissibility TT of a link is the crossflow per 1 MPa of pressure difference.
  • The crossflows between tanks add up to zero. So the average pressure of all the tanks, weighted by storage capacity, behaves like the pressure of a single tank. A single tank is not wrong on average. It is wrong in every block.
  • NN connected tanks have N−1N - 1 time constants. The worst-determined parameters are those of a far block behind a weak link: the pressure history must be comparable with the longest time constant.
  • We find the transmissibilities and storage capacities from the block pressures by least squares (the fit that makes the sum of the squared differences between model and data as small as possible). The result is ranges, and the parameters are correlated: a larger storage capacity of a far block can partly be replaced by a smaller transmissibility.
  • A well with good productivity in a small block quickly loses rate, and in the end it produces no more than the fault lets through. Stimulation (a treatment that raises the productivity of the well) raises noticeably only the initial rate. Pressure maintenance in the block itself helps.
Key relationships
Cj  dpj dt=−qj+∑kTjk (pk−pj)C_j\,\dfrac{\dd p_j}{\dd t} = -q_j + \sum_k T_{jk}\,(p_k - p_j)

balance of tank jj; Cj=ctVp,jC_j = c_tV_{p,j}

∑jCj  dpj dt=−∑jqj\sum_j C_j\,\dfrac{\dd p_j}{\dd t} = -\sum_j q_j

the sum of the balances: the crossflows cancel, and we get the balance of a single tank

q∞=J TJ+T (pnb−pwf),τ=CJ+Tq_\infty = \dfrac{J\,T}{J + T}\,(p_{\text{nb}} - p_{wf}),\quad \tau = \dfrac{C}{J + T}

the limiting rate of a well in a small block, and the time it takes to settle

Δp2a t=1−1−e−xx,x=t TC2\dfrac{\Delta p_2}{a\,t} = 1 - \dfrac{1 - \e^{-x}}{x},\quad x = \dfrac{t\,T}{C_2}

pressure decline in a block behind a fault when the neighbouring block declines evenly

Common pitfalls
  • Taking the pressure of the wells of some blocks for the average of the accumulation and using it for a single tank.
  • Dividing an accumulation into tanks where the pressure inside a block does not equalise faster than between blocks.
  • Fitting all the volumes and transmissibilities at once to a few readings: there are more parameters than independent pieces of information in the data.
  • Placing an injection well where it is easiest to drill, without checking whether that block is connected with the producing wells.
  • Carrying the fitted transmissibilities into a grid model without recalculating them for its cells.

After this lesson you can

  • write the balance of a tank with crossflow to its neighbours, assemble the system for several tanks, and explain why the sum of the equations gives the material balance of a single tank
  • justify dividing an accumulation into tanks: along faults and partings, and by comparing the time for pressure to equalise inside a block with the time between blocks
  • describe wells in the model, with either a given rate or a given bottomhole pressure (the pressure at the bottom of the well), and explain why the rate of a well in a small block is limited not by its productivity but by the transmissibility of the fault
  • fit the transmissibilities and storage capacities of the tanks to the block pressures by least squares, and judge which parameters the data determine and which they do not
  • explain when several tanks are better than one, and where the model is inferior to a reservoir simulation model

From one tank to several

The material balance of a single tank (the idea of the method) assumes that the pressure is the same over the whole accumulation. The more slowly the pressure equalises, the worse this assumption is (assumptions of the balance). In an accumulation cut up by faults and tight partings, the pressure does not change smoothly. It changes by steps at these boundaries. Inside a block it is almost the same, but between blocks it differs by megapascals (blocks and faults). So the structure of the accumulation itself suggests a multi-tank model: each block or unit is a tank, and each fault or parting is a link that lets a limited amount of fluid through (a finite transmissibility).

We test the assumption that the pressure inside a tank is the same by comparing two times. Inside a block the pressure equalises in about the time that the flow needs to reach the pseudo-steady-state regime (the regime in which the pressure falls at the same rate everywhere). In dimensionless time tDAt_{DA} (time scaled to a pure number) this is from 0.1 to 1 or more, depending on the shape of the block and the layout of the wells (stabilisation time). Between blocks the time is set by the time constant of the link, τ=C1C2/((C1+C2) T)\tau = C_1C_2/\big((C_1 + C_2)\,T\big) (time constant of a barrier). Tanks are suitable if the first time is much shorter than the second and shorter than the intervals between pressure readings.

Three blocks of an accumulation and their multi-tank modelABCplan: faults divide the accumulation into three blocksABCTABTBCqAqB

At the top, a plan view: a rectangular accumulation is divided by two faults into three blocks, A, B and C, from left to right. Block A has two production wells, block B has one, and block C has one observation well. At the bottom, the same blocks are shown as three tanks with different liquid levels: A is the lowest and C is the highest. The tanks are joined by pipes labelled T AB and T BC. Withdrawal arrows q A and q B leave tanks A and B.

SchematicAn accumulation of three blocks separated by faults (top, plan view) and its multi-tank model (bottom): tanks with storage capacities CC, linked by transmissibilities TT, and the withdrawals of the wells qq. A diagram, not to scale.
Worked exampleAre the blocks suitable as tanks
Given (assumed data)
Block A
4 × 2.5 km, permeability 200 mD, porosity 0.2; oil 1.2 mPa·s; ct=2.1⋅10−3c_t = 2.1\cdot10^{-3} MPa⁻¹
Pore volumes from the maps
A: 40 million m³, neighbouring block B: 25 million m³
Fault between them
transmissibility estimated from its zone, about 40 m³/(d·MPa)
Pressure readings
once every six months
Solution
  1. Equalisation inside block A: t=tDA ϕμctA/(0.0853 k)t = t_{DA}\,\phi\mu c_tA/(0.0853\,k). At tDA=0.1t_{DA} = 0.1: 0.1⋅0.2⋅1.2⋅0.0021⋅107/(0.0853⋅200)=29.50.1\cdot 0.2\cdot 1.2\cdot 0.0021\cdot 10^7/(0.0853\cdot 200) = 29.5 d. At tDA=0.3t_{DA} = 0.3 it is 88.6 d.
  2. Storage capacities: CA=0.0021⋅40⋅106=84,000C_A = 0.0021\cdot 40\cdot 10^6 = 84{,}000 and CB=52,500C_B = 52{,}500 m³/MPa.
  3. Time constant of the link: 84,000⋅52,500/((84,000+52,500)⋅40)=80884{,}000\cdot 52{,}500/\big((84{,}000 + 52{,}500)\cdot 40\big) = 808 d, or 2.2 years.
  4. Ratio of the times: 808/88.6=9808/88.6 = 9 and 808/29.5=27808/29.5 = 27.
Answer: Inside a block the pressure equalises in one to three months, and between blocks in 2.2 years. The blocks can be treated as tanks if we compare the model with pressures averaged over months, and not with readings from the first weeks after a rate change.

What it means. A margin of 9 to 27 times is enough for readings every six months. But right after a well is started up or shut in, the pressure in the block is not uniform, and the readings of those weeks are compared not with the average pressure of the tank but with the pressure near the well (which pressure to compare with which). If the block were low in permeability, 2 mD instead of 200, the equalisation inside it would take 8 years. We would have to divide it into several tanks or calculate it with a grid model. The data in this example are assumed for illustration.

Equations: the balance of each tank

For each tank the balance is the same as for a single tank, except that crossflows to the neighbours are added to the production and injection. Above the bubble point pressure there is no free gas, and the elastic expansion is proportional to the pressure drop (undersaturated accumulation). So the equations are linear:

Material balance of a tank in the multi-tank model
Cj  dpj dt=−qj+∑kTjk (pk−pj),Cj=ct Vp,jC_j\,\frac{\dd p_j}{\dd t} = -q_j + \sum_k T_{jk}\,(p_k - p_j),\qquad C_j = c_t\,V_{p,j}
where:
  • pjp_javerage pressure of tank jj, brought to one datum depth (a chosen reference depth), MPa
  • CjC_jstorage capacity (capacitance) of the tank: the volume that it gives up when its pressure falls by 1 MPa, m³/MPa
  • ct, Vp,jc_t,\ V_{p,j}total compressibility of the rock and the fluids, and the pore volume of the tank, 1/MPa, m³
  • qjq_jnet withdrawal of the wells of the tank (production minus injection) at reservoir conditions, m³/d
  • TjkT_{jk}transmissibility of the link between tanks jj and kk: the crossflow per 1 MPa of pressure difference, Tjk=TkjT_{jk} = T_{kj}. For a section of a fault it is 0.0853 (kf/lf) Af/μ0.0853\,(k_f/l_f)\,A_f/\mu, m³/(d·MPa)
  • tttime, d

Units: metric oilfield: MPa, m³, m³/d, days

Holds when
  • the pressure inside a tank is the same: it equalises much faster than between tanks
  • single-phase undersaturated oil or water, with constant compressibility and viscosity; below the bubble point pressure the storage capacity depends on pressure, and the equations are nonlinear (see the advanced section)
  • the crossflow through a link is proportional to the pressure difference of the tanks: the flow through it is steady-state, and the storage capacity of the link itself is ignored

The pressure of a tank changes at a rate equal to the net inflow, with the crossflows, divided by its storage capacity. Crossflow goes from the tank with the higher pressure, so the links smooth out the differences. The lower the transmissibility, the longer a pressure difference lasts. This is the same equation as for a cell of a grid model (cell equation). There the same quantity is called the connection coefficient of the cells and is expressed through their geometric transmissibility, and here the “cells” are natural blocks.

We express the transmissibility of a fault through the transmissibility of its zone, kf/lfk_f/l_f (the permeability of the fault zone divided by its thickness), and the area open to crossflow (transmissibility of a fault section). We express the transmissibility of a tight parting between units through its permeability, thickness and area (balance of two units).

Sum of the balances. Each crossflow enters the equations of two tanks with opposite signs, and it cancels when we add them: ∑jCj  dpj/ dt=−∑jqj\sum_j C_j\,\dd p_j/\dd t = -\sum_j q_j. The pressure averaged with the storage capacities as weights, pˉ=∑jCjpj/∑jCj\bar p = \sum_j C_jp_j/\sum_j C_j, behaves exactly like the pressure of a single tank with the total storage capacity (depletion of a closed area). So a single tank is not wrong on average, provided that the average pressure is a true average over the volume. It is wrong when the “average” is taken over the wells and the wells stand in only some of the blocks.

How many time constants the system has. The pressure difference of two tanks settles with a single time constant (exact solution for two units). NN tanks have N−1N - 1 such times. The short ones equalise neighbours that are well connected, and the long ones equalise far blocks behind weak links. This gives the main rule of fitting: the parameter that belongs to the longest time can be determined only if the pressure history is comparable with that time (see the advanced section).

Edge water and boundaries. We describe an aquifer by one more tank, with a large storage capacity and its own transmissibility of the link with the accumulation. This is the Fetkovich model (the aquifer as a tank behind a resistance). A block whose pressure is held by injection is described by a tank at constant pressure.

A well in a small block: the fault limits the rate

Sometimes a productive well stands in a small block that is connected to the rest of the accumulation by a fault that passes fluid poorly. At constant bottomhole pressure, the rate of the well is described by one tank with one link and the well. The initial rate is set by the productivity of the well. The final rate is set by a chain of two “resistances” in series, the fault and the well.

Rate of a well in a small block behind a fault
q(t)=q∞+(q0−q∞) e−t/τ,τ=CJ+T,q0=J (pnb−pwf),q∞=J TJ+T (pnb−pwf)\begin{aligned} q(t) &= q_\infty + (q_0 - q_\infty)\,\e^{-t/\tau},\qquad \tau = \frac{C}{J + T}, \\ q_0 &= J\,(p_{\text{nb}} - p_{wf}),\qquad q_\infty = \frac{J\,T}{J + T}\,(p_{\text{nb}} - p_{wf}) \end{aligned}
where:
  • q, q0, q∞q,\ q_0,\ q_\inftyrate of the well at reservoir conditions: current, initial and limiting, m³/d
  • JJproductivity index of the well, m³/(d·MPa)
  • TTtransmissibility of the fault between the block and its neighbour, m³/(d·MPa)
  • CCstorage capacity of the block, ctVpc_tV_p, m³/MPa
  • pnbp_{\text{nb}}pressure of the neighbouring block: that block is large, or its pressure is held by injection, MPa
  • pwfp_{wf}bottomhole pressure of the well, MPa
  • τ\tautime constant of the decline of the rate, d

Units: metric oilfield

Holds when
  • the block is a tank; the pressure of the neighbouring block is constant; at the start the pressure of the block equals that of its neighbour
  • the bottomhole pressure and the productivity are constant; the flow is single-phase, above the bubble point pressure

When J≫TJ \gg T, the limiting rate is close to T (pnb−pwf)T\,(p_{\text{nb}} - p_{wf}) and hardly depends on the productivity of the well. The change from the initial rate to the limiting one takes several τ\tau. After the well is shut in, the block recovers more slowly, with the constant C/TC/T, because it is fed only through the fault.

Worked exampleA well in a small block, and stimulation
Given (assumed data)
Block
pore volume 3.0 million m³; ct=2.1⋅10−3c_t = 2.1\cdot10^{-3} MPa⁻¹
Fault
transmissibility 8 m³/(d·MPa); injection holds the pressure of the neighbouring block at 28.0 MPa
Well
J=40J = 40 m³/(d·MPa), bottomhole pressure 20.0 MPa; after stimulation J=80J = 80
Solution
  1. Storage capacity of the block: C=0.0021⋅3.0⋅106=6300C = 0.0021\cdot 3.0\cdot 10^6 = 6300 m³/MPa. Initial rate: q0=40⋅(28.0−20.0)=320q_0 = 40\cdot(28.0 - 20.0) = 320 m³/d.
  2. Limiting rate: q∞=40⋅8/48⋅8.0=53.33q_\infty = 40\cdot 8/48\cdot 8.0 = 53.33 m³/d. Time constant: τ=6300/48=131.25\tau = 6300/48 = 131.25 d.
  3. After a year: e−365/131.25=0.0620\e^{-365/131.25} = 0.0620 and q=53.33+(320−53.33)⋅0.0620=69.9q = 53.33 + (320 - 53.33)\cdot 0.0620 = 69.9 m³/d. Produced in the year: 53.33⋅365+(320−53.33)⋅131.25⋅(1−0.0620)=52.353.33\cdot 365 + (320 - 53.33)\cdot 131.25\cdot(1 - 0.0620) = 52.3 thousand m³.
  4. With J=80J = 80: q0=640q_0 = 640, q∞=80⋅8/88⋅8.0=58.2q_\infty = 80\cdot 8/88\cdot 8.0 = 58.2 m³/d and τ=6300/88=71.6\tau = 6300/88 = 71.6 d. In the year it produces 62.6 thousand m³.
  5. After a shut-in the pressure of the block recovers to 28.0 MPa with the constant C/T=6300/8=788C/T = 6300/8 = 788 d, which is more than two years.
Answer: The rate falls from 320 to 69.9 m³/d in a year and tends to 53.33. Stimulation doubles the initial rate, but it raises the limiting rate only to 58.2 m³/d, and the production in a year by only 20%.

What it means. The rate of such a well is limited not by the well but by the fault: in the end it produces as much as the fault lets through. Suppose the bottomhole pressure cannot be lowered below some limit: the well stops flowing on its own, or the pump can no longer deliver. Then the well “dies”. After a long shut-in, when the block has been recharged through the fault, it works again. This is how wells in strongly fragmented accumulations come to work on and off. What helps is not stimulation but pressure maintenance in the block itself: an injection well in it, or a well that is open to both blocks. The data in this example are assumed for illustration.

Rate of a well in a small block for two productivities01803655457300100200300400500600700Time, dRate, m³/d (reservoir)limit set by the fault: 53 and 58J = 80J = 40

A graph of rate from 0 to 700 cubic metres per day against time from 0 to 730 days. The curve for a productivity of 80 starts at 640 and falls steeply. The curve for 40 starts at 320 and declines more slowly. Around day 130 the curves cross at 150 cubic metres per day, and until about day 515 the curve for 40 runs higher. By the end of the first year it is about 70. Both approach horizontal dotted limits of about 58 and 53 cubic metres per day.

CalculatedThe rate of the well in the small block of the example, for productivities of 40 and 80 m³/(d·MPa). Stimulation doubles the initial rate, but after only four months this well produces less, because it has used up the elastic reserve of the block faster. After a year both curves approach almost the same limits, which are set by the fault (dotted).

Fitting the model to the block pressures

The model works in two modes. In the forward mode the storage capacities and transmissibilities are given, and we calculate the pressures from the schedule of withdrawals. This is a forecast. In the inverse mode the block pressures are known from measurements, and we adjust the storage capacities and transmissibilities until the calculation agrees with them within the error. This is history matching (History matching).

Which pressures are suitable. We need the average pressures of the blocks, brought to one datum depth. They come from the pressure build-up in shut-in wells (Build-up in a bounded reservoir and average reservoir pressure), from tester surveys in new wells (Pressure measurements in producing reservoirs: barriers and accuracy) and from permanent gauges. The most valuable reading is the first well in a block that has not yet been put on production. Its pressure shows at once whether the block communicates with the working ones (see the example below). We take the withdrawals and injection of each block from field records. We divide the production of a well that is open to several tanks by the results of production logging (measurements of the flow of each unit in a working well).

What the data determine. The block pressures respond not to each quantity separately, but to combinations of them. The total pressure decline sets the total storage capacity of the connected blocks. The pressure difference of neighbouring blocks is the crossflow divided by the transmissibility, and the crossflow depends on the storage capacities behind the link. A larger storage capacity of a far block can partly be replaced by a smaller transmissibility. Two things help to separate them: the transient periods (after wells start up and shut in, and when injection begins), where the time constants show themselves, and independent estimates of the volumes from the maps. So we fit only a few parameters, as many as the data can determine, and take the rest from the geology.

Worked exampleThe first well in a neighbouring block: does the fault hold back the flow
Given (assumed data)
Block 1
on production for 500 days; its pressure from permanent gauges falls almost evenly, by 2.4 kPa/d
Block 2
behind the fault, no wells; pore volume from the maps 18 million m³ (±20%); ct=2.1⋅10−3c_t = 2.1\cdot10^{-3} MPa⁻¹
Reading
a new well in block 2 showed on day 500 a pressure 0.30 MPa below the initial one; the error is ±0.02 MPa (the same gauge and the same datum depth as in the initial survey)
Solution
  1. Block 2 is a tank fed only through the fault: C2  dp2/ dt=T (p1−p2)C_2\,\dd p_2/\dd t = T\,(p_1 - p_2). If p1p_1 falls evenly at the rate aa, the decline in block 2 is Δp2=a [t−τ (1−e−t/τ)]\Delta p_2 = a\,\big[t - \tau\,(1 - \e^{-t/\tau})\big], with τ=C2/T\tau = C_2/T. We divide by the decline in block 1: Δp2/(a t)=1−(1−e−x)/x\Delta p_2/(a\,t) = 1 - (1 - \e^{-x})/x, where x=t/τx = t/\tau.
  2. The decline in block 1 is 0.0024⋅500=1.20.0024\cdot 500 = 1.2 MPa. The ratio is 0.30/1.2=0.250.30/1.2 = 0.25.
  3. We solve the equation 1−(1−e−x)/x=0.251 - (1 - \e^{-x})/x = 0.25 by trial: x=0.606x = 0.606. Check: e−0.606=0.5455\e^{-0.606} = 0.5455 and 1−(1−0.5455)/0.606=0.25001 - (1 - 0.5455)/0.606 = 0.2500.
  4. Time constant: τ=500/0.606=825\tau = 500/0.606 = 825 d. Storage capacity: C2=0.0021⋅18⋅106=37,800C_2 = 0.0021\cdot 18\cdot 10^6 = 37{,}800 m³/MPa. Transmissibility: T=37,800/825=45.8T = 37{,}800/825 = 45.8 m³/(d·MPa).
  5. The reading error of ±0.02 MPa gives TT from 42 to 50. The volume error of ±20% adds another ±20%, because the transmissibility is proportional to the storage capacity that we assume. A decline of less than 0.04 MPa (two errors) would mean T<5T < 5: the fault hardly passes any fluid. A decline equal to the 1.2 MPa of block 1 would mean that the fault does not hinder the flow.
Answer: The fault partly passes fluid: T≈46T \approx 46 m³/(d·MPa) (±22% with the volume error included), and the time constant of block 2 is about 2.3 years.

What it means. A single reading in a new well answers a question that seismic data cannot answer: does the fault hold back the flow? The answer is not “yes or no” but a number with an error, and almost all of the error comes from the volume of the block. We check the transmissibility that we found with the next readings. With it, the model must predict how the pressure in block 2 will go on falling. The calculation assumes that block 2 is fed only through this fault. The pressure of block 1 is taken from the gauges, so its own links with other blocks do not affect the result. The data in this example are assumed for illustration.

Pressure readings in blocks A, B and C (day — pressure, MPa)
Block
A
Readings
200 — 28.72; 400 — 27.31; 600 — 26.26; 800 — 24.82; 1000 — 23.73; 1200 — 22.36
How obtained
pressure build-up in the production wells
Block
B
Readings
400 — 29.68; 600 — 28.14; 800 — 26.99; 1000 — 25.72; 1200 — 24.42
How obtained
on day 400, a formation tester in the first well of the block, then pressure build-up
Block
C
Readings
900 — 29.71; 1050 — 29.67; 1200 — 29.52
How obtained
a formation tester in a new well, then a permanent gauge

The pressures are block averages brought to the datum depth. The error of each is ±0.10 MPa. The initial pressure of all the blocks is 30.0 MPa. The data are assumed for illustration.

Worked exampleFault transmissibilities and the storage capacity of the far block from the pressures
Given (assumed data)
Blocks
A, B and C in a row, with faults A–B and B–C; pore volumes from the maps 40, 25 and 30 million m³; ct=2.1⋅10−3c_t = 2.1\cdot10^{-3} MPa⁻¹
Withdrawals at reservoir conditions
A: 600 m³/d from the start of production; B: 300 m³/d from day 400; there are no producing wells in C
Readings
the table above
What is fitted
TABT_{AB}, TBCT_{BC} and the storage capacity of block C (63,000 m³/MPa from the map, but the block has only one well, an observation well); the storage capacities of A and B are taken from the maps
Solution
  1. The model is three tank balances for the chain A–B–C, with CA=84,000C_A = 84{,}000 and CB=52,500C_B = 52{,}500 m³/MPa. We calculate the pressures numerically, with a time step of one day.
  2. The guesses “the faults hardly pass fluid” (T=1T = 1) and “the faults are open” (T=200T = 200) give M=37M = 37 and M=187M = 187 (MM is the objective function, a number that measures how far the model is from the readings). The mismatches are many times larger than the error.
  3. The minimum of the objective function MM by least squares is at TAB=38.5T_{AB} = 38.5 and TBC=13.8T_{BC} = 13.8 m³/(d·MPa), CC=64.3C_C = 64.3 thousand m³/MPa. Here M=0.47M = 0.47: the mismatches are at the level of the reading error.
  4. Errors from the curvature of MM near the minimum: TABT_{AB} is ±8%, TBCT_{BC} is ±23% and CCC_C is ±28%. The correlation coefficient of the estimates of TBCT_{BC} and CCC_C (it shows how strongly the two estimates trade off against each other) is 0.80.
  5. Calculation for day 1200: A is 22.41, B is 24.46 and C is 29.50 MPa, against the measured 22.36, 24.42 and 29.52.
  6. A single tank for all the readings: the best storage capacity is 211 thousand m³/MPa, but M=486M = 486. On day 1200 it gives 30.0−960,000/211,390=25.4630.0 - 960{,}000/211{,}390 = 25.46 MPa, which is 3.10 MPa above the pressure of block A and 4.06 MPa below the pressure of block C.
Answer: Fault A–B has a transmissibility of about 38.5, and fault B–C about 13.8 m³/(d·MPa). The storage capacity of block C from the pressures agrees with the map. A single tank cannot describe these data.

What it means. The parameters of the far block C are determined worst. Its slow time constant, 3723 d, is three times longer than the history, and its storage capacity and the transmissibility of the fault B–C partly replace each other. In terms of the fault zone (from transmissibility to the model), kf/lf=Tμ/(0.0853 Af)k_f/l_f = T\mu/(0.0853\,A_f) is about 0.011 and 0.0039 mD/m for an open area of 50,000 m². The readings were generated by this same model, with transmissibilities of 40 and 15 m³/(d·MPa), a storage capacity of C of 63,000 m³/MPa, and random errors of a few hundredths of a megapascal. The fit recovered them within the error. If the storage capacities of A and B were fitted as well, the uncertainty would grow. The pressures determine above all the sum of the storage capacities and the ratios of the storage capacities to the transmissibilities. The data in this example are assumed for illustration.

Pressures of the three blocks: readings and the fitted model030060090012002224262830Time, dBlock pressure, MPablock Ablock Bblock Cone tank

A graph of pressure from 21 to 30.5 megapascals against time from 0 to 1200 days. The curve of block A falls almost along a straight line from 30 to 22.4 megapascals. The curve of B stays near 29.7 until day 400 and then falls to 24.5. The curve of C hardly changes and falls only to 29.5 by day 1200. The reading points, with vertical error bars, lie on their curves. The dashed line of the single tank goes from 30 to 25.5 megapascals between the curves of A and C.

CalculatedThe block pressures from the example: the readings with an error of ±0.10 MPa, and the calculation with the fitted model. The dashed line is the best single tank. It runs between the blocks and does not describe any of them.

When several tanks are better than one

Suppose we treat the accumulation as a single tank, using the pressure of the working wells. If these wells stand in only some of the blocks, the calculation sees only the volume that has had time to respond. The apparent storage capacity (the withdrawal so far divided by the pressure drop), Q/(pi−p)Q/(p_i - p), then grows with time, as if edge water were feeding the accumulation or new volumes were joining in (limitations of the balance). In the example above, from the pressure of block A it would be 89, 116 and 126 thousand m³/MPa on days 400, 800 and 1200, while the total storage capacity of the three blocks is about 201 thousand m³/MPa. Pressure readings on the other side of the faults, and the geology, help to tell far blocks from an aquifer. The growth itself is a reason to build a model of several tanks.

In a gas accumulation the same picture shows on the p/Zp/Z plot (pressure divided by the gas deviation factor ZZ; the p/Z straight line). With the pressure of the wells of the nearest block, the points first lie on a steep straight line that belongs to this block only. When the far block starts to give up its gas, the plot flattens. A straight line through the early points underestimates the gas in place, and the gas of the far blocks shows up later, the worse the link is. A multi-tank model of a gas accumulation writes the same balance for each tank in the p/Zp/Z form, and the crossflow between tanks in standard cubic metres (the volume at standard surface conditions). The equations become nonlinear, but they are solved numerically in the same way.

The main benefit of several tanks is a forecast by block. A single tank says how the average pressure will fall, and it is “supported” by injection in the same way at any point. Several tanks show in which block the wells will lose pressure first, and which injection will reach them.

Worked exampleWhere to inject water
Given (assumed data)
Model
the one fitted in the previous example; the same withdrawals
Options
injection of 600 m³/d from day 1300, into an existing well of block C, into a new well of block B, or into a new well of block A
Constraint
the pressure in block A must not fall below the bubble point pressure of 18 MPa
Solution
  1. Without injection the pressure in block A falls to 18 MPa on day 1921. By day 3000 it is 11.7 MPa.
  2. Injection into C: block A reaches 18 MPa on day 1927, and by day 3000 it is 12.2 MPa. The pressure in block C itself rises to 39.75 MPa, which is 9.75 MPa above the initial pressure.
  3. Injection into B: 18 MPa is reached on day 2129, which is 208 days later than without injection. By day 3000 it is 15.5 MPa.
  4. Injection into A: by day 3000 the pressure in block A is 21.1 MPa, above the bubble point pressure for the whole period.
  5. A single tank (storage capacity 211 thousand m³/MPa) does not tell the injection points apart: by day 3000 it gives 22.6 MPa with injection and 17.8 MPa without it.
Answer: Injection into block C delays the fall of the pressure in block A to the bubble point pressure by only 6 days, and injection into block B by 208 days. Injection into block A itself keeps the pressure above the bubble point pressure for the whole period.

What it means. Injection behind two weakly conducting faults builds up the pressure in its own block, and the producing wells get almost no help. In addition, the pressure in block C would reach the allowable injection pressure (the highest pressure that does not fracture the rock; Fracture gradient and leak-off testing), and the injection would have to be cut back. A single tank does not see this. At any injection point it promises the same thing: a pressure above the bubble point pressure for the whole period. A multi-tank model compares the options in seconds. We then test the chosen option with a grid model, which accounts for the displacement of oil by water and for the water cut of the wells (the share of water in the produced liquid) (voidage replacement). The data in this example are assumed for illustration.

Pressure in block A with injection into different blocks0100020003000101418222630Time, dPressure in block A, MPabubble point pressureinjection startsinjection in Aone tankinjection in Binjection in Cno injection

A graph of pressure from 10 to 31 megapascals against time from 0 to 3000 days. Until day 1300 all the curves coincide, falling from 30 to about 22. After that, the curve without injection and the almost coincident curve of injection into block C fall to 11.7 and 12.2 megapascals and cross 18 at about day 1920. The curve of injection into B falls more slowly, to 15.5, and crosses 18 at about day 2130. The curve of injection into A flattens and stays near 21 by day 3000. The dashed curve of the single tank without injection runs above all the others until day 2000, then drops below the curve of injection into A, and reaches 18 only by day 3000.

CalculatedThe pressure in block A from the fitted model with injection of 600 m³/d from day 1300 into different blocks, and without injection. The dashed line is the forecast of a single tank without injection. The horizontal line is the bubble point pressure of 18 MPa.

Limits of the method, and the reservoir simulation model

What a single tank, several tanks and a grid model can see
Question
Oil in place of the connected volume
Single tank
as a whole
Several tanks
by block
Grid model
by cell
Question
Communication between blocks
Single tank
none
Several tanks
transmissibilities of the links
Grid model
transmissibility multipliers
Question
Pressure at the well
Single tank
no
Several tanks
average over its block
Grid model
with the drawdown and the influence of neighbours
Question
Saturation, water front
Single tank
average
Several tanks
average by block
Grid model
by cell
Question
Time of one run
Single tank
fractions of a second
Several tanks
seconds
Grid model
minutes and hours

The comparison is for a single-phase problem above the bubble point pressure. Below it, and in waterflooding, a multi-tank model needs phase balances and quickly loses its simplicity.

  • Uniformity of the tank. Inside a tank there are no drawdown cones (zones of lowered pressure around the wells) and no fronts. The pressure at a working well is lower than the average pressure of the tank by the drawdown of the well, so we compare the model with the average pressures of the blocks.
  • Phases. Above the bubble point pressure the equations are linear. Below it gas comes out of solution, the storage capacity of a tank starts to depend on pressure and saturation, and the crossflow carries oil and gas in different shares. We add phase balances to each tank, and the model comes closer to a grid model.
  • The division is set in advance. The tanks follow the faults and partings that the geologist has chosen. With a wrong division, the fit will find parameters that explain the history but predict the future badly (non-uniqueness). We compare the options for the division by the quality of the fit and by the forecasts.
  • Number of parameters. Each tank adds a storage capacity, and each link adds a transmissibility. There must be noticeably fewer parameters than independent pieces of information in the data, so we tie them together with the geology. For example, a long fault across which five pairs of neighbouring blocks communicate is described by one fault-zone transmissibility kf/lfk_f/l_f, and the area of each section open to crossflow is taken from the maps. Five unknown transmissibilities turn into one.

We usually build the multi-tank model before the grid model, and together with it. We convert its transmissibilities into kf/lfk_f/l_f and set the transmissibility multipliers of the faults (factors that scale the flow between neighbouring cells) in the cells of the model, after recalculating them for the size of the cells (transmissibility multiplier, Interblock flow and transmissibility). We compare the storage capacities of the blocks with the volumes from the maps. The grid model must reproduce the same block pressures to which the multi-tank model was fitted. Perched water under a block (Perched and tilted contacts, trapped water; a pocket of water that is cut off from the main aquifer) in such a model is not an aquifer that gives pressure support. It is only a small addition to the storage capacity of its own tank.

Terms and symbols

Tank
A part of an accumulation, a block or a unit, in which we take the pressure to be the same. An element of the multi-tank model.
Storage capacity (capacitance) CC
ctVpc_tV_p, the volume that a tank gives up when its pressure falls by 1 MPa, in m³/MPa.
Transmissibility of a link TT
The crossflow between tanks per 1 MPa of pressure difference, in m³/(d·MPa). For a fault it is found from the transmissibility of its zone kf/lfk_f/l_f and its area.
Time constant of a link
The time for the pressure to equalise between tanks. NN connected tanks have N−1N - 1 such times.
Forward and inverse problem
Calculating the pressures from known storage capacities and transmissibilities, and fitting these parameters to the measured pressures.
Apparent storage capacity
Q/(pi−p)Q/(p_i - p) from the pressure of a part of the accumulation. Its growth points to volumes that have not been counted, or to water influx.

Common mistakes and misconceptions

Wrong

“The average pressure of the wells is the average pressure of the accumulation.”

In fact

The wells stand in only some of the blocks. The average pressure that obeys the balance of a single tank is the average over the storage capacities of all the blocks, and it needs readings in all the blocks.

Wrong

“A well in a small block has quickly lost its rate, so it needs stimulation.”

In fact

If the fault limits the rate, stimulation raises noticeably only the initial rate. In the lesson's example the limiting rate grew only from 53 to 58 m³/d. Pressure maintenance in the block itself helps.

Wrong

“The model matched the readings, so the transmissibilities have been found accurately.”

In fact

Other combinations of parameters also describe the history within the error, especially for far blocks. The result of a fit is ranges and their correlation, and we check the forecast with new readings.

Wrong

“Injection into any block supports the whole accumulation, and only its volume matters.”

In fact

Behind weakly conducting faults, injection builds up the pressure of its own block and hardly reaches the producing wells. We choose the injection point by the transmissibilities of the links.

Wrong

“The initial pressures of the blocks were the same, so the blocks communicate well and tanks are not needed.”

In fact

The match tells us that the pressures equalised over geological time. We test communication over the years of production from the response of the block pressures to production (isolated blocks).

In depth: advanced detail

Time constants of a chain of tanks

In matrix form (with tables of numbers called matrices) the system of tanks is written as C p˙=−K p−q\mathbf C\,\dot{\mathbf p} = -\mathbf K\,\mathbf p - \mathbf q. Here C\mathbf C is the diagonal matrix of storage capacities, and K\mathbf K is the symmetric matrix of links. On its diagonal stands the sum of the transmissibilities of the tank, and off the diagonal stand the transmissibilities with a minus sign, so that the sum of each row is zero. The solution is a sum of modes (separate patterns of change, each with its own time). One mode is the common pressure decline of all the tanks. The other N−1N - 1 decay as e−λt\e^{-\lambda t}, where λ\lambda are the eigenvalues of the matrix C−1K\mathbf C^{-1}\mathbf K (the numbers that give the decay rates), and 1/λ1/\lambda are the time constants. For three tanks in a chain, the non-zero eigenvalues come from a quadratic equation:

Time constants of three tanks in a chain
λ2−s1λ+s2=0,τ=1/λ,s1=TABCA+TAB+TBCCB+TBCCC,s2=TAB TBC (CA+CB+CC)CA CB CC\begin{aligned} &\lambda^2 - s_1\lambda + s_2 = 0,\qquad \tau = 1/\lambda, \\ &s_1 = \frac{T_{AB}}{C_A} + \frac{T_{AB} + T_{BC}}{C_B} + \frac{T_{BC}}{C_C},\qquad s_2 = \frac{T_{AB}\,T_{BC}\,(C_A + C_B + C_C)}{C_A\,C_B\,C_C} \end{aligned}
where:
  • λ\lambdanon-zero eigenvalues of C−1K\mathbf C^{-1}\mathbf K, the inverse time constants, 1/d
  • s1s_1trace of the matrix C−1K\mathbf C^{-1}\mathbf K (the sum of the numbers on its diagonal), which is the sum of the eigenvalues, 1/d
  • s2s_2the sum of its principal minors of second order (small determinants cut out along the diagonal), which is the product of the non-zero eigenvalues, 1/d²
  • CA, CB, CCC_A,\ C_B,\ C_Cstorage capacities of the tanks, m³/MPa
  • TAB, TBCT_{AB},\ T_{BC}transmissibilities of the links; there is no A–C link, m³/(d·MPa)

Units: metric oilfield

Holds when
  • a chain A–B–C with no direct A–C link; the storage capacities and transmissibilities are constant.

The two roots give two times: a short one and a long one. If one link is much stronger than the other, the short time equalises the strongly connected pair, and the long time pulls the far tank towards it. A pressure history shorter than the long time determines the parameters of the far tank poorly.

Worked exampleThe two times of the field in the example
Given (assumed data)
Storage capacities
CA=84,000C_A = 84{,}000 and CB=52,500C_B = 52{,}500 m³/MPa; CCC_C is the fitted one, 64,300 m³/MPa
Transmissibilities
fitted: TAB=38.5T_{AB} = 38.5 and TBC=13.8T_{BC} = 13.8 m³/(d·MPa)
Solution
  1. s1=38.5/84,000+52.3/52,500+13.8/64,300=1.6691⋅10−3s_1 = 38.5/84{,}000 + 52.3/52{,}500 + 13.8/64{,}300 = 1.6691\cdot 10^{-3} 1/d.
  2. s2=38.5⋅13.8⋅200,800/(84,000⋅52,500⋅64,300)=3.762⋅10−7s_2 = 38.5\cdot 13.8\cdot 200{,}800/(84{,}000\cdot 52{,}500\cdot 64{,}300) = 3.762\cdot 10^{-7} 1/d².
  3. Roots: λ=(s1±s12−4s2)/2\lambda = \big(s_1 \pm \sqrt{s_1^2 - 4s_2}\big)/2. s12−4s2=1.1319⋅10−3\sqrt{s_1^2 - 4s_2} = 1.1319\cdot 10^{-3}, λ1=1.4005⋅10−3\lambda_1 = 1.4005\cdot 10^{-3} and λ2=2.686⋅10−4\lambda_2 = 2.686\cdot 10^{-4} 1/d.
  4. Time constants: 1/λ1=7141/\lambda_1 = 714 d and 1/λ2=37231/\lambda_2 = 3723 d.
Answer: About 2.0 and 10 years. The pair A–B equalises in two years, and block C catches up with it in ten.

What it means. The three-year history covered the short time in full and only a third of the long one. This is why the transmissibility of the fault A–B was found three times more accurately than that of B–C, and the storage capacity of block C is known only roughly. Readings in block C itself are not the only way to narrow the range. In the model of the example, two readings in block B, 165 and 365 days after the last ones, reduce the error of TBCT_{BC} from 23 to 13%. The same readings in block C hardly change it (23%). The crossflow from C affects the pressure of block B most, while the pressure of C itself changes little. The model shows which readings are more useful even before they are planned. The data in this example are assumed for illustration.

The same matrix gives a practical rule for the calculation. An explicit time step (one that uses only the values from the previous step) is limited by the shortest of the times of the system. In the fitted model of three blocks it is 714 d, so an explicit step of one day is stable with a margin. But a small tank behind a strong link has a time of a day or less. The more the times differ, the stiffer the system is (the harder it is to calculate step by step). So multi-tank models like these, as grid models do, are calculated implicitly (each step solves for all the new pressures together) or exactly, through the eigenvalues (why pressure is calculated implicitly).

Below the bubble point pressure, and gas tanks

Below the bubble point pressure we write the balance of each tank in the full form of the lesson General material balance equation for oil reservoirs. The withdrawal FjF_j equals Nj(Eo+Efw)N_j(E_o + E_{fw}) plus the inflow from the neighbours. The crossflow through a link carries oil and the gas that has come out of solution, in shares set by the mobilities of the phases at the link. The storage capacity of the tank is no longer constant, and it grows as gas is released. We solve the equations in time steps, with iterations at each step.

For gas tanks the p/Zp/Z form is convenient. The gas of tank jj, after the withdrawal Gp,jG_{p,j} and the crossflows, occupies the same pore volume, and (p/Z)j=(p/Z)i (1−(Gp,j+outflowj)/Gj)(p/Z)_j = (p/Z)_i\,\big(1 - (G_{p,j} + \text{outflow}_j)/G_j\big) (closed gas accumulation). The crossflow between gas tanks is roughly proportional to the difference of the squares of the pressures, as long as the product of the gas viscosity and the gas deviation factor changes little. As before, we fit the gas in place of the tanks and the transmissibilities of the links to the block pressures in time.

Connections to other topics

Check yourself

  1. 1

    Three blocks are connected by faults, and production comes only from the first one. How does the pressure averaged by storage capacity over all three blocks change?

    1. A.It does not change until the crossflows settle
    2. B.In the same way as in a single tank with their total storage capacity
    3. C.In the same way as the pressure of the first block
    4. D.More slowly, because crossflows feed the first block
    Show the answer

    Correct answer: B. In the same way as in a single tank with their total storage capacity

    Each crossflow leaves one tank and enters another, so the crossflows cancel in the sum of the balances: ∑Cj  dpj/ dt=−q\sum C_j\,\dd p_j/\dd t = -q. The pressure averaged by storage capacity falls as in a single tank. The crossflows only share the decline out between the blocks.

  2. 2

    A block with a pore volume of 2 million m³ (ct=2⋅10−3c_t = 2\cdot10^{-3} MPa⁻¹) is connected to a large supported block by a fault with T=5T = 5 m³/(d·MPa). The well in it has J=30J = 30 m³/(d·MPa), and its bottomhole pressure is 10 MPa below the pressure of the neighbouring block. Find the initial and limiting rates and the time constant.

    Show the answer

    C=0.002⋅2⋅106=4000C = 0.002\cdot 2\cdot10^6 = 4000 m³/MPa. q0=30⋅10=300q_0 = 30\cdot 10 = 300 m³/d. q∞=30⋅5/35⋅10≈42.9q_\infty = 30\cdot 5/35\cdot 10 \approx 42.9 m³/d, limited by the fault. τ=4000/35≈114\tau = 4000/35 \approx 114 d, so within a year the rate almost reaches the limit. After a shut-in the block recovers with the constant 4000/5=8004000/5 = 800 d.

  3. 3

    The first well in a block behind a fault, two years after production began in the neighbouring block, showed the initial pressure, although the neighbouring block is depleted by 3 MPa. What does this mean?

    1. A.The gauge was wrong by 3 MPa
    2. B.The blocks communicate well
    3. C.Over a time scale of years the fault hardly passes any fluid (or another source that we have not counted feeds the block)
    4. D.The block pressures equalised over geological time, so the connection is good
    Show the answer

    Correct answer: C. Over a time scale of years the fault hardly passes any fluid (or another source that we have not counted feeds the block)

    With a good connection the pressure behind the fault would have fallen almost as much as in the neighbouring block. A ratio of declines close to zero means, by the formula for the first well, a very small transmissibility: the time constant is much longer than two years. Another explanation is strong support of the block by an aquifer. We test this with the geology and with the behaviour of the pressure later. The equality of the initial pressures tells us nothing about communication on the scale of production.

  4. 4

    Why is it hard to determine separately, from the block pressures, the storage capacity of a far block and the transmissibility of the fault leading to it, and what helps to separate them?

    Show the answer

    As long as the history is shorter than the long time constant, the pressures of the neighbouring block respond mainly to their combination: a larger storage capacity can partly be replaced by a smaller transmissibility (in the lesson's example the correlation coefficient of the estimates is about 0.8). Several things help to separate them: transient periods after start-ups, shut-ins and the beginning of injection; a longer history; and an independent estimate of the volume of the far block from the maps. New readings are also not necessarily most useful in the far block itself. In the lesson's example two readings in its neighbour, block B, improve the transmissibility of the fault B–C almost twofold, while the same readings in C hardly improve it.

  5. 5

    The producing wells stand in block A. Block B is behind a fault, and block C is behind a second fault. Where will injection of the same volume support the pressure in block A most?

    1. A.Into block A itself
    2. B.Into block B
    3. C.Into block C
    4. D.It makes no difference: only the total injection volume matters
    Show the answer

    Correct answer: A. Into block A itself

    The more faults there are between the injection well and the producing wells, the larger the part of the injection that is “taken” by the pressure rise on its own side of each fault. In the lesson's example injection into C delayed the fall of the pressure in A to the bubble point pressure by a few days, injection into B by more than half a year, and injection into A kept it above the bubble point pressure for the whole forecast period. The volume matters for the average pressure, and for a block the place matters.

  6. 6

    The apparent storage capacity, calculated from the pressure of the working block as for a single tank, grows from reading to reading. Name two possible causes and say how to tell them apart.

    Show the answer

    The first cause is that neighbouring volumes join the working block across the faults. The second is water influx from the aquifer. We tell them apart by pressure readings in the neighbouring blocks (has the pressure fallen there?), by the geology (is there reservoir rock behind the faults, and how large a volume?), by the appearance of water in the wells, and by the character of the growth. The neighbouring blocks are limited, and the apparent storage capacity in the end levels off at their sum.

Updated: 28 October 2026