# Arps declines with linear buildup period

### Description

Extend Arps decline curve objects by replacing early-time declines with a buildup period in which rate is a linear function of time.

### Usage

1 | ```
arps.with.buildup(decl, initial.rate, time.to.peak)
``` |

### Arguments

`decl` |
an Arps decline object as produced by |

`initial.rate` |
initial rate [volume / time] (at time = 0) for buildup period. |

`time.to.peak` |
time to peak rate (i.e.~length of buildup period). |

### Value

`arps.with.buildup`

returns an object having class `"arps"`

,
which may be used as an argument to methods such as `arps.q`

,
`arps.Np`

, `arps.D`

, or `print.arps`

.

This object implements a decline curve which behaves as `decl`

for all
time greater than `time.to.peak`

, but implements a linear buildup of
rate interpolated between `initial.rate`

at time zero and
`arps.q(decl, time.to.peak)`

at `time.to.peak`

.

### See Also

`arps.decline`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
## 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)
# add buildup from initial rate of 50 bopd, over 30 days
decline.with.buildup <- arps.with.buildup(decline,
rescale.by.time(50, from="day", to="year", method="rate"),
rescale.by.time(30, from="day", to="year", method="time"))
# forecast 5 years and compare
forecast.time <- seq(0, 5, 0.1)
plot(arps.q(decline, forecast.time) ~ forecast.time, log="y", type="l",
lty="dashed", col="red")
lines(arps.q(decline.with.buildup, forecast.time) ~ forecast.time,
lty="dotted", col="blue")
``` |