Learn R Programming

aRpsDCA (version 1.1.1)

hyp2exp: Arps hyperbolic-to-exponential declines

Description

Compute rates, cumulative production values, instantaneous nominal declines, and transition times for Arps hyperbolic-to-exponential decline curves.

Usage

hyp2exp.q(qi, Di, b, Df, t)
hyp2exp.Np(qi, Di, b, Df, t)
hyp2exp.D(Di, b, Df, t)
hyp2exp.transition(Di, b, Df)

Arguments

qi

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

Di

initial nominal Arps decline exponent [1 / time].

b

Arps hyperbolic exponent.

Df

final nominal Arps decline exponent [1 / time].

t

time at which to evaluate rate or cumulative [time].

Value

hyp2exp.q returns the rate for each element of t, in the same units as qi.

hyp2exp.Np returns the cumulative production for each element of t, in the same units as qi * t.

hyp2exp.D returns the nominal instantaneous decline for each element of t. This can be converted to effective decline and rescaled in time by use of as.effective and rescale.by.time.

hyp2exp.transition returns the transition time (from hyperbolic to exponential decline), in the same units as 1 / Di.

Details

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

When appropriate, internally uses harmonic.q and harmonic.Np to avoid singularities in calculations for b near 1.

See Also

as.effective, as.nominal, rescale.by.time.

Examples

Run this code
# NOT RUN {
## qi = 1000 Mscf/d, Di = 95% effective / year, b = 1.2,
## Df = 15% effective / year, t from 0 to 25 years
## result in Mscf/d
hyp2exp.q(1000, as.nominal(0.95), 1.2, as.nominal(0.15), seq(0, 25))

## qi = 500 bopd, Di = 3.91 nominal / year, b = 0.5,
## Df = 0.3 nominal / year, t = 20 years
hyp2exp.Np(rescale.by.time(500, from.period="day", to.period="year"),
    3.91, 0.5, 0.3, 20)

## Di = 85% effective / year, b = 1.5, Df = 15% effective / year,
## t = 6 and 48 months
hyp2exp.D(as.nominal(0.85), 1.5, as.nominal(0.15), c(0.5, 4))

## Di = 85% effective / year, b = 1.5, Df = 5% effective / year
hyp2exp.transition(as.nominal(0.85), 1.5, as.nominal(0.05))
# }

Run the code above in your browser using DataLab