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 (longwave 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 higherorder) 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 icesheets 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 employedcombined with sequential filtering libraries too.
Features
The codes are written either in Fortran 90 (MPI for 2D and 3D versions) or in PythonFenics (2D shallow, powerlaw 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 gradientbased optimization method.
Each version is interfaced with few (free or commercial) pre and
postprocessors (SIG tools, mesh generators, visualization
tools) enabling to address realworld datasets.
Fluid flow models (originals or not) & advanced numerical schemes.
The employed classical models are: 1D SWE (StVenant) in variables (S,Q)(x,t), the 2D SWE in variables (h,q)(x,y,t) and 3D Stokes flow powerlaw rheology with mobile freesurfaces (ALE formulation if 2D vertical).
Also new models which are dedicated to the targeted inversions are developed: lowFroude algebraic systems (rivers), a Reduced Uncertainty glaciers dynamics model (RUSIA), a multiregime 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 realworld flows are available.
Meshes: mix of trianglesquadrangles 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.
Stateoftheart in Variational Data Assimilation (VDA).
VDA formulations taking into account prior information.
Classical and/or dedicated covariances operators, regularization terms are introduced.
Gradientbased 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 LBFGS quasiNewton 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 : DassFlow2DShallow (2d shallowwater  FV schemes), DassFlow3D (Stokes like systems power law rheology, low inertia, FE schemes), and DassFlow1D (SaintVenant, FV  FD schemes) and DassFlowPy (Icelava flows models, multiregimes, 2D shallow; FE schemes).
DassFlow1D: Shallowwater 1D (SaintVenant'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 (adjointbased method), the 1D code can be interfaced to sequential  stochastic methods available e.g. in OpenTurns.
DassFlow2DShallow: Shallowwater (classical), Finite Volumes. FortranMPI.
Applications in river hydraulic: flood plain (also braided rivers, urban areas, storm surge, tidal waves).
DassFlowPy: Shallow flows models for multiregimes quasiNewtonian fluids (Glaciers, lavas etc). Finite Elements, Python.
Applications: Glaciers (xSIA, RUSIA, SMISA, SSA), lavas.
DassFlow3D: Stokes equations, powerlaw rheology, ALE free surface (in 2d only), Finite Elements (3d and 2d). FortranMPI.
Applications: mau be usefull for steadystate smulations of low Reynolds gravitational flows of e.g. glaciers (powerlaw fluids).
Assimilated data can be combinations of insitu and remotesensed observations, either timeseries or spatially distributed.
Funds & history
The various developments have been cofunded by INSA Toulouse  CNRS (since 2008), next Group INSA and CNES (since 2014). (Formerly by the French agency ANR , Amac & Adage projects 200913).
The initial version (not available anymore) has been funded by the Grenoble Institute of Technology INPG, by Région RhôneAlpes (research project
"Numerical prediction for floods", 200306), and by INRIA RhôneAlpes (under licence APP).

Leze river (close to Toulouse), flood event.
Left) Sensitivity wrt bathymetry. Right down) Identification of inflow discharge Qin(t).
Data from ANR Amac (IMFTIMT) 2010. Computations IMTIMFT 2011.
3D inverse computations (Mertz glacier). (Example of 2013).
Sensitivity of surface velocities w.r.t. consistency (rheological law) (up) and basal friction (down).
2D flowline data from Legos (Toulouse) & Nasa; 3D fake extension.
Computations IMT (R. Madec and N. Martin) 2013.
