Test line-sink strings#

This notebook tests line-sink string elements.

import matplotlib.pyplot as plt

import timml as tml

One HeadLineSinkString in one layer#

ml = tml.ModelMaq(kaq=[10, 20, 5], z=[0, -20, -40, -80, -90, -140], c=[4000, 10000])
rf = tml.Constant(ml, xr=0, yr=10000, hr=20, layer=0)
ls1 = tml.HeadLineSinkString(
    ml, xy=[(-100, 0), (0, 0), (100, 0), (100, 50)], hls=10, layers=0
)
ml.solve()
Number of elements, Number of equations: 2 , 4
.
.

solution complete
/tmp/ipykernel_3233/556936792.py:3: DeprecationWarning: HeadLineSinkString is deprecated. Use RiverString instead.
  ls1 = tml.HeadLineSinkString(
plt.figure(figsize=(16, 4))
for i in range(3):
    plt.subplot(1, 3, i + 1)
    ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=i, newfig=False)
../_images/0de209dc4c3f16bdfde46b97693bbd8687681903a8bc3bb4d06a675ebe2580c6.png

HeadLineSinkString in two layers#

ml = tml.ModelMaq(kaq=[10, 20, 5], z=[0, -20, -40, -80, -90, -140], c=[4000, 10000])
rf = tml.Constant(ml, xr=0, yr=10000, hr=20, layer=0)
ls1 = tml.HeadLineSinkString(
    ml, xy=[(-100, 0), (0, 0), (100, 0), (100, 50)], hls=10, layers=[0, 1]
)
ml.solve()
Number of elements, Number of equations: 2 , 7
.
.

solution complete
/tmp/ipykernel_3233/4220116219.py:3: DeprecationWarning: HeadLineSinkString is deprecated. Use RiverString instead.
  ls1 = tml.HeadLineSinkString(
plt.figure(figsize=(16, 4))
for i in range(3):
    plt.subplot(1, 3, i + 1)
    ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=i, newfig=False)
../_images/1c0223873fdfdde8fe8c1f9936ddd875286364d0ba60cb36ccd6976821ab1fb0.png

HeadLineSinkString, each section in different layer#

ml = tml.ModelMaq(kaq=[10, 20, 5], z=[0, -20, -40, -80, -90, -140], c=[4000, 10000])
rf = tml.Constant(ml, xr=0, yr=10000, hr=20, layer=0)
ls1 = tml.HeadLineSinkString(
    ml, xy=[(-100, 0), (0, 0), (100, 0), (100, 50)], hls=10, layers=[0, 1, 0]
)
ml.solve()
Number of elements, Number of equations: 2 , 4
.
.

solution complete
/tmp/ipykernel_3233/1708078998.py:3: DeprecationWarning: HeadLineSinkString is deprecated. Use RiverString instead.
  ls1 = tml.HeadLineSinkString(

TODO: make sure segments are plotted correctly in each layer#

plt.figure(figsize=(16, 4))
for i in range(3):
    plt.subplot(1, 3, i + 1)
    ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=i, newfig=False)
../_images/c6cc414fb1a1c5c176b92a1dd5d66e31b3d09b6b81efa18b54a642d1c71cb47e.png
ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=2)
[<matplotlib.contour.QuadContourSet at 0x7559cc4b95d0>]
../_images/914ea61006b77889283e0bc2bb33caab56438dd5778852f53c9e5f4858b8bf3e.png
ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=1, newfig=False)
[<matplotlib.contour.QuadContourSet at 0x7559cc372790>]
../_images/0042c7557d352f4d05038a6e33d753f60569d5f6a1a946872a8810706e945c65.png

A 2D array (NLS, NLAYERS)#

Layers can always be specified as a 2D array.

ml = tml.ModelMaq(kaq=[10, 20, 5], z=[0, -20, -40, -80, -90, -140], c=[4000, 10000])
rf = tml.Constant(ml, xr=0, yr=10000, hr=20, layer=0)
ls1 = tml.HeadLineSinkString(
    ml,
    xy=[(-100, 0), (0, 0), (100, 0), (100, 50)],
    hls=10,
    layers=[[0, 1], [0, 1], [0, 1]],
)
ml.solve()
Number of elements, Number of equations: 2 , 7
.
.

solution complete
/tmp/ipykernel_3233/1848151938.py:3: DeprecationWarning: HeadLineSinkString is deprecated. Use RiverString instead.
  ls1 = tml.HeadLineSinkString(
plt.figure(figsize=(16, 4))
for i in range(3):
    plt.subplot(1, 3, i + 1)
    ml.plots.contour([-200, 200, -100, 100], ngr=50, layers=i, newfig=False)
../_images/1c0223873fdfdde8fe8c1f9936ddd875286364d0ba60cb36ccd6976821ab1fb0.png