Questions 1, 2 and 5 on page 53 of the syllabus

Context:

A canal in a dune area along the Dutch coast serves to provide storage for drinking water in the case of emergencies. During an emergency, the water level in the canal was suddenly lowered by 5 m.


In [2]:
# import required modules / functionality

import numpy as np # for numerical stuff and arrays
import matplotlib.pyplot as plt # for visualization
import scipy.special as sp  # scipy.special hold the less usual mathematical functions

In [14]:
def newfig(title='?', xlabel='?', ylabel='?', xlim=None, ylim=None,
                   xscale='linear', yscale='linear', size_inches=(14, 8)):
    '''Setup a new axis for plotting'''
    fig, ax = plt.subplots()
    fig.set_size_inches(size_inches)
    ax.set_title(title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.set_xscale(xscale)
    ax.set_yscale(yscale)
    if xlim is not None: ax.set_xlim(xlim)
    if ylim is not None: ax.set_ylim(ylim)
    ax.grid(True)
    return ax

In [3]:
# Aquifer properties

kD = 100 # m2/d
S = 0.2 # [-]
A = 5 # m, the sudden drop of head in the canal

Question 1

How much water will flow into the canal from its sides during the first day, the first week, the first month and during 6 weeks after the sudden lowering of its stage by 5 m?

The transient flow solution that applies to this situation is

$$ s = A \, \mbox{erfc} ( u) = A \frac {2} {\sqrt \pi} \intop_u^\infty e^{-y^2} dt $$$$ u = \sqrt{\frac {x^2 S} {4 kD t}} $$

The discharge anywhere in the aquifer then is

$$ Q = -kD \frac {\partial s} {\partial x} $$

so that, applying the derivative of $s$ with respect to $x$ and multiplying by $-kD$ yields

$$ Q = A \sqrt{ \frac {kD S} {\pi t}} \exp \left( -u^2 \right)$$

Then, at $x=0$, we find

$$ Q = A \sqrt{ \frac {kD S} {\pi t}}$$

The extracted volume from one side since $t=0$ is, therefore,

$$ V = \intop_0^t Q dt = A \sqrt {\frac {4 kD S t} {\pi} } $$

In [7]:
times = [1, 7, 30, 42] # days

print('The total volume drained after t days (from one side) per m of shore is:') 
for t in times:
    V = A * np.sqrt(4 * kD * S * t / np.pi)
    #print('t =', t, 'd, V =', V, 'm3/m')
    print(f't = {t:4.0f} d, V = {V:6.1f} m3/m')


The total volume drained after t days (from one side) per m of shore is:
t =    1 d, V =   25.2 m3/m
t =    7 d, V =   66.8 m3/m
t =   30 d, V =  138.2 m3/m
t =   42 d, V =  163.5 m3/m

In [15]:
# Show the result graphically

times = np.linspace(0, 42, 100)

ax = newfig(title='Total volume drained [m3/m]', xlabel='t [d]', ylabel='m3/m')

ax.plot(times, A * np.sqrt(4 * kD * S * times / np.pi))


Out[15]:
[<matplotlib.lines.Line2D at 0x81f01f050>]

Question 2

How much is the drawdown after 6 weeks at different distances ?

Let's answer this question by showning the drawdown development over 6 weeks at several distances from the shore.


In [22]:
# We'll use the same aquifer parameters as before, so they don't have to be repeated here.

x = [10, 100, 300, 1000] # [m]  distances at which drawdown is desired
times = np.linspace(0, 7 * 6, 7 * 6 * 12 +  1)  # d (6 weeks, one point every 2 hours)
times[0] = 1e-6 # prevent division by zero

ax = newfig(title=f'Drawdown over time for several x values; kD={kD:.0f} m2/d, S={S:.3f} [_], A={A:.1f} m',
           xlabel='time [d]', ylabel='drawdown s [m]')
for xi in x:
    ax.plot(times, A * sp.erfc(np.sqrt(xi ** 2 * S / (4 * kD * times))), label=f'x = {xi:.0f} m')
    
ax.legend()


Out[22]:
<matplotlib.legend.Legend at 0x81eff7210>

Question 3

Wat is the ratio between the amount of groundwater extracted in 6 weeks compared to the amount of water in the 20 m wide canal?

From the ground we have from two sides

$$ V = 2 \, A \sqrt {\frac {4 kD S t} {\pi} } $$

The volume in the canal is

$$ V_{canal} = A w $$

with $w$ the canal width.

Hence

$$ \frac {V_{canal}} {V_{grw} } = \frac {w \sqrt{\pi}} {2 \sqrt{4 kD S t}}$$

In [25]:
w = 20 # m, width of canal
t = 42 # d

# V_c over V is the ratio of the water from the canal over that from the ground

V_c_over_V = w * np.sqrt(np.pi) / (2 * np.sqrt(4 * kD * S *t))

print(f'V_c over V after {t:.0f} days = {V_c_over_V:.0%}')


V_c over V after 42 days = 31%

In [ ]: