TBD: Ground water hydrology, surface water hydrology, coastal water hydrology…
AFAICT the go-to applied reference for groundwater is Anderson, Woessner, and Hunt (2015). I have skimmed it and now I know just enough to be dangerous. Fortunately I have my esteemed colleagues in hydrology, Stephanie Clark, Sreekanth-Janardhanan and Tao Cui, and who explain the tricky bits to me.
Stephanie’s recommendations for tutorial introductions:
- NGWA Groundwater fundamentals
- Groundwater Basics – The Groundwater Foundation
- Hydrogeology - Episode 4 - The Water Table, Aquifers, and Potentiometric Surfaces
- Webinar: Groundwater with Darcy and Bernoulli - Australian Water School
- pythongroundwaterbook/analytic_gw_book: This repository contains the Python code of “Analytical Groundwater Modeling: Theory and Applications Using Python” by Mark Bakker and Vincent Post
… is an open-source Python-language package for numerical modeling of Earth surface dynamics. It contains
- A gridding engine which represents the model domain. Regular and irregular grids are supported.
- A library of process components, each of which represents a physical process (e.g., generation of rain, erosion by flowing water). These components have a common interface and can be combined based on a user’s needs.
- Utilities that support general numerical methods, file input/output, and visualization.
In addition Landlab contains a set of Jupyter notebook tutorials providing an introduction to core concepts and examples of use.
Landlab was designed for disciplines that quantify Earth surface dynamics such as geomorphology, hydrology, glaciology, and stratigraphy. It can also be used in related fields. Scientists who use this type of model often build their own unique model from the ground up, re-coding the basic building blocks of their landscape model rather than taking advantage of codes that have already been written. Landlab saves practitioners from the need for this kind of re-invention by providing standardized components that they can re-use.
An important industry standard from the USGS. See MODFLOW.
DPFEHM is a Julia module that includes differentiable numerical models with a focus on fluid flow and transport in the Earth’s subsurface. Currently it supports the groundwater flow equations (single phase flow), Richards equation (air/water), the advection-dispersion equation, and the 2d wave equation.
Does not seem to support CUDA well but is nifty. Use in e.g. Pachalieva et al. (2022).
Pronounced “dip-fahhhh-m”, why not?
LISFLOOD is the underlying rainfall-runoff-routing model of the European Flood Awareness System (EFAS) which operationally monitors and forecasts floods across Europe
- lidongzh/FwiFlow.jl: Elastic Full Waveform Inversion for Subsurface Flow Problems Using Intrusive Automatic Differentiation
We treat physical simulations as a chain of multiple differentiable operators, such as discrete Laplacian evaluation, a Poisson solver, and a single implicit time-stepping for nonlinear PDEs. They are like building blocks that can be assembled to make simulation tools for new physical models.
Those operators are differentiable and integrated within a computational graph so that the gradients can be computed automatically and efficiently via analyzing the dependency in the graph. Also, independent operators run in parallel, thanks to the graph-based parallelization mechanism of TensorFlow. With the gradients, we can perform gradient-based PDE-constrained optimization for inverse problems.
FwiFlow is built on ADCME, a powerful static-graph-based automatic differentiation library for scientific computing (with TensorFlow backend). FwiFlow implements the idea of Intrusive Automatic Differentiation.
This Framework was created within the PhD project of Sebastian Müller at the Computational Hydrosystems Department at the UFZ Leipzig.
AnaFlow provides several analytical and semi-analytical solutions for the groundwater-flow equation.
WellTestPy is a python-package for handling well based field campaigns. You can easily estimate parameters of aquifer-heterogeneity from pumping test data.
Swift is a toolkit for the end-to-end processing, simulation and analysis of floods. Users can design custom workflows by building on Swift’s computational shallow water solver and incorporating various input, processing and visualisation components, each tailored for flood modelling. The Swift toolkit provides hydrodynamic and coupled hydraulic modelling capability with analysis tools for mitigation options. Swift can be used for both catchment and coastal flood modelling, including sea level rise, for present and future flooding. The capabilities of Swift have been used in a number of flood mitigation projects for cities across Australia.
A porous flow solver which solves diverse PDEs but especially porous flow ones. C++/Python.
A solver for surface water equations, targeting approximately the same problems as Swift, although possibly with fewer GPU accelerations.
Gravity tomography at NASA! GRACE