A horizontal well is located in a 20 m thick aquifer; the hydraulic conductivity is $k = 10$ m/d and the vertical anisotropy factor is 0.1. The horizontal well is placed 5 m above the bottom of the aquifer. The well has a discharge of 10,000 m$^3$/d and radius of $r=0.2$ m. The well is 200 m long and runs from $(x, y) = (−100, 0)$ to $(x, y) = (100, 0)$. A long straight river with a head of 40 m runs to the right of the horizontal well along the line $x = 200$. The head is fixed to 42 m at $(x, y) = (−1000, 0)$.
Three-dimensional flow to the horizontal well is modeled by dividing the aquifer up in 11 layers; the
elevations are: [20, 15, 10, 8, 6, 5.5, 5.2, 4.8, 4.4, 4, 2, 0]
. At the depth of the well, the layer thickness is equal to
the diameter of the well, and it increases in the layers above and below the well. A TimML model is created with the Model3D
command. The horizontal well is located in layer 6 and is modeled with the LineSinkDitch
element. Initially, the entry resistance of the well is set to zero.
In [1]:
%matplotlib inline
from timml import *
from pylab import *
figsize = (6, 6)
In [2]:
z = [20, 15, 10, 8, 6, 5.5, 5.2, 4.8, 4.4, 4, 2, 0]
ml = Model3D(kaq=10, z=z, kzoverkh=0.1)
ls = LineSinkDitch(ml, x1=-100, y1=0, x2=100, y2=0, Qls=10000, order=5, layers=6)
HeadLineSinkString(ml, [(200, -1000), (200, -200), (200, 0), (200, 200), (200, 1000)], hls=40, order=5, layers=0)
rf = Constant(ml, xr=-1000, yr=0, hr=42, layer=0)
In [3]:
ml.solve()
#TODO: CANNOT DO ml.solve() TWICE WITH self.wh
In [4]:
ml.contour(win=[-150, 150, -150, 150], ngr=[50, 100], layers = [0, 6],
figsize=figsize)
print('The head at the top and in layer 6 are:')
print(ml.head(0, 0.2, [0, 6]))
In [5]:
ml.plot(win=[-1000, 1000, -1000, 1000], orientation='both', figsize=figsize)
ml.tracelines(xstart=[-500, -500, -500], ystart=[-500, -500, -500], zstart=[5, 9, 15],
hstepmax=20, tmax=10 * 365.25, orientation='both', color='C0')
ml.tracelines(xstart=[250, 250, 250], ystart=[50, 50, 50], zstart=[5, 9, 15],
hstepmax=20, tmax=10 * 365.25, orientation='both', color='C1')
In [6]:
ml.vcontour(win=[-200, 300, 0, 0], n=50, levels=20, figsize=(6,6))
In [7]:
ls.headinside()
Out[7]:
In [8]:
print('head inside w/o resistance:')
print(ls.headinside())
In [9]:
ml = Model3D(kaq=10, z=z, kzoverkh=0.1)
ls = LineSinkDitch(ml, x1=-100, y1=0, x2=100, y2=0, Qls=10000, order=5, layers=6, wh=0.4, res=0.01)
HeadLineSinkString(ml, [(200, -1000), (200, -200), (200, 0), (200, 200), (200, 1000)],
hls=40, order=5, layers=0)
rf = Constant(ml, xr=-1000, yr=0, hr=42, layer=0)
ml.solve()
In [10]:
print('head inside horizontal well:', ls.headinside())
In [11]:
ml.vcontour(win=[-200, 300, 0, 0], n=50, levels=20, vinterp=False)