Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v6.4.0 #108

Merged
merged 29 commits into from
Feb 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
47e1b2c
add building pits to docs
dbrakenhoff Dec 5, 2023
fe67e52
add 3D building pit elements
dbrakenhoff Dec 5, 2023
9f9a56d
add building pits to docs
dbrakenhoff Dec 5, 2023
23c5ae8
start of new docs (#93) (#98)
dbrakenhoff Dec 5, 2023
774cf4e
update nb
dbrakenhoff Dec 5, 2023
c93caad
Merge remote-tracking branch 'origin/dev' into add_buildingpit3D
dbrakenhoff Dec 5, 2023
6bdf1d9
Update index.rst
mbakker7 Dec 5, 2023
4633ad5
Merge branch 'master' into dev
mbakker7 Dec 5, 2023
4b96494
update circular pit nb
dbrakenhoff Dec 5, 2023
fe9f6b2
return intnormflux per layer and line segment
dbrakenhoff Dec 5, 2023
9ce61c8
update nb
dbrakenhoff Dec 5, 2023
bd71006
Merge pull request #97 from mbakker7/add_buildingpit3D
dbrakenhoff Dec 5, 2023
5282197
Merge branch 'dev' into intnormflux_per_segment2
dbrakenhoff Dec 5, 2023
965e478
Updated documentation of intnormflux
mbakker7 Dec 5, 2023
d6a7ecd
Merge pull request #101 from mbakker7/intnormflux_per_segment2
dbrakenhoff Dec 6, 2023
a812cc0
up version
dbrakenhoff Dec 6, 2023
fca9f7d
Improve docs (#104)
dbrakenhoff Dec 20, 2023
09f619a
Update aquifer.py
mbakker7 Feb 6, 2024
6d277af
experimental implementation of large diameter well
mbakker7 Feb 6, 2024
4528595
Merge branch 'dev' of https://github.com/mbakker7/timml into dev
mbakker7 Feb 6, 2024
3482d91
fixed large diameter well
mbakker7 Feb 7, 2024
11827ef
added doc strings to trace
mbakker7 Feb 13, 2024
9c261b7
fix numba deprecation warning
dbrakenhoff Feb 13, 2024
dfe8dea
doc strings added for functions in util.py
mbakker7 Feb 13, 2024
9f447f2
Merge branch 'dev' of https://github.com/mbakker7/timml into dev
mbakker7 Feb 13, 2024
599044b
run docformatter and manually clean up some docstrings
dbrakenhoff Feb 13, 2024
92b65ad
run docformatter and manually clean up some docstrings
dbrakenhoff Feb 13, 2024
09119ad
up version to 6.4.0
dbrakenhoff Feb 13, 2024
5d4d3c0
update readme
dbrakenhoff Feb 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,4 @@ ENV/

# docs
_build/
docs/04api/generated
docs/05api/generated
Empty file removed .nojekyll
Empty file.
36 changes: 24 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,15 @@ TimML is coded in Python and uses numba to speed up evaluation of the bessel lin

**Python versions:**

TimML requires **Python** >= 3.7 and can be installed from PyPI.
TimML requires Python >= 3.8 and can be installed from PyPI.

**Dependencies:**

TimML requires **numpy** >=1.17, **scipy** >=1.5 and **matplotlib** >=3.1, **numba>=0.5**.
TimML requires:
* numpy
* scipy
* matplotlib
* numba

**Installation:**

Expand All @@ -44,16 +48,24 @@ To uninstall TimML type:
* The documentation is hosted on [readthedocs](https://timml.readthedocs.io/).
* Example Notebooks are available from the notebooks directory on github, of from [here](https://github.com/mbakker7/timml/tree/master/notebooks).

## TimML Version 6

TimML version 6 has the same functionality as version 5, but doesn't depend on a fortran extension anymore, so installation is easy on all platforms.
TimML version 5 is a total rewrite and is not backwards compatible with previous TimML versions.
TimML version 5 is intended to be compatible with TTim.
TimML version 5 has many new features and elements, the code base is Python 3, and the object oriented design is much simpler.
TimML version 4 remains available through the timml4 branch.

## Release
TimML 6.0. First release that depends on numba and doesn't depend on fortran extension anymore. Code is now pure python (with numba for speed).
## Latest release
TimML 0.6.5
* Improved documentation: new look, better organization, tutorials, how-to guides etc. Check it out [here](https://timml.readthedocs.io/)!
* New elements
* Building pit elements for 3D (multi-layer single aquifer) models.
* Large diamater wells (only for radial flow).
* Enhancements
* Building pit leaky wall resistance can be set per layer and per side (for modeling leaks or gaps).
* Return integrated normal flux per layer and per line segment.

## TimML Versions

* TimML version 0.6 has the same functionality as version 5, but doesn't depend on a fortran extension anymore, so installation is easy on all platforms.
* TimML version 0.5
* is a total rewrite and is not backwards compatible with previous TimML versions.
* is intended to be compatible with TTim.
* has many new features and elements, the code base is Python 3, and the object oriented design is much simpler.
* TimML version 0.4 remains available through the timml4 branch.

## Citation

Expand Down
6 changes: 2 additions & 4 deletions docs/00tutorials/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ TimML tutorials.

`Tutorial 0 - Well in a single aquifer`_

.. _Tutorial 0 - Well in a single aquifer: tutorial0_well_single_layer_aquifer.html


`Tutorial 1 - Well in a multi-aquifer system`_

.. _Tutorial 1 - Well in a multi aquifer system: tutorial1_well_multi_layer_aquifer.html
.. _Tutorial 0 - Well in a single aquifer: tutorial0_well_single_layer_aquifer.html
.. _Tutorial 1 - Well in a multi-aquifer system: tutorial1_well_multi_layer_aquifer.html
2 changes: 1 addition & 1 deletion docs/00tutorials/tutorial1_well_multi_layer_aquifer.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"In this notebook, we will simulate steady flow to an extraction well in the middle aquifer of a three-aquifer system. \n",
"Aquifer properties are given in the table shown below. The well is located at $(x,y)=(0,0)$, the discharge is $Q=10,000$ m$^3$/d and the radius is 0.2 m. There is a uniform flow from West to East with a gradient of 0.002. The head is fixed to 20 m at a distance of 10,000 m downstream of the well. \n",
"\n",
"#### Aquifer properties\n",
"### Aquifer properties\n",
"|Layer |$k$ (m/d)|$z_b$ (m)|$z_t$|$c$ (days)|\n",
"|-------------|--------:|--------:|----:|---------:|\n",
"|Aquifer 0 | 10 | -20 | 0 | - |\n",
Expand Down
File renamed without changes.

Large diffs are not rendered by default.

53 changes: 52 additions & 1 deletion docs/03examples/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,59 @@ TimML example notebooks.
:hidden:

timml_notebook0_sol
timml_notebook1_sol
timml_notebook2_sol
timml_notebook3_3D_sol
timml_notebook3_sol
timml_notebook4_sol
timml_notebook5_sol
timml_notebook6_sol
timml_notebook7
BuildingPit
circareasink_example
circular_buildingpit
lake_horizontal_well
normal_flux
test_linesink_discharge
test_polygon_areasink
test_well_near_lake
timml_figures


`TimML example notebook 0`_
* `TimML example notebook 0`_
* `timml_notebook1_sol`_
* `timml_notebook2_sol`_
* `timml_notebook3_3D_sol`_
* `timml_notebook3_sol`_
* `timml_notebook4_sol`_
* `timml_notebook5_sol`_
* `timml_notebook6_sol`_
* `timml_notebook7`_
* `BuildingPit`_
* `circareasink_example`_
* `circular_buildingpit`_
* `lake_horizontal_well`_
* `normal_flux`_
* `test_linesink_discharge`_
* `test_polygon_areasink`_
* `test_well_near_lake`_
* `timml_figures`_

.. _TimML example notebook 0: timml_notebook0_sol.html
.. _timml_notebook1_sol: timml_notebook1_sol.html
.. _timml_notebook2_sol: timml_notebook2_sol.html
.. _timml_notebook3_3D_sol: timml_notebook3_3D_sol.html
.. _timml_notebook3_sol: timml_notebook3_sol.html
.. _timml_notebook4_sol: timml_notebook4_sol.html
.. _timml_notebook5_sol: timml_notebook5_sol.html
.. _timml_notebook6_sol: timml_notebook6_sol.html
.. _timml_notebook7: timml_notebook7.html
.. _BuildingPit: BuildingPit.html
.. _circareasink_example: circareasink_example.html
.. _circular_buildingpit: circular_buildingpit.html
.. _lake_horizontal_well: lake_horizontal_well.html
.. _normal_flux: normal_flux.html
.. _test_linesink_discharge: test_linesink_discharge.html
.. _test_polygon_areasink: test_polygon_areasink.html
.. _test_well_near_lake: test_well_near_lake.html
.. _timml_figures: timml_figures.html

Large diffs are not rendered by default.

File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### TimML test line-sink discharge"
"# TimML test line-sink discharge"
]
},
{
Expand Down Expand Up @@ -239,7 +239,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Resistance line-sink"
"## Resistance line-sink"
]
},
{
Expand Down Expand Up @@ -384,7 +384,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Specifying heads along line-sinks"
"## Specifying heads along line-sinks"
]
},
{
Expand Down Expand Up @@ -480,7 +480,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### LineSinkDitch"
"## LineSinkDitch"
]
},
{
Expand Down Expand Up @@ -541,7 +541,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Head line-sink string"
"## Head line-sink string"
]
},
{
Expand Down Expand Up @@ -841,7 +841,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ditch string"
"## Ditch string"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test Polygon Area Sink"
]
},
{
"cell_type": "code",
"execution_count": 3,
Expand Down Expand Up @@ -102,7 +109,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Checks for numerical derivative"
"## Checks for numerical derivative"
]
},
{
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# TimML aquifer figures"
]
},
{
"cell_type": "code",
"execution_count": 1,
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"\n",
"Three wells are present. Well 1 is screened in aquifer 0 and has a discharge of 1000 m$^3$/d, well 2 is screened in aquifer 2 and has a discharge of 5000 m$^3$/d, and well 3 is screened in aquifers 1 and 2 and has a total discharge of 5000 m$^3$/d. A constant recharge through the upper boundary of aquifer 0 is simulated by one large circular infiltration area that covers the entire model area; the recharge rate is 0.2 mm/day. A head of 175 m is specified in layer 0 at the upper righthand corner of the model domain. A layout of all analytic elements, except the boundary of the infiltration area, is shown in Figure 1. \n",
"\n",
"#### Table 1: Aquifer data for Exercise 2\n",
"### Table 1: Aquifer data for Exercise 2\n",
"|Layer | $k$ (m/d) | $z_b$ (m) | $z_t$ | $c$ (days) | $n$ (-) | $n_{ll}$ (-) |\n",
"|------------:|----------:|----------:|------:|-----------:|--------:|----------:|\n",
"|Aquifer 0 | 2 | 140 | 165 | - | 0.3 | - | \n",
Expand All @@ -27,7 +27,7 @@
"\n",
"<img src=\"figs/timml_notebook2_layout.png\"> </img>\n",
"\n",
"#### Figure 1: Layout of elements for Exercise 2. Heads at centers of line-sinks are indicated. "
"### Figure 1: Layout of elements for Exercise 2. Heads at centers of line-sinks are indicated. "
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"\n",
"<img src=\"figs/inhomogeneity_exercise3.png\"> </img>\n",
"\n",
"#### Figure 1: Layout of elements for exercise 3. A well is located inside inhomogeneity 1. Inhomogeneity 2 is added in the second part of the exercise."
"### Figure 1: Layout of elements for exercise 3. A well is located inside inhomogeneity 1. Inhomogeneity 2 is added in the second part of the exercise."
]
},
{
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions docs/04xsections/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Cross-sectional modeling
========================

This section describes how to build cross-sectional models in TimML.


.. toctree::
:maxdepth: 4
:hidden:

timml_xsection

* `timml_xsection`_

.. _timml_xsection: timml_xsection.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/04api/index.rst → docs/05api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ Python code.

.. toctree::
:hidden:
:maxdepth: 4
:maxdepth: 2
:glob:
11 changes: 11 additions & 0 deletions docs/06about/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Cite
====

Publications
------------

.. bibliography:: publications.bib
:list: bullet

bakker2003
bakker_analytic_2006
28 changes: 28 additions & 0 deletions docs/06about/publications.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

@article{bakker2003,
title = {Analytic elements for multiaquifer flow},
volume = {271},
issn = {00221694},
url = {http://linkinghub.elsevier.com/retrieve/pii/S0022169402003190},
doi = {10.1016/S0022-1694(02)00319-0},
number = {1-4},
journal = {Journal of Hydrology},
author = {Bakker, Mark and Strack, Otto D. L.},
month = feb,
year = {2003},
keywords = {analytic element method, groundwater, leakage, multiaquifer flow},
pages = {119--129},
file = {Full Text:/home/david/Zotero/storage/8VHQ3TPN/Bakker and Strack - 2003 - Analytic elements for multiaquifer flow.pdf:application/pdf},
}

@article{bakker_analytic_2006,
title = {An analytic element approach for modeling polygonal inhomogeneities in multi-aquifer systems},
volume = {29},
doi = {10.1016/j.advwatres.2005.11.005},
abstract = {An analytic element approach is presented for the modeling of steady groundwater flow through multi-aquifer systems with piecewise constant aquifer and leaky layer properties. Different properties may be specified for domains bounded by closed polygons, referred to as polygonal inhomogeneities. The boundary of these inhomogeneities is modeled with two types of high-order line elements. First, a string of single-aquifer line-doublets is used; these elements cut through all aquifers and are valid both inside and outside the inhomogeneity. Second, two strings of multi-aquifer line-sinks are used, one string that is valid inside the inhomogeneity and one string that is valid outside; the comprehensive extraction of these line-sinks is zero at any point along the string. The proposed approach results in a comprehensive flow field of which the component normal to the boundary of the inhomogeneity is continuous across the boundary at any point. Within each individual aquifer, continuity of head and the component of flow normal to the boundary are met approximately across the boundary; the accuracy increases when the order of the line elements is increased and/or when shorter line elements are used. The proposed analytic element approach produces results that are virtually identical to the exact solution for a cylindrical inhomogeneity, and a high-resolution MODFLOW2000 model of two rectangular inhomogeneities with a shared boundary. The practical application of the approach is demonstrated through the solution of a problem with an irregularly shaped inhomogeneity with rivers crossing the inhomogeneity boundary.},
journal = {Advances in Water Resources - ADV WATER RESOUR},
author = {Bakker, Mark},
month = oct,
year = {2006},
pages = {1546--1555},
}
9 changes: 8 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"myst_nb",
"sphinx_design",
"sphinx.ext.autosectionlabel",
"sphinxcontrib.bibtex",
]

templates_path = ["_templates"]
Expand All @@ -48,7 +49,7 @@
html_theme_options = {
"github_url": "https://github.com/mbakker7/timml",
"use_edit_page_button": True,
"header_links_before_dropdown": 6,
"header_links_before_dropdown": 7,
# "icon_links": [
# {
# "name": "GitHub", # Label for this link
Expand Down Expand Up @@ -101,3 +102,9 @@
nb_execution_allow_errors = True # Allow errors in notebooks, to see the error online
nb_execution_mode = "auto"
nb_merge_streams = True

# -- bibtex options ------------------------------------------------------------------

# Add some settings for bibtex
bibtex_bibfiles = ["06about/publications.bib"]
bibtex_reference_style = "author_year"
14 changes: 12 additions & 2 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,14 @@ computed analytically at any point in the aquifer system. The Dupuit approximati

TimML example notebooks.

.. grid-item-card:: Cross-sections
:link: 04xsections/index
:link-type: doc

Cross-sectional models explained.

.. grid-item-card:: Code reference
:link: 04api/index
:link: 05api/index
:link-type: doc

TimML code reference.
Expand Down Expand Up @@ -78,6 +84,8 @@ Quick Example

.. tab-item:: Result

In this example a well is modelled near a river in a single aquifer.

.. figure:: _static/example_output.png
:figwidth: 500px

Expand All @@ -90,4 +98,6 @@ Quick Example
How-to guides <01howto/index>
Concepts <02concepts/index>
Examples <03examples/index>
Code reference <04api/index>
Cross-sections <04xsections/index>
Code reference <05api/index>
Cite <06about/index>
Loading
Loading