hyp2exp {aRpsDCA} | R Documentation |
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]. |
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.
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
.
See Also
as.effective
, as.nominal
, rescale.by.time
.
Examples
## 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))