VarSatFlow: A Variably Saturated groundwater Flow model (Paper PDF)
In this repository, we present an efficient, conservative and large scale numerical simulator for variably saturated flow in the limit of negligible capillary forces. The model modifies Richards equation to capture complete saturation. Here we implement a tensor product grid-based conservative finite difference solver. The codes are written in Open Source Discrete Operator Toolbox (PyDOT) developed by Shadab based on Hesse's toolbox in MATLAB (MDOT). The codes include one and two-dimensional tests which have been validated with Hydrus simulations, experiments and hydraulic theory. The repository contains codes of variably saturated groundwater model to replicate all the main manuscript figures in Shadab and Hesse (2024), Advances in Water Resources, Elsevier.
Figure : Gravity-dominated drainage of multiple saturated drops across an unsaturated porous medium.
Here
[1] Shadab, M.A. and Hesse, M.A., 2024. A hyperbolic-elliptic PDE model and conservative numerical method for gravity-dominated variably-saturated groundwater flow, Advances in Water Resources, Elsevier.
[2] Shadab, M. A. and Hesse, M. A., 2024. mashadab/VarSatFlow: v1.0 (v1.0). Zenodo. https://doi.org/10.5281/zenodo.11398273
- Mohammad Afzal Shadab (mashadab@utexas.edu)
- Marc Andre Hesse (mhesse@jsg.utexas.edu)
Oden Institute for Computational Engineering and Sciences / Jackson School of Geosciences / University of Texas Institute for Geophysics The University of Texas at Austin
Example: Infiltration in soil with an impermeable soil layer leading to formation of a perched water table
Woods_Hesse_upwinding_hyperbolic_Richards_final_fs4by8_0.975_140by80_tf14.0_S_w_mesh.mov
Video : Flux partitioning in a steady gravity current passing symmetrically over a barrier.
(i) Dependence of the flux partitioning,
The panel labels give the dimensionless source locations,
VarSatFlow requires the following packages to function:
- Python version 3.5+
- Numpy >= 1.16
- scipy >=1.5
- matplotlib >=3.3.4
After cloning the repository and installing the required libraries, run the python files corresponding to the figure numbers as given in the paper. Codes can be run either directly or on an IDE such as Anaconda Spyder. Use %matplotlib qt
to change the plotting from inline to separate window in Spyder. The Solver folder contains the auxillary code. The source folder src contains two subfolders. The main codes corresponding to Figures are in the subfolder MainCodes
whereas the resulting plots are collected in the subfolder Figures
. The name of the Python code bears the same figure number as given in the paper.
The depth coordinate