What is DassFlow ?

You are not a research scientist ? You may directly go to one of the following pages (menu on the left): rivers, glaciers or contacts. Otherwise the description below may interest you.

DassFlow (Data Assimilation for Free Surface Flows) is a computational platform for numerical modeling and simulation of free surface geophysical flows, non turbulent and mainly shallow (long-wave assumption). Its significant features are the following. Variational Data Assimilation (VDA) aiming at minimizing the difference between the model output and data (cost function). The gradient of the cost function is computed by deriving an adjoint code (obtained by algorithmic diffrenciation or not). The complete optimization process (VDA) provides parameters identification, reduced uncertainties, calibrated model(s).
Original or classical robust (potentially higher-order) numerical schemes (FE, FV) are employed. Dedicated covariance operators are introduced into the VDA formulation.
Interfaces with (potentially large) databases e.g. for rivers, glaciers in ice-sheets etc are developed.
In some cases, deep learning algorithms are employed to estimate prior fields values.
DassFlow1D solvers are low CPU time consuming (~mn on a laptop for direct runs) then it may be employed-combined with sequential filtering libraries too.


The codes are written either in Fortran 90 (MPI for 2D and 3D versions) or in Python-Fenics (2D shallow, power-law fluids). Each version includes the forward code (FE or FV schemes, 1st and/or 2nd order), the corresponding adjoint code (source code differenciation or not) and the gradient-based optimization method.

Each version is interfaced with few (free or commercial) pre and post-processors (SIG tools, mesh generators, visualization tools) enabling to address real-world datasets.

Fluid flow models (originals or not) & advanced numerical schemes.
The employed classical models are: 1D SWE (St-Venant) in variables (S,Q)(x,t), the 2D SWE in variables (h,q)(x,y,t) and 3D Stokes flow power-law rheology with mobile free-surfaces (ALE formulation if 2D vertical).
Also new models which are dedicated to the targeted inversions are developed: low-Froude algebraic systems (rivers), a Reduced Uncertainty glaciers dynamics model (RU-SIA), a multi-regime shallow flow model (lavas, glaciers).
Numerical schemes may be originals or classical ones. They are Finite Volume schemes (1st order/2nd order) for shallow models and Finite Element schemes (2nd order) (2 fields or 4 fields for Stokes like models with power law rheology).
Boundary conditions required for real-world flows are available.
Meshes: mix of triangles-quadrangles for 2d FV schemes; triangles, quadrangles and tetrahedron for FE (both 2D and 3D solvers are available).

Former extra capabilities:
1. lagrangian surface date (assimilation of lagrangian data at surface).
2. superposition of local 2D models over 1D model, with simultaneous variational data assimilation - calibration process.
3. transport (pollutent or solids), sedimentation.

State-of-the-art in Variational Data Assimilation (VDA).
VDA formulations taking into account prior information.
Classical and/or dedicated covariances operators, regularization terms are introduced.

Gradient-based algorithms.
For VDA, the gradients are computed using the adjoint method. The adjoint codes are generated either using the automatic differentiation tool Tapenade (INRIA) or by coding the adjoint equations. For deep learning, the gradients are computed by employing the blackbox routines of PyTorch library. Optimization routines (1st order methods) are either the ones from NumPy library or the L-BFGS quasi-Newton algorithm M1QN3 (from INRIA).
Local sensitivities are available by plotting the gradients (spatially distributed gradient values).

The 2D and 3D Fortran codes are parallel using MPI library. Linear systems are solved using MUMPS or NumPy libraries.
A twin experiment mode (inversions of synthetic data) is available.

Numerous benchmarks are available both for the forward models and the inverse ones.

The different code versions

DassFlow platform includes the following computational codes : DassFlow-2DShallow (2d shallow-water - FV schemes), DassFlow-3D (Stokes like systems -power law rheology, low inertia-, FE schemes), and DassFlow-1D (Saint-Venant, FV - FD schemes) and DassFlow-Py (Ice-lava flows models, multi-regimes, 2D shallow; FE schemes).

DassFlow-1D: Shallow-water 1D (Saint-Venant's equation), Finite Volumes & Finite Differences. Fortran (& Python scripts).
Applications: 1D river flows (with lateral terms and network soon).
In addition of its VDA capabilities (adjoint-based method), the 1D code can be interfaced to sequential - stochastic methods available e.g. in OpenTurns.
DassFlow-2DShallow: Shallow-water (classical), Finite Volumes. Fortran-MPI.
Applications in river hydraulic: flood plain (also braided rivers, urban areas, storm surge, tidal waves).
DassFlow-Py: Shallow flows models for multi-regimes quasi-Newtonian fluids (Glaciers, lavas etc). Finite Elements, Python.
Applications: Glaciers (xSIA, RU-SIA, SMISA, SSA), lavas.
DassFlow-3D: Stokes equations, power-law rheology, ALE free surface (in 2d only), Finite Elements (3d and 2d). Fortran-MPI.
Applications: mau be usefull for steady-state smulations of low Reynolds gravitational flows of e.g. glaciers (power-law fluids).

Assimilated data can be combinations of in-situ and remote-sensed observations, either time-series or spatially distributed.

Funds & history The various developments have been co-funded by INSA Toulouse - CNRS (since 2008), next Group INSA and CNES (since 2014). (Formerly by the French agency ANR , Amac & Adage projects 2009-13).
The initial version (not available anymore) has been funded by the Grenoble Institute of Technology INPG, by Région Rhône-Alpes (research project "Numerical prediction for floods", 2003-06), and by INRIA Rhône-Alpes (under licence APP).

river test case river test case
river test case

Leze river (close to Toulouse), flood event.
Left) Sensitivity wrt bathymetry. Right down) Identification of inflow discharge Qin(t).
Data from ANR Amac (IMFT-IMT) 2010. Computations IMT-IMFT 2011.

glacier test case
glacier test case

3D inverse computations (Mertz glacier). (Example of 2013).
Sensitivity of surface velocities w.r.t. consistency (rheological law) (up) and basal friction (down).
2D flow-line data from Legos (Toulouse) & Nasa; 3D fake extension.
Computations IMT (R. Madec and N. Martin) 2013.