Skip to content

Commit 58680ce

Browse files
authored
Merge pull request #7 from dbrakenhoff/eq_21_11
add phreatic equation with rainfall
2 parents 8536b11 + bb5952b commit 58680ce

3 files changed

Lines changed: 147 additions & 0 deletions

File tree

bruggeman/flow1d.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,43 @@
55
from bruggeman.general import ierfc, latexify_function
66

77

8+
@latexify_function(identifiers={"bruggeman_21_11": "h"}, reduce_assignments=True)
9+
def bruggeman_21_11(
10+
x: float | NDArray[float64],
11+
b: float,
12+
k: float,
13+
H: float,
14+
p: float = 1.0,
15+
) -> float | NDArray[float64]:
16+
"""Confined phreatic aquifer with horizontal 1D-flow.
17+
18+
Flow caused by precipitation through an infinite strip of
19+
width 2b, bounded at both sides by open water with equal level
20+
21+
From Bruggeman 21.11
22+
23+
Parameters
24+
----------
25+
x : float or ndarray
26+
Distance from the center of the strip [m]
27+
b : float
28+
Half-width of the strip [m]
29+
k : float
30+
Hydraulic conductivity [m/d]
31+
H : float
32+
Head in the open water [m]
33+
p : float
34+
Arbitrary constant precipitation [m/d]
35+
36+
Returns
37+
-------
38+
head: float
39+
Hydraulic head at distance x [m]
40+
"""
41+
42+
return sqrt(H**2 + p / k * (b**2 - x**2))
43+
44+
845
@latexify_function(identifiers={"bruggeman_123_02": "varphi"}, reduce_assignments=True)
946
def bruggeman_123_02(
1047
x: float | NDArray[float64],
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "4b9445a0",
6+
"metadata": {},
7+
"source": [
8+
"# 21.11: Confined phreatic flow with precipitation\n",
9+
"\n",
10+
"This notebook shows the Bruggeman solution for:\n",
11+
"\n",
12+
"Confined phreatic aquifer with horizontal 1D-flow. \n",
13+
"Flow caused by precipitation through an infinite strip of width `2b`, bounded at both sides by open water with equal level `H`."
14+
]
15+
},
16+
{
17+
"cell_type": "code",
18+
"execution_count": null,
19+
"id": "f6114c5c",
20+
"metadata": {},
21+
"outputs": [],
22+
"source": [
23+
"import matplotlib.pyplot as plt\n",
24+
"from numpy import linspace\n",
25+
"\n",
26+
"from bruggeman.flow1d import bruggeman_21_11"
27+
]
28+
},
29+
{
30+
"cell_type": "code",
31+
"execution_count": null,
32+
"id": "3e31ee8a",
33+
"metadata": {},
34+
"outputs": [],
35+
"source": [
36+
"bruggeman_21_11"
37+
]
38+
},
39+
{
40+
"cell_type": "code",
41+
"execution_count": null,
42+
"id": "4682c73d",
43+
"metadata": {},
44+
"outputs": [],
45+
"source": [
46+
"bruggeman_21_11?"
47+
]
48+
},
49+
{
50+
"cell_type": "code",
51+
"execution_count": null,
52+
"id": "06b5a222",
53+
"metadata": {},
54+
"outputs": [],
55+
"source": [
56+
"# aquifer parameters\n",
57+
"b = 50.0\n",
58+
"k = 1.0\n",
59+
"D = 1.0\n",
60+
"p = 5e-3 # constant precipitation flux"
61+
]
62+
},
63+
{
64+
"cell_type": "code",
65+
"execution_count": null,
66+
"id": "c42d5b22",
67+
"metadata": {},
68+
"outputs": [],
69+
"source": [
70+
"x = linspace(-b, b, 100)\n",
71+
"\n",
72+
"fig, ax = plt.subplots(figsize=(12, 3), layout=\"tight\")\n",
73+
"\n",
74+
"h = bruggeman_21_11(x, b, k, D, p)\n",
75+
"ax.plot(x, h)\n",
76+
"\n",
77+
"ax.grid(True)\n",
78+
"ax.set_xlabel(\"Distance (m)\")\n",
79+
"ax.set_ylabel(\"Head (m)\")\n",
80+
"ax.set_title(\"Bruggeman 21.11\")\n",
81+
"ax.set_ylim(0.0);"
82+
]
83+
}
84+
],
85+
"metadata": {
86+
"kernelspec": {
87+
"display_name": "CWGI25",
88+
"language": "python",
89+
"name": "python3"
90+
},
91+
"language_info": {
92+
"codemirror_mode": {
93+
"name": "ipython",
94+
"version": 3
95+
},
96+
"file_extension": ".py",
97+
"mimetype": "text/x-python",
98+
"name": "python",
99+
"nbconvert_exporter": "python",
100+
"pygments_lexer": "ipython3",
101+
"version": "3.13.2"
102+
}
103+
},
104+
"nbformat": 4,
105+
"nbformat_minor": 5
106+
}

docs/examples/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Below you can find examples.
99
:hidden:
1010
:glob:
1111

12+
bruggeman_21_11
1213
bruggeman_123_05
1314
bruggeman_126_33
1415
bruggeman_128_0x
@@ -20,6 +21,8 @@ Below you can find examples.
2021
Flow1D
2122
------
2223

24+
`21.11 Confined phreatic aquifer with precipitation`_
25+
2326
`123.05 Constant pumping in a confined aquifer`_
2427

2528
`126.33 Step head change in a semi-confined aquifer - steady state`_
@@ -30,6 +33,7 @@ Flow1D
3033

3134
`Edelman sudden change in water level in a confined aquifer`_
3235

36+
.. _21.11 Confined phreatic aquifer with precipitation: bruggeman_21_11.html
3337
.. _123.05 Constant pumping in a confined aquifer: bruggeman_123_05.html
3438
.. _126.33 Step head change in a semi-confined aquifer - steady state: bruggeman_126_33.html
3539
.. _128.0x Tidal fluctuation of open water: bruggeman_128_0x.html

0 commit comments

Comments
 (0)