A mass-conservative method for the integration of the two-dimensional groundwater (Boussinesq) equation

View the Project on GitHub ecor/boussinesq

The Boussinesq Model

This code implements a new conservative finite-volume numerical solution for the two-dimensional groundwater flow (Boussinesq) equation, which can be used for investigations of hillslope subsurface flow processes and simulations of catchment hydrology. The Boussinesq equation, which is integrated for each grid element, can take account of the local variations of topography and soil properties within the individual elements. The numerical method allows for wetting and drying of the water table, without any particular adjustment. The stability and convergence of the method is shown to be guaranteed a priori by the properties of the solver itself, even with respect to the boundary conditions, an aspect that has been neglected in previous literature. The numeric solutions were validated against some approximate analytical solutions and compared to those of another (1-D) numerical solver of the Boussinesq equation. Further theoretical details are now available on or can be asked the authors ( without any hesitation.

Brief Historical Introduction

The earliest drafts of code were borm from an idea of Dr. Emanuele Cordano , Prof. Riccardo Rigon and Prof. Vincenzo Casulli (University of Trento) about numerical methods for solving groundwater equation preserving the mass conservation principle and taking into account the possible variability of bedrock topograhy and soil properties within the integration cell. Some of the first 2009/2010 informal presentations introduce the physical problem and are available here.

A new software which implements this numerical algorithm has been developing by Francesco Serafin (with the collaboration of Giuseppe Formetta, Emanuele Cordano and Riccardo Rigon) and it makes use of Object-Oriented Programming paradigma through Java. The source code and useful information can be found here or in this post of Riccardo Rigon's blog

Double-grid 2D solver for Boussinesq Equation (BEq) ... Draft from Emanuele Cordano
CoupledModel from posterVienna

(Old C) Code

The code is available with GPL 3.0 license ( and can be downloaded via GitHUb. A Doxygen-generated documentation of the code is available on the subdirectory "doc" and on . The source code is mostly written in C using FluidTurtle formalism (Rigon et al., 1990s). To view quickly the documentation of the code with FluidTurtles, click here .

Instructions for Usage (Under Construction)

Ther code can be obtained by git as follows:

$ git clone

Further details are available on git and git-Wikipedia, another useful tutorial on git is here. A Draft Manual about the model usage with an example can be downloeaded (in pdf format) clicking here . The source and documentation are contained in the following directory and its subdirectories:

$ cd boussinesq

Here is contained a very simple makefile which allows you to build the source code very quickly, by launching:

$ make all

The executable file is contained in the "bin" subdirectory and it is named "boussinesq". It can be launched as follows:

$ ./bin/boussinesq <arguments>

The target:

$ make clean

will possibly uninstall boussinesq and remove the executable files.

(New Java) Object-Oriented Code

A new code has been devoloping by Francesco Serafin and available here. Other information can be found in this post of Riccardo Rigon's blog. This lasest software is the work of Francesco Serafin's Master Thesis.

Master thesis Francesco Serafin from CAFE GEOFRAME