Compute rates, cumulative production values, and instantaneous nominal declines for Arps hyperbolic decline curves.

1 2 3 | ```
hyperbolic.q(qi, Di, b, t)
hyperbolic.Np(qi, Di, b, t)
hyperbolic.D(Di, b, t)
``` |

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

`Di` |
initial nominal Arps decline exponent [1 / time]. |

`b` |
Arps hyperbolic exponent. |

`t` |
time at which to evaluate rate or cumulative [time]. |

Assumes consistent units of time between `qi`

, `D`

, 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.

`hyperbolic.q`

returns the rate for each element of `t`

,
in the same units as `qi`

.

`hyperbolic.Np`

returns the cumulative production for each element of
`t`

, in the same units as `qi * t`

.

`hyperbolic.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`

.

`as.effective`

, `as.nominal`

, `rescale.by.time`

.

1 2 3 4 5 6 7 8 9 10 | ```
## qi = 1000 Mscf/d, Di = 95% effective / year, b = 1.2, t from 0 to 25 days
hyperbolic.q(1000, as.nominal(0.95, from.period="year", to.period="day"),
1.2, seq(0, 25))
## qi = 500 bopd, Di = 3.91 nominal / year, b = 0.5, t = 5 years
hyperbolic.Np(rescale.by.time(500, from.period="day", to.period="year"),
3.91, 0.5, 5)
## Di = 85% effective / year, b = 1.5, t = 6 months
hyperbolic.D(as.nominal(0.85), 1.5, 0.5)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.