Modeling of Subsurface Flow and Transport with Dynamic Boundary Conditions
2019-06-25, 14:00–14:30, Room 2

A newly developed model makes groundwater modeling customizable by applying dynamic boundary conditions.
The user of the model can implement the behavior of such boundary conditions by writing Python plugins.

Boundary conditions are essential for groundwater models.
Typically, there are three major types of boundary conditions
(1) specified head (Dirichlet),
(2) specified flow (Neumann),
and (3) the combination of both former ones into a boundary condition of flow with resistance (Cauchy).
The user can specify values for these boundary conditions such as a well
at a certain location with a given pumping rate for a specified duration.
For some special applications, however, the specified values may further
depend on internal model conditions.
For example, the flow rate of an infiltration well that re-infiltrates water is equal to
the pumping rate of the extraction well.
This can be useful for geothermal applications within groundwater bodies.
The newly developed model, ueflow, allows the user to implement such a scheme by writing a plugin.
In addition to just using the pumping rate as infiltration rate, the user can incorporate
other constrains such as energy costs for pumping, capacities of water treatment facilities,
maintenance schedules for pumps based on pumping regimes, or other technical constrains.

The talk gives a short overview of ueflow that is based on the finite volume model framework
FiPy (Guyer et al. 2009).
FiPy is implemented in Python and offers multiple, high-performance solvers as well as
several tools for generating grids and other input data.
The next steps in developing ueflow involve adding a graphical user interface based on Python GIS libraries.
GeoPython is a good place to connect to scientists having similar tasks, leading to a fruitful exchange and collaboration for this open-source project.

Guyer, J. E., Wheeler, D., Warren, J. A. (2009). FiPy: Partial Differential Equations with Python. Computing in Science & Engineering 11(3) pp. 6—15 (2009), doi:10.1109/MCSE.2009.52,