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

1 2 3 4 5 6 7 |

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

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.

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

.

`print.arps`

, `exponential`

, `hyperbolic`

,
`hyp2exp`

, `as.effective`

, `as.nominal`

,
`rescale.by.time`

.

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)
``` |

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.