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: 
/web/delft3dfm/forum

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

=======================================================

** PLEASE TAG YOUR POST! **

 

 

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

 


Message Boards

Does not compile with either GNU 4.8.3 or Intel 12.1

JS
Jeff Stafford, modified 3 Years ago.

Does not compile with either GNU 4.8.3 or Intel 12.1

Youngling Posts: 3 Join Date: 11/17/16 Recent Posts
Was unable to get this program to build with either GNU 4.8.3 or Intel 12.1 on Centos 6.7.

Here's what I did for both (use same compiler for all steps). Tried both by editing build.sh and doing the standard autogen.sh, ./configure, make (got same errors for each method):
- Built a new version of Autoconf
- Built MPICH 3.2
- Built NetCDF 4.1.3
- Attempted to build Delft3d

Errors for each (roughly paraphrasing, don't want to rebuild just for the sake of the error message):

Intel 12.1:
Error at "use netcdf". Got stuck with "this module was built with a different version of the compiler" error. Yes, I verified that everything was built with the same Intel 12.1 compilers about 7 times. This compile got a little farther than the GNU one.

GNU 4.8.3:
There was a bug in the build script/makefiles where it would end up with several broken include paths - the real show stopper was that it kept doing this in the build script "-I -I/location/of/netcdf/include" which resulted in the invalid include path "-I/location/of/netcdf/include". So because some environment variable ended up unset, the next include path got interpreted as "-I/somedirectory" multiple times.

Also, unrelated, but attempting a multithreaded make with the -j option results in a broken build (the autogenerated makefiles don't properly specify dependencies, so the autogenerated version header files don't get made before the stuff that needs them does).
Adri Mourits, modified 3 Years ago.

RE: Does not compile with either GNU 4.8.3 or Intel 12.1

Yoda Posts: 1224 Join Date: 1/3/11 Recent Posts
Hi Jeff,

Yes, compiling on Linux can really be a pain. It's difficult to help you, since your problems are most probably related to your system and the locations of the needed libraries on it.

Qinghua Ye managed recently to get everything compiled on a clean Ubuntu machine. He produced a "readme" file and a build script. They are both added to the trunk:
https://svn.oss.deltares.nl/repos/delft3d/trunk/src/build_ubuntu.16.04LT.readme
https://svn.oss.deltares.nl/repos/delft3d/trunk/src/build_ubuntu1604.sh

I know you are using CentOS (as we are using ourself), but it might help to have a look at Qinghua's readme file and compare his build script with the other build scripts overthere.

If it doesn't help: can you attach the full build output to a post on this forum?

Regards,

Adri
JS
Jeff Stafford, modified 3 Years ago.

RE: Does not compile with either GNU 4.8.3 or Intel 12.1

Youngling Posts: 3 Join Date: 11/17/16 Recent Posts
Got it working with EasyBuild and GNU 4.9.3 (no build.sh). Having the list of specific dependencies did help (from Qinghua's script), but it would be definitely worth focusing development towards getting a better/more reproducible build system (and having it work in parallel!).
Adri Mourits, modified 3 Years ago.

RE: Does not compile with either GNU 4.8.3 or Intel 12.1

Yoda Posts: 1224 Join Date: 1/3/11 Recent Posts
Hi Jeff,

Suggestions are welcome.

Regards,

Adri
JS
Jeff Stafford, modified 3 Years ago.

RE: Does not compile with either GNU 4.8.3 or Intel 12.1

Youngling Posts: 3 Join Date: 11/17/16 Recent Posts
Ok, here goes:

The version header autogeneration step during "make" breaks parallel builds. Do this during the ./configure step, or find a way to properly specify dependencies in the makefile so that the version headers get generated before they are used to compile things. Otherwise, something like "make -j 40" fails instantly, turning what could be a 30-second compile into a 30-minute compile.

Move your source code over to Git/GitHub. This doesn't really solve any part of the compile process, but it makes it a lot easier to download the source (no registration process required!), manage who can commit code changes, and provides an issue tracker. Right now it's not especially clear which threads on this forum are issues with no solution and which stuff is solved/can be ignored without reading every single thread here.

Clearly outline the build dependencies in your compilation instructions. Some of the OS dependencies listed are from completely different distributions: "uuid-dev" is an Ubuntu package, and "expat-devel" is from RHEL. Pick a distribution to focus on and make sure all of the package names actually work on that distribution. List that distribution/version as a supported version (Ubuntu 16.04?). Make sure that all of the dependencies you specify have a recommended version (and work!) for that OS using the GNU compilers (what's the recommended NetCDF version for the GNU compilers, for instance?).

Delete build.sh. "./autogen.sh", "./configure", and "make" should just work.

Anyhow, just my two cents' worth. I've attached my build scripts as a git repository, but it's more of an HPC-style install, with modules and other stuff.
Adri Mourits, modified 3 Years ago.

RE: Does not compile with either GNU 4.8.3 or Intel 12.1

Yoda Posts: 1224 Join Date: 1/3/11 Recent Posts
Hi Jeff,

Thanks for your suggestions; we'll discuss it internally.

Regards,

Adri