Arps decline classes and S3 methods

Share:

Description

Create Arps decline curve objects and compute rates, cumulative production, and nominal declines.

Usage

1
2
3
4
5
6
7
arps.decline(qi, Di, b=NA, Df=NA)
## S3 method for class 'arps'
arps.q(decl, t)
## S3 method for class 'arps'
arps.Np(decl, t)
## S3 method for class 'arps'
arps.D(decl, t)

Arguments

qi

initial rate [volume / time], i.e. q(t = 0).

Di

nominal Arps decline exponent [1 / time].

b

Arps hyperbolic exponent.

Df

nominal Arps decline exponent [1 / time].

t

time at which to evaluate rate, cumulative, or nominal decline [time].

decl

an Arps decline object as returned by arps.decline.

Details

Depending on whether arguments b and Df are supplied, arps.decline will select an exponential, hyperbolic, or hyperbolic-to-exponential decline and return an object appropriately. The returned object will have class "exponential", "hyperbolic", or "hyp2exp" in addition to class "arps".

Assumes consistent units of time between qi, Di, Df, and t. To convert, see the decline-rate conversion functions referenced below.

Value

arps.decline returns an object having class "arps", suitable for use as an argument to S3 methods discussed here.

q.arps returns the rate for each element of t applying decline decl, in the same units as the value of qi for decl.

Np.arps returns the cumulative production for each element of t applying decline decl, in the same units as the value of qi * t for decl.

D.arps returns the nominal decline for each element of t applying decline decl, in the same units as the value of Di for decl.

See Also

print.arps, exponential, hyperbolic, hyp2exp, as.effective, as.nominal, rescale.by.time.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## exponential decline with
## qi = 1000 Mscf/d, Di = 95% effective / year
## rate for t from 0 to 25 days
decline <- arps.decline(1000,
    as.nominal(0.95, from.period="year", to.period="day"))
arps.q(decline, seq(0, 25))

## hyperbolic decline with
## qi = 500 bopd, Di = 3.91 nominal / year, b = 1.5,
## cumulative production at t = 5 years
decline <- arps.decline(
    rescale.by.time(500, from="day", to="year", method="rate"),
    3.91, 1.5)
arps.Np(decline, 5)