Approximate sizing of rainwater tanks – II

In my previous post I wrote about using the equations developed by Khastagir and Jayasuriya for the approximate sizing of rainwater tanks.  I thought they were a useful way of rapidly estimating the required size of a rain tank, now I’m not so sure. Under some circumstances the equations don’t produce physically realistic results.

Khastagir and Jayasuriya suggested the required capacity of a rainwater tank can be estimated as follows:

C = a \cdot A^{(3/2)} \cdot e^{b \cdot \frac{D}{A \cdot R}}         (1)


  • A = Roof area (m2)
  • D = Annual water demand (L/year)
  • R = Rainfall (mm)
  • C = Tank volume (L)

The constants, a and b depend on the reliability (see the table below).

Reliability (%) a b
85 0.08 5.58
90 0.15 5.16
95 0.29 4.85

An issue with equation 1 is that it suggests a rather odd relationship between tank capacity and roof area.  An example calculation for capacity as a function of roof area for D = 2000, R = 700 and 90% reliability is shown below.

Tank capacity as a function of roof area

Tank capacity as a function of roof area

The capacity is a minimum at about 100 m2 and then increases.  This seems unlikely.  I expected, that for a constant demand, rainfall, and reliability an increase in roof area would mean we could get by with a smaller tank.  Or, at least the graph would asymptote to a constant capacity that was not sensitive to further increases in area.

The roof area for the minimum capacity shown in the figure can be calculated by taking the derivative of equation 1 and setting it equal to zero.

A_{min} = \frac{2 \cdot b \cdot D}{3 \cdot R}

For for this example:

A_{min} = \frac{2 \times 5.16 \times 20000}{3 \times 700} = 98.3 \cdot m2

Substituting Amin back into equation 1 gives the minimum tank capacity.

C_{min} = a \left( \frac{2 \cdot b \cdot D}{3 \cdot R} \right) ^{3/2} e^{3/2}

For this example

C_{min} = 0.15 \times \left( \frac{2 \times 5.16 \times 20000}{3 \times 700} \right) ^{3/2} e^{3/2} = 655 L

I doubt this has any physical meaning.  Equation 1 is based on dimensional analysis and in this case I’m not sure it has resulted in a physically realistic relationship between the variables. I’ll need to do some more work on this.

R code follows.

# Expression for tank capacity

C <- expression(A^(3/2)*a*exp(b*(D/(A*R))))

C.f <- function(A){eval(C[[1]])} # as a function

D <- 20000
R <-700
a <- 0.15
b <- 5.16

# plot the relationship

curve(C.f, from=50, to=200, 
 xlab=expression(paste('Roof area (', m^2,')')),
 ylab='tank capacity (L)',

D(C, 'A') # take the derivative with respect to A

# A^((3/2) - 1) * (3/2) * a * exp(b * (D/(A * R))) - A^(3/2) * 
# a * (exp(b * (D/(A * R))) * (b * (D * R/(A * R)^2)))

# find where the derivative equals zero
dC <- function(A) {eval(D(C, 'A'))[[1]]}
uniroot(dC, c(10,500))
# $root
# [1] 98.28572 roof area for minimum storage

C.min <- C.f(uniroot(dC, c(10,500))$root)
# [1] 655.0411 # minimum storage

# Minimum storage can also be calculated...
C.min.1 <- a*(2*b*D/(3*R))^(3/2)*exp(3/2)
# [1] 655.0411

One thought on “Approximate sizing of rainwater tanks – II

  1. Pingback: Approximate sizing of rainwater tanks – III | tonyladson

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s