import matplotlib.pyplot as plt
import numpy as np
import timflow.transient as tft
plt.rcParams["font.size"] = 8.0
Circular area-sink#
Circular area-sink with radius 100 m, located at the origin.
N = 0.001
R = 100
ml = tft.ModelMaq(kaq=5, z=[10, 0], Saq=2e-4, tmin=1e-3, tmax=1e4)
ca = tft.CircAreaSink(ml, 0, 0, 100, tsandN=[(0, 0.001)])
ml.solve()
ml.plots.head_along_line(-200, 200, 0, 0, t=[0.1, 1, 10], figsize=(8, 3), sstart=-200);
self.neq 0
No unknowns. Solution complete
plt.figure(figsize=(8, 3))
x = np.linspace(-200, 200, 200)
qx = np.zeros_like(x)
for t in [0.1, 1, 10]:
for i in range(len(x)):
qx[i] = ml.disvec(x[i], 1e-6, t)[0].item()
plt.plot(x, qx, label="time is " + str(t))
qxb = N * np.pi * R**2 / (2 * np.pi * R)
plt.axhline(qxb, color="r", ls="--")
plt.axhline(-qxb, color="r", ls="--")
plt.xlabel("x (m)")
plt.ylabel("Qx (m^2/d)")
plt.legend(loc="best")
plt.grid()
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 = tft.ModelMaq(kaq=5, z=[10, 0], Saq=2e-4, tmin=1e-3, tmax=1e4, M=10)
ca = tft.CircAreaSink(ml, -200, 0, 100, tsandN=[(0, 0.001)])
w = tft.Well(ml, 200, 0, rw=0.1, tsandQ=[(0, Q)])
ml.solve()
self.neq 1
solution complete
ml.plots.head_along_line(
-400, 300, 0, 0, t=[0.1, 1, 10, 100, 1000], figsize=(8, 3), sstart=-400
);
t = np.logspace(-3, 4, 100)
h = ml.head(-200, 0, t)
plt.figure(figsize=(8, 3))
plt.semilogx(t, h[0])
plt.xlabel("time")
plt.ylabel("head")
plt.title("head at center of area-sink")
plt.grid()
N = 0.001
R = 100
Q = N * np.pi * R**2
ml = tft.ModelMaq(kaq=5, z=[10, 0], Saq=2e-4, tmin=10, tmax=100, M=10)
ca = tft.CircAreaSink(ml, -200, 0, 100, tsandN=[(0, 0.001)])
w = tft.Well(ml, 200, 0, rw=0.1, tsandQ=[(0, Q)])
ml.solve()
ml.plots.contour([-300, 300, -200, 200], ngr=40, t=20, labels=False);
self.neq 1
solution complete
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 = tft.ModelMaq(
kaq=[5, 20],
z=[20, 12, 10, 0],
c=[1000],
Saq=[2e-4, 1e-4],
tmin=1e-3,
tmax=1e4,
M=10,
)
ca = tft.CircAreaSink(ml, 0, 0, 100, tsandN=[(0, 0.001)])
w = tft.Well(ml, 0, 0, rw=0.1, tsandQ=[(0, Q)], layers=1)
ml.solve()
self.neq 1
solution complete
ml.plots.head_along_line(
-200, 200, 0, 0, t=[0.1, 100], layers=[0, 1], sstart=-200, figsize=(8, 3)
);
ml.plots.head_along_line(
-500, 500, 0, 0, t=[0.1, 100, 1000], layers=[0, 1], sstart=-500, figsize=(8, 3)
);