{ "cells": [ { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# 3. Slug Test - Falling Head" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import packages" ] }, { "cell_type": "code", "execution_count": 1, "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": {}, "source": [ "### Introduction and Conceptual Model\n", "\n", "A well partially penetrates a sandy unconfined aquifer that has a saturated depth of 32.57 ft. The top of the screen is located 0.47 ft below the water table and has 13.8 ft in length. The well and casing radii are 5 and 2 inches, respectively. The slug displacement is 1.48 ft. Head change has been recorded at the slug well. This slug test, taken from the AQTESOLV examples (Duffield, 2007), was reported in Batu (1998). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data = np.loadtxt(\"data/falling_head.txt\", skiprows=2)\n", "to = data[:, 0] / 60 / 60 / 24 # convert time from seconds to days\n", "ho = (10 - data[:, 1]) * 0.3048 # convert drawdown from ft to meters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameters and model" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "rw = 5 * 0.0254 # well radius, m\n", "rc = 2 * 0.0254 # well casing radius, m\n", "L = 13.8 * 0.3048 # screen length, m\n", "b = 32.57 * 0.3048 # aquifer thickness, m\n", "zt = 0 # top of aquifer, m\n", "zst = -0.47 * 0.3048 # top of screen, m\n", "zsb = zst - L # bottom of screen, m\n", "zb = zt - b # bottom of aquifer, m\n", "H0 = 1.48 * 0.3048 # initial displacement in well, m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "convert measured displacement into volume" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "slug: 0.00366 m^3\n" ] } ], "source": [ "Q = np.pi * rc**2 * H0\n", "print(f\"slug: {Q:.5f} m^3\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will create a multi-layer model. For this, we divide the second and third layers into 0.5 m thick layers. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# z = np.array([zt, zt - 0.1, zst, zsb, zb])\n", "z = np.hstack(\n", " (\n", " zt,\n", " np.linspace(zt - 0.01, zst, 5)[:-1],\n", " np.linspace(zst, zsb, 5)[:-1],\n", " np.linspace(zsb, zb, 10),\n", " )\n", ")\n", "nlay = len(z) - 1" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "self.neq 5\n", "solution complete\n" ] } ], "source": [ "ml = tft.Model3D(\n", " kaq=10,\n", " z=z,\n", " Saq=[0.1] + (nlay - 1) * [1e-4],\n", " kzoverkh=1,\n", " tmin=1e-5,\n", " tmax=0.01,\n", " topboundary=\"phreatic\",\n", ")\n", "w = tft.Well(\n", " ml,\n", " xw=0,\n", " yw=0,\n", " rw=rw,\n", " tsandQ=[(0, -Q)],\n", " layers=range(6, 6 + 5),\n", " rc=rc,\n", " wbstype=\"slug\",\n", ")\n", "ml.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Estimate aquifer parameters" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "...................................\n", "Fit succeeded.\n" ] } ], "source": [ "cal = tft.Calibrate(ml)\n", "cal.set_parameter(name=\"kaq\", layers=list(range(1, nlay)), initial=10, pmin=0)\n", "cal.set_parameter(name=\"Saq\", layers=list(range(1, nlay)), initial=1e-4, pmin=0)\n", "cal.seriesinwell(name=\"obs\", element=w, t=to, h=ho)\n", "cal.fit(report=False)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
optimal
kaq_1_170.439175
Saq_1_170.000461
\n", "
" ], "text/plain": [ " optimal\n", "kaq_1_17 0.439175\n", "Saq_1_17 0.000461" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "RMSE: 0.006 m\n" ] } ], "source": [ "display(cal.parameters.loc[:, [\"optimal\"]])\n", "print(f\"RMSE: {cal.rmse():.3f} m\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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itK3b980x0g5T1IkJSUpVapUUV599VXDupiYGMXW1lYZO3Zsqm2HDx+uODg4KI8ePVIURVEOHDigAMqqVatSbbd9+/Y06318fBRA2b59+wvjVhRFadq0qQIoq1evNqy7ePGiAigWFhbKkSNHDOt37NiR5mfSsWNHxdraWrl27Zph3e3bt5VChQopTZo0MawbOXKkAihHjx41rLt7967i7OysAEpYWJiiKMb/XiiKokyaNEmR1JCadL0WEN26dePx48ds2bKFhw8fsmXLlue2XrZt24ZarWb48OGp1o8aNQpFUfjtt98M2wFptnu2dagoChs2bKB9+/YoikJ0dLRhad26NbGxsZw6dSpT72vQoEGprnft2rWLmJgYevTokep11Go1devWZe/evQDY2dlhbW1NaGhomm627Obi4sLNmzc5fvx4tr9W165dcXZ2NjxOaYm8/fbbWFpaplqflJTErVu3sj2ml/F0S+nBgwfExsbSuHHjVOePs7MzHTp0YM2aNYZLBVqtluDgYDp27IiDgwMA69evx9nZmZYtW6Y6V2rVqoWjo6PhXElRqlSpVN22L+Lo6Ej37t0Nj8uXL4+LiwsVK1Y0fA7w32fy999/G2LduXMnHTt2pHTp0obtvLy86NmzJwcPHiQuLg7Q/w7Wq1ePOnXqGLZzc3OjV69eqWIx9vdCpE+6XgsINzc3WrRowerVq0lISECr1dKlS5d0t71+/TrFihUzdAOlqFixouH5lK8WFhb4+fml2u7ZLql79+4RExPDokWLWLRoUbqveffu3Uy9r1KlSqV6fOXKFQBeffXVdLd3cnICwMbGhi+//JJRo0bh4eFBvXr1eOONN+jTp0+2D24aO3Ysu3fvpk6dOpQpU4ZWrVrRs2dPGjZsmOF+d+7cSfXY2dk53S62p5UsWTLNPgDe3t7prs/pfxoeP35MbGxsqnUZ/fy3bNnClClTOH36NImJiYb1z97316dPH4KDgzlw4ABNmjRh9+7dREVFpRpte+XKFWJjY3F3d0/3tZ49J589116kRIkSaeJydnZ+4c/+3r17JCQkpNu1W7FiRXQ6HTdu3KBy5cpcv349VdJN8ey+xv5eiPRJoixAevbsyaBBg7hz5w6vv/46Li4uOfK6KQML3n77bfr27ZvuNtWqVcvUsZ9NFCmvtWLFinT/4D7diho5ciTt27dn06ZN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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 = w.headinside(tm)\n", "plt.semilogx(to, ho / H0, \".\", label=\"obs\")\n", "plt.semilogx(tm, hm[0] / H0, label=\"timflow\")\n", "plt.xlabel(\"time [d]\")\n", "plt.ylabel(\"Normalized head (h/H0)\")\n", "plt.title(\"Model results - multi-layer model\")\n", "plt.legend()\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparison of results\n", "Here, the `timflow` performance in analysing slug tests is checked. The solution in `timflow` is compared with the KGS analytical model (Hyder et al. 1994) implemented in AQTESOLV (Duffield, 2007). The parameters of `timflow` and AQTESOLV are similar, even though AQTESOLV only used one layer." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 k [m/d]Ss [1/m]RMSE [m]
timflow0.444.61e-040.006
AQTESOLV0.425.70e-04-
\n" ], "text/plain": [ "" ] }, "execution_count": 10, "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, cal.rmse())\n", "t.loc[\"AQTESOLV\"] = [0.4211, 5.70e-4, \"-\"]\n", "\n", "t_formatted = t.style.format(\n", " {\n", " \"k [m/d]\": \"{:.2f}\",\n", " \"Ss [1/m]\": \"{:.2e}\",\n", " \"RMSE [m]\": lambda x: \"-\" if x == \"-\" else f\"{float(x):.3f}\",\n", " }\n", ")\n", "t_formatted" ] }, { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## References\n", "\n", "* Batu, V. (1998), Aquifer hydraulics: a comprehensive guide to hydrogeologic data analysis, John Wiley & Sons\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." ] } ], "metadata": { "kernelspec": { "display_name": "timflow (3.13.11)", "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.11" } }, "nbformat": 4, "nbformat_minor": 4 }