intro story D-Flow FM


D-Flow Flexible Mesh

D-Flow Flexible Mesh (D-Flow FM) is the new software engine for hydrodynamical simulations on unstructured grids in 1D-2D-3D. Together with the familiar curvilinear meshes from Delft3D 4, the unstructured grid can consist of triangles, pentagons (etc.) and 1D channel networks, all in one single mesh. It combines proven technology from the hydrodynamic engines of Delft3D 4 and SOBEK 2 and adds flexible administration, resulting in:

  • Easier 1D-2D-3D model coupling, intuitive setup of boundary conditions and meteorological forcings (amongst others).
  • More flexible 2D gridding in delta regions, river junctions, harbours, intertidal flats and more.
  • High performance by smart use of multicore architectures, and grid computing clusters.
An overview of the current developments can be found here.
The D-Flow FM - team would be delighted if you would participate in discussions on the generation of meshes, the specification of boundary conditions, the running of computations, and all kinds of other relevant topics. Feel free to share your smart questions and/or brilliant solutions! 


We have launched a new website (still under construction so expect continuous improvements) and a new forum dedicated to Delft3D Flexible Mesh.

Please follow this link to the new forum: 

Post your questions, issues, suggestions, difficulties related to our Delft3D Flexible Mesh Suite on the new forum.





Sub groups
D-Flow Flexible Mesh
Cohesive sediments & muddy systems


Message Boards

Little mistake in the code when total discharge is imposed.

Alberto Canestrelli, modified 7 Years ago.

Little mistake in the code when total discharge is imposed.

Youngling Posts: 8 Join Date: 7/12/11 Recent Posts
Dear all,

I think I found a little mistake in the discharge boundary conditions that affects the most recent versions, i.e. the ones in which the
flag use_zavg_for_qtot has been introduced. In the soubroutine incbc.f90 when computing the depth at both
v and u boundary points the following espressions are used:

if (use_zavg_for_qtot) then
dpvel = max(0.0_fp, hu(npbt, mpbt)-s0(npbi, mpbi)+zavg(n1))

if (use_zavg_for_qtot) then
dpvel = max(0.0_fp, hv(npbt, mpbt)-s0(npbi, mpbi)+zavg(n1))

but the water surface should be taken at point (npbt, mpbt) instead of (npbi, mpbi). As it is, the adjacent water surface is taken,
and in the case a dry cell (npbi, mpbi) is present next to the cell (npbt, mpbt), a wrong value of dpvel is computed. I noticed this since an asymmetry
was present at the inlet when I was prescribing water discharge in a straight channel with free slip. This is evident at the beginning of the simulation (see figure attached) and it is less evident (but still noticible) at steady state. Once I replaced (npbi, mpbi) with (npbt, mpbt), the flow became perfectly symmetric.
I dont know if this is the right place to signal bugs, please let me know in case it is not.
Hope this helps