In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from timml import *

Circular area-sink

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


In [2]:
N = 0.001
R = 100
ml = ModelMaq(kaq=5, z=[10, 0])
ca = 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]);



In [3]:
qx = np.zeros_like(x)
for i in range(len(x)):
    qx[i], 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='--');


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.


In [4]:
N = 0.001
R = 100
Q = N * np.pi * R ** 2
ml = ModelMaq(kaq=5, z=[10, 0])
ca = CircAreaSink(ml, xc=-200, yc=0, R=100, N=0.001)
w = 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]);



In [5]:
N = 0.001
R = 100
Q = N * np.pi * R ** 2
ml = ModelMaq(kaq=5, z=[10, 0])
ca = CircAreaSink(ml, xc=-200, yc=0, R=100, N=0.001)
w = Well(ml, 200, 0, Qw=Q, rw=0.1)
ml.solve()
ml.contour([-300, 300, -200, 200], ngr=40)


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.


In [6]:
N = 0.001
R = 100
Q = N * np.pi * R ** 2
ml = ModelMaq(kaq=[5, 20], z=[20, 12, 10, 0], c=[1000])
ca = CircAreaSink(ml, xc=0, yc=0, R=100, N=0.001)
w = Well(ml, 0, 0, Qw=Q, rw=0.1, layers=1)
rf = 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

In [7]:
x = np.linspace(-1000, 1000, 101)
h = ml.headalongline(x, 0)
plt.plot(x, h[0]);
plt.plot(x, h[1]);