Material Balance Functions
Havlena-Odeh straight lines, p/z gas depletion and water influx from aquifer models.
47 functions
PO.MBE.Gas.Pz(P, z)
Calculates p/z ratio for gas material balance analysis, [psi].
PO.MBE.Gas.ModPz(P, z, Pi, ce)
Calculates modified p/z for geopressured reservoirs, [psi]. Accounts for formation/water compressibility.
PO.MBE.Gas.OGIP(P, z, Pi, zi, Gp)
Estimates OGIP using standard p/z method, [scf]. Assumes volumetric depletion.
PO.MBE.Gas.ModOGIP(P, z, Pi, zi, Gp, ce)
Estimates OGIP using modified p/z for geopressured reservoirs, [scf].
PO.MBE.Gas.PredP(G, Gp, Pi, zi, z)
Predicts reservoir pressure at given cumulative production, [psi].
PO.MBE.Gas.PredGp(G, P, z, Pi, zi)
Predicts cumulative production at given reservoir pressure, [scf].
PO.MBE.Gas.RF(G, Gp)
Calculates recovery factor for a gas reservoir, [fraction 0-1].
PO.MBE.Gas.URF(Pi, zi, pa, za)
Calculates ultimate recovery factor based on abandonment pressure, [fraction 0-1].
PO.MBE.Oil.OOIP(F, Et)
Estimates OOIP from F vs Et (no water influx), [STB]. N = F / Et.
PO.MBE.Oil.OOIP.Reg(F, Et)
Estimates OOIP using regression on F vs Et data, [STB]. Least-squares through origin.
PO.MBE.Oil.OOIP.We(F, Et, We)
Estimates OOIP with water influx, [STB]. N = (F - We) / Et.
PO.MBE.Oil.NandM(F, Eo, Eg)
Estimates N and m from F/Eo vs Eg/Eo regression. Returns [N, m].
PO.MBE.Oil.We(F, N, Et)
Infers water influx from material balance given known OOIP, [RB]. We = F - N*Et.
PO.MBE.Oil.Residual(F, N, Et, We)
Calculates normalized MBE residual for quality check, [fraction]. Should be close to 0.
PO.MBE.Exp.Eo(Bo, Boi, Rs, Rsi, Bg)
Calculates oil and dissolved gas expansion term (Eo), [RB/STB]. Eo = (Bo-Boi) + (Rsi-Rs)*Bg.
PO.MBE.Exp.Eg(Boi, Bg, Bgi)
Calculates gas cap expansion term (Eg) for oil reservoirs, [RB/STB]. Eg = Boi*(Bg/Bgi - 1).
PO.MBE.Exp.Eg.Gas(Bg, Bgi)
Calculates gas expansion for pure gas reservoirs, [RB/scf]. Eg = Bg - Bgi.
PO.MBE.Exp.Efw(Boi, cw, cf, Swc, m, deltaP)
Calculates formation/water expansion term (Efw), [RB/STB]. Accounts for rock compaction and connate water expansion.
PO.MBE.Exp.Et(Eo, Eg, Efw, m)
Calculates total expansion term (Et), [RB/STB]. Et = Eo + m*Eg + Efw.
PO.MBE.Exp.Bt(Bo, Rs, Rsi, Bg)
Calculates two-phase formation volume factor (Bt), [RB/STB]. Bt = Bo + (Rsi-Rs)*Bg.
PO.MBE.F.Oil(Np, Bo, Rp, Rs, Bg, Wp, Bw)
Calculates underground withdrawal for oil reservoir, [RB]. F = Np*(Bo + (Rp-Rs)*Bg) + Wp*Bw.
PO.MBE.F.Gas(Gp, Bg, Wp, Bw)
Calculates underground withdrawal for gas reservoir, [RB]. F = Gp*Bg + Wp*Bw.
PO.MBE.Drives.DDI(N, Eo, F)
Calculates Depletion Drive Index (DDI), [fraction 0-1]. DDI = N*Eo / F.
PO.MBE.Drives.GDI(N, m, Eg, F)
Calculates Gas Cap Drive Index (GDI), [fraction 0-1]. GDI = N*m*Eg / F.
PO.MBE.Drives.WDI(We, F)
Calculates Water Drive Index (WDI), [fraction 0-1]. WDI = We / F.
PO.MBE.Drives.CDI(N, Efw, F)
Calculates Compressibility Drive Index (CDI), [fraction 0-1]. CDI = N*Efw / F.
PO.MBE.Drives.All(N, Eo, m, Eg, Efw, We, F)
Calculates all drive indices. Returns [DDI, GDI, WDI, CDI, Sum]. Sum should be ~1.
PO.MBE.Ce.UnSat.Oil(co, cw, cf, Swc)
Calculates effective compressibility for undersaturated oil reservoir, [1/psi].
PO.MBE.Ce.Gas(cw, cf, Sw)
Calculates effective compressibility for gas reservoir, [1/psi].
PO.MBE.Ce.Geopressured(cw, cf, Sw, Rsw, Bg)
Calculates effective compressibility for geopressured reservoir with gas solubility, [1/psi].
PO.MBE.Ce.PoreVol(cw, cf, Swc)
Calculates pore volume compressibility term, [1/psi]. cpv = (cw*Swc + cf) / (1 - Swc).
PO.MBE.Ce.Total(cg, cw, cf, Sg, Sw)
Calculates total system compressibility, [1/psi]. ct = Sg*cg + Sw*cw + cf.
PO.MBE.Aq.Pot.Vol(porosity, h, ra, rr, theta)
Calculates aquifer pore volume for pot aquifer model, [bbl].
PO.MBE.Aq.Pot.We(ct, Wi, deltaP)
Calculates instantaneous water influx for pot aquifer, [bbl]. We = ct * Wi * deltaP.
PO.MBE.Aq.Sch.Rate(C, Pi, P)
Calculates instantaneous water influx rate (Schilthuis), [bbl/day]. qw = C * (pi - p).
PO.MBE.Aq.Sch.We(C, Pi, pressures, times)
Calculates cumulative water influx (Schilthuis) using trapezoidal integration, [bbl]. We = C × ∫(pi − p)dt.
PO.MBE.Aq.Fet.Wei(ct, Wi, Pi)
Calculates maximum encroachable water (Fetkovich), [bbl]. Wei = ct * Wi * pi.
PO.MBE.Aq.Fet.J(K, h, Uw, ra, rr, theta)
Calculates aquifer productivity index for radial flow (Fetkovich), [bbl/day/psi].
PO.MBE.Aq.Fet.JLin(K, h, Uw, w, L)
Calculates aquifer productivity index for linear flow (Fetkovich), [bbl/day/psi].
PO.MBE.Aq.Fet.Pa(Pi, We, Wei)
Calculates average aquifer pressure (Fetkovich), [psi]. pa = pi * (1 - We/Wei).
PO.MBE.Aq.Fet.Rate(J, pa, pr)
Calculates water influx rate (Fetkovich), [bbl/day]. qw = J * (pa - pr).
PO.MBE.Aq.Fet.Wi(porosity, h, ra, rr, theta)
Calculates initial water volume in aquifer (radial), [bbl].
PO.MBE.Aq.VEH.tD(K, t, porosity, Uw, ct, rr)
Calculates dimensionless time for VEH aquifer, [dimensionless]. tD = 0.00634*k*t / (phi*muw*ct*rr^2).
PO.MBE.Aq.VEH.reD(ra, rr)
Calculates dimensionless radius for VEH aquifer, [dimensionless]. reD = ra / rr.
PO.MBE.Aq.VEH.U(porosity, ct, h, rr, theta)
Calculates aquifer constant for VEH model, [bbl/psi]. U = 1.119 * phi * ct * h * rr^2 * (theta/360).
PO.MBE.Aq.VEH.WdInf(tD)
Calculates dimensionless influx for infinite aquifer (VEH), [dimensionless]. Uses Edwardson correlation.
PO.MBE.Aq.VEH.WdFin(tD, reD)
Calculates dimensionless influx for finite aquifer (VEH), [dimensionless].