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/371ac2aa1be229b89a6dfede7d76e9e9c2531ee86121334654c0a03c6e436528.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/a7e6dbcf85bbdcf8fd9eff67bd7d867b1328d91b65c620afe17d3190d0e01ad2.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/dd6812e2dd9a6b22f87682a6c8681fa8f4cc6dc9262b384da1a32764520081a1.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/bde30d0b1951f35bbac3007572642dfaa4d317f43df23a93fee13001e78575c9.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/dc835facebf514878838fae6420eacd1de04a8312e1cd9011bd64001a2d1eaf1.png
x = np.linspace(-1000, 1000, 101)
h = ml.headalongline(x, 0)
plt.plot(x, h[0])
plt.plot(x, h[1]);
../../_images/30a0a77dfa75893a4152ffe69f59dcb9cb5751bdffe14bf26941ed55b4b0f33f.png