{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# 1. Slug Test - Pratt County"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Import packages"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"import timflow.transient as tft\n",
"\n",
"plt.rcParams[\"figure.figsize\"] = [5, 3]"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Introduction and Conceptual Model"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"Consider the slug test conducted in Pratt County Monitoring Site, US, and reported by Butler (1998). \n",
"A partially penetrating well is screened in unconsolidated alluvial deposits consisting of sand and gravel interbedded by clay. The total thickness of the aquifer is 47.87 m. The screen is located at 16.77 m depth and has a screen length of 1.52 m. The well radius is 0.125 m and the casing radius 0.064 m. The slug displacement is 0.671 m. The head change was recorded inside the well."
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Load data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"data = np.loadtxt(\"data/slug.txt\", skiprows=1)\n",
"to = data[:, 0] / 60 / 60 / 24 # convert time in seconds to days\n",
"ho = data[:, 1] # m"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Parameters and model"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"rw = 0.125 # well radius, m\n",
"rc = 0.064 # well casing radius, m\n",
"L = 1.52 # screen length, m\n",
"b = 47.87 # aquifer thickness, m\n",
"zt = -16.77 # elevation to top of screen, m\n",
"H0 = 0.671 # head displacement in the well, m\n",
"zb = zt - L # bottom of screen in m"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"The total volume if the slut is computed, as this is used as the instantaneous discharge for the well in `timflow`. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"volume of slug: 0.00863 m^3\n"
]
}
],
"source": [
"Q = np.pi * rc**2 * H0 # instantaneous discharge\n",
"print(f\"volume of slug: {Q:.5f} m^3\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"The aquifer is represented by a three-layer model, one layer above the screen, one layer at interval of the screen top, and one layer below the screen.\n",
"A slug test is simulated by specify the instantaneous volume that is added to the well and by defining the well type `wbstype` as `\"slug\"`. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"self.neq 1\n",
"solution complete\n"
]
}
],
"source": [
"ml = tft.Model3D(kaq=10, z=[0, zt, zb, -b], Saq=1e-4, kzoverkh=1, tmin=1e-6, tmax=0.01)\n",
"w = tft.Well(ml, xw=0, yw=0, rw=rw, rc=rc, tsandQ=[(0, -Q)], layers=1, wbstype=\"slug\")\n",
"ml.solve()"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Estimate aquifer parameters \n",
"The hydraulic conductivity and specific storage coeffient are calibrated. They are the same for all three layers. "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
".......................\n",
"Fit succeeded.\n"
]
}
],
"source": [
"cal = tft.Calibrate(ml)\n",
"cal.set_parameter(name=\"kaq\", layers=[0, 1, 2], initial=10)\n",
"cal.set_parameter(name=\"Saq\", layers=[0, 1, 2], initial=1e-4)\n",
"cal.seriesinwell(name=\"obs\", element=w, t=to, h=ho)\n",
"cal.fit(report=False)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" optimal | \n",
"
\n",
" \n",
" \n",
" \n",
" | kaq_0_2 | \n",
" 6.048673 | \n",
"
\n",
" \n",
" | Saq_0_2 | \n",
" 0.000213 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" optimal\n",
"kaq_0_2 6.048673\n",
"Saq_0_2 0.000213"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"RMSE: 0.003 m\n"
]
}
],
"source": [
"display(cal.parameters.loc[:, [\"optimal\"]])\n",
"print(f\"RMSE: {cal.rmse():.3f} m\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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WFpaKgkJCYqiKMqBAwcUQFm7dm2meoGBgVnKK1eurABKYGBgproLFixQAOXu3bu5vhdRuOTSq8i3Pn36kJyczLZt24iPj2fbtm059pJ27NiBWq1m7NixmcrfffddFEXh999/19UDstR7uneoKAq//PILXbt2RVEUoqOjdV8dOnQgNjaW06dPF+h9DR06FAcHB1xdXenYsSOxsbGsWbOGRo0a5fu1bW1tuXXrFidOnChQLAVla2sLwLZt20hLSyvW187N22+/nelxixYtuHfvHnFxcZnKW7VqRc2aNXWP8/OZb9q0iRo1avDiiy9mqte2bVsAgoOD8x33k/cEHzx4QGxsLC1atMj0M2ZjY0O3bt346aefdLcT0tPT2bBhA927d8fS0lIXn42NDe3atcsUn4+PD1ZWVlni8/T0zHTZFv5r361bt6LVavP9fkTByKVXkW8ODg74+fmxbt06kpKSSE9PzzQI5kl///03rq6ulCtXLlN5xuXCv//+W/fdyMiIqlWrZqrn5eWV6fHdu3eJiYlh2bJlLFu2LNvXvHPnToHe14wZM2jRogUJCQls3ryZ9evXY2T039+S+XntKVOmsGfPHho3bky1atVo3749/fv3p3nz5gWKLa9atWpFr169mDVrFgsWLKB169Z0796d/v375zoiOTY2luTkZN1jU1NTKlSoUGhxubu7Z3qccTn7wYMHWFtb68o9PT0z1cvPZ37t2jUuXbqEg4NDrvXyY9u2bXzyySecPXs2033Op+8hDxw4kA0bNnDgwAFatmzJnj17iIqKYsCAAbo6165dIzY2FkdHxzzF9/RnAeDv7893333H8OHDmTp1Ki+//DI9e/akd+/emX5WReGSRCkKpH///owYMYLIyEg6deqk+0u3qGX8Ff3GG28waNCgbOvUrVu3QOeuU6cOfn5+AHTv3p2kpCRGjBjBSy+9hJubW75eu0aNGly5coVt27YRGBjIL7/8wjfffMOMGTOYNWsWkPWXbYb09PQCxZ9xzp9//pmjR4/yv//9j507dzJ06FC++OILjh49ipWVVbbHjRs3jtWrV+set2rVSjc4qDCo1epsy5WnBnQ9PaozP5+5VqulTp06zJ8/P9t6bm5u+Yr5wIEDvPrqq7Rs2ZJvvvkGFxcXTExMWLlyZaZBWQAdOnTAycmJH3/8kZYtW/Ljjz/i7Oys+3nK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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tm = np.logspace(np.log10(to[0]), np.log10(to[-1]), 100)\n",
"hm = ml.head(0, 0, tm, layers=1)\n",
"plt.semilogx(to, ho / H0, \".\", label=\"obs\")\n",
"plt.semilogx(tm, hm[-1] / H0, \"r\", label=\"timflow\")\n",
"plt.ylim([0, 1])\n",
"plt.xlabel(\"time [d]\")\n",
"plt.ylabel(\"h/H0\")\n",
"plt.title(\"Model Results - Three layers\")\n",
"plt.legend()\n",
"plt.grid()"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"### Comparison of results"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"The solution in `timflow` is compared with the KGS analytical model (Hyder et al. 1994) implemented in AQTESOLV (Duffield, 2007). Both models show similarly low RMSE values. However, the estimated hydraulic conductivity and specific storage parameters differ substantially."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" | | \n",
" k [m/d] | \n",
" Ss [1/m] | \n",
" RMSE [m] | \n",
"
\n",
" \n",
" \n",
" \n",
" | timflow | \n",
" 6.05 | \n",
" 2.13e-04 | \n",
" 0.0029 | \n",
"
\n",
" \n",
" | AQTESOLV | \n",
" 4.03 | \n",
" 3.83e-04 | \n",
" 0.0030 | \n",
"
\n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t = pd.DataFrame(\n",
" columns=[\"k [m/d]\", \"Ss [1/m]\", \"RMSE [m]\"],\n",
" index=[\"timflow\", \"AQTESOLV\"],\n",
")\n",
"\n",
"t.loc[\"timflow\"] = np.append(cal.parameters[\"optimal\"].values.tolist(), cal.rmse())\n",
"t.loc[\"AQTESOLV\"] = [4.034, 3.834e-04, 0.002976]\n",
"\n",
"t_formatted = t.style.format(\n",
" {\"k [m/d]\": \"{:.2f}\", \"Ss [1/m]\": \"{:.2e}\", \"RMSE [m]\": \"{:.4f}\"}\n",
")\n",
"t_formatted"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## References\n",
"* Butler Jr., J.J. (1998), The Design, Performance, and Analysis of Slug Tests, Lewis Publishers, Boca Raton, Florida, 252p.\n",
"* Duffield, G.M. (2007), AQTESOLV for Windows Version 4.5 User's Guide, HydroSOLVE, Inc., Reston, VA.\n",
"* Hyder, Z., Butler Jr, J.J., McElwee, C.D. and Liu, W. (1994), Slug tests in partially penetrating wells, Water Resources Research 30, 2945–2957."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}