Recharge in a circular area#

This notebook demonstrates how to model a circular area with constant recharge or extraction using the CircAreaSink element.

import matplotlib.pyplot as plt
import numpy as np

import timflow.steady as tfs

Circular area-sink with radius 100 m, located at the origin.

N = 0.001
R = 100
ml = tfs.ModelMaq(kaq=5, z=[10, 0])
ca = tfs.CircAreaSink(ml, xc=0, yc=0, R=100, N=0.001)
ml.solve()
x = np.linspace(-200, 200, 100)
h = ml.headalongline(x, 0)
plt.plot(x, h[0]);
Number of elements, Number of equations: 1 , 0
No unknowns. Solution complete
../../_images/ca35d9fb2d33541b0c9e56b2d62c171c0da611af1dd157ab4a37abcce66c86b9.png
qx = np.zeros_like(x)
for i in range(len(x)):
    qx[i : i + 1], qy = ml.disvec(x[i], 1e-6)
plt.plot(x, qx)
qxb = N * np.pi * R**2 / (2 * np.pi * R)
plt.axhline(qxb, color="r", ls="--")
plt.axhline(-qxb, color="r", ls="--");
../../_images/6c6db4ce970c0b6fe1e9a6daa987f168fde9533591a73a65678194914bfc31aa.png

Circular area-sink and well#

Discharge of well is the same as total infiltration rate of the circular area-sink. Well and center of area-sink area located at equal distances from \(y\)-axis, so that the head remains zero along the \(y\)-axis. Solution approaches steady-state solution.

N = 0.001
R = 100
Q = N * np.pi * R**2
ml = tfs.ModelMaq(kaq=5, z=[10, 0])
ca = tfs.CircAreaSink(ml, xc=-200, yc=0, R=100, N=0.001)
w = tfs.Well(ml, 200, 0, Qw=Q, rw=0.1)
ml.solve()
x = np.linspace(-400, 300, 100)
h = ml.headalongline(x, 0)
plt.plot(x, h[0]);
Number of elements, Number of equations: 2 , 0
No unknowns. Solution complete
../../_images/a67a868065d5fb0d2dc87bd4d8fc01ee8fdccc2d5fbb554634be42c116d9f7f7.png
N = 0.001
R = 100
Q = N * np.pi * R**2
ml = tfs.ModelMaq(kaq=5, z=[10, 0])
ca = tfs.CircAreaSink(ml, xc=-200, yc=0, R=100, N=0.001)
w = tfs.Well(ml, 200, 0, Qw=Q, rw=0.1)
ml.solve()
ml.plots.contour([-300, 300, -200, 200], ngr=40)
Number of elements, Number of equations: 2 , 0
No unknowns. Solution complete
<Axes: >
../../_images/f9b30079f08ee5e344681617c0ee2531af63ab3b989bcf4eec25f9335337b807.png

Two layers#

Discharge of well is the same as total infiltration rate of the circular area-sink. Center of area-sink and well are at the origin. Circular area-sink in layer 0, well in layer 1.

N = 0.001
R = 100
Q = N * np.pi * R**2
ml = tfs.ModelMaq(kaq=[5, 20], z=[20, 12, 10, 0], c=[1000])
ca = tfs.CircAreaSink(ml, xc=0, yc=0, R=100, N=0.001)
w = tfs.Well(ml, 0, 0, Qw=Q, rw=0.1, layers=1)
rf = tfs.Constant(ml, 1000, 0, 0)
ml.solve()
x = np.linspace(-200, 200, 100)
h = ml.headalongline(x, 0)
plt.plot(x, h[0])
plt.plot(x, h[1]);
Number of elements, Number of equations: 3 , 1
.
.
.

solution complete
../../_images/36302aeca0f0952e28c0533988dfd746c90ed14bc3658b2456b01a58179def49.png
x = np.linspace(-1000, 1000, 101)
h = ml.headalongline(x, 0)
plt.plot(x, h[0])
plt.plot(x, h[1]);
../../_images/9c8f9db241b9e0112c92e125b0884cb0716697531b3def3295e66a25fce46741.png