Test line-sink ditch#
A string of line-sinks for which the total discharge is specified
import numpy as np
import timflow.transient as tft
ml = tft.ModelMaq(kaq=10, z=[10, 0], Saq=1e-4, tmin=0.01, tmax=10)
x = np.linspace(-100, 100, 21)
y = np.zeros(len(x))
lsd = tft.DitchString(ml, xy=list(zip(x, y, strict=False)), tsandQ=[(0, 100)])
ml.solve()
self.neq 20
solution complete
t = 2
print(f"Discharge at time t={t}:, {lsd.discharge(t)}")
Discharge at time t=2:, [[99.99999828]]
for i, Q in enumerate(lsd.discharge_list(t=t)):
print(f"Discharge of segment {i}: {Q}")
Discharge of segment 0: [[13.72066973]]
Discharge of segment 1: [[6.04460499]]
Discharge of segment 2: [[4.97677722]]
Discharge of segment 3: [[4.30323041]]
Discharge of segment 4: [[3.90805051]]
Discharge of segment 5: [[3.65055712]]
Discharge of segment 6: [[3.47803752]]
Discharge of segment 7: [[3.36384265]]
Discharge of segment 8: [[3.29380455]]
Discharge of segment 9: [[3.26042507]]
Discharge of segment 10: [[3.26042497]]
Discharge of segment 11: [[3.29380452]]
Discharge of segment 12: [[3.36384257]]
Discharge of segment 13: [[3.47803764]]
Discharge of segment 14: [[3.65055709]]
Discharge of segment 15: [[3.90805015]]
Discharge of segment 16: [[4.30323087]]
Discharge of segment 17: [[4.97677696]]
Discharge of segment 18: [[6.04460466]]
Discharge of segment 19: [[13.72066979]]
ml = tft.ModelMaq(kaq=10, z=[10, 0], Saq=1e-4, tmin=0.01, tmax=10)
x = np.linspace(-100, 100, 21)
y = np.zeros(len(x))
lsd = tft.DitchString(
ml, xy=list(zip(x, y, strict=False)), tsandQ=[(0, 100)], Astorage=100
)
ml.solve()
self.neq 20
solution complete
t = 2
print(f"Discharge at time t={t}:, {lsd.discharge(t)}")
Discharge at time t=2:, [[94.47093691]]
np.sum(lsd.headinside(2, derivative=1) * lsd.Astorage)
np.float64(-110.58130660082779)