Learn R Programming

aRpsDCA (version 1.1.1)

arps: Arps decline classes and S3 methods

Description

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

Usage

arps.decline(qi, Di, b=NA, Df=NA)
# S3 method for arps
arps.q(decl, t)
# S3 method for arps
arps.Np(decl, t)
# S3 method for 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.

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.

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.

See Also

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

Examples

Run this code
# NOT RUN {
## 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)
# }

Run the code above in your browser using DataLab