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

Problems running 5.00.10.1983 (64 bits)

GS
George Schramkowski, modified 7 Years ago.

Problems running 5.00.10.1983 (64 bits)

Youngling Posts: 7 Join Date: 4/12/11 Recent Posts
A few days ago I compiled Delft3D v. 5.00.10.1983 with g++/gfortran (version 4.7.0) for 64
bits architecture.

The precise steps I took for compilation were as follows:
(1) module add mpich2/hydra/gcc/64/1.4.1p1
(2) FC=gfortran F77=gfortran CFLAGS='-O2 -fPIC -m64' CXXFLAGS='-O2 -fPIC -m64' FFLAGS='-O2 -fPIC -m64' FCFLAGS='-O2 -fPIC -m64' ./configure --prefix=/opt/delft3d/delft3D-5.00.10.1983_gfortran
(3) make
(4) make install
Step (1) is required on our system to set the environment variatle for 64 bits mpich2 (v 1.4.1p1) that has been compiled with gfortran. Step (2) enforces (amongst others) the 64 bits compilation through the "-m64" flag. Note the prefix specification, which means that eventually the installation will be put in directory =/opt/delft3d/delft3D-5.00.10.1983_gfortran.

After step (4), non-empty subdirectories bin and lib have been created in the target (i.e. "--prefix=" specified) directory. The content of the /bin directory is as follows:
datsel esm_info test_01 test_08 test_16
deltares_hydro.tcl kubint test_02 test_09 test_17
d_hydro.exe lint test_03 test_10 test_18
dolprint mormerge.exe test_04_dependent test_11 test_19
ectest nesthd1 test_05_dependent test_12 test_20
esm_create nesthd2 test_06_dependent test_14 vs
esm_delete test_00 test_07_dependent test_15 wave.exe
The /lib folder as a lot (200 in total) .so and .a files so I won’t list the content here

Now, when trying to do a simple parallel flow computation with a model that dit work on previous GPL versions of delft3d I notices that there is no deltares_hydro.exe executable in the bin folder. Using either d_hydro or deltares_hydro.tcl instead gives the following (respective) error messages:
d_hydro ABORT: XML parse error in configuration file
d_hydro ABORT: XML parse error in configuration file
d_hydro ABORT: XML parse error in configuration file
d_hydro ABORT: XML parse error in configuration file
and
ERROR: D3D-FLOW executable "/opt/delft3d/delft3D-5.00.10.1983_gfortran/d_hydro.exe" does not exist.
ERROR: D3D-FLOW executable "/opt/delft3d/delft3D-5.00.10.1983_gfortran/d_hydro.exe" does not exist.
ERROR: D3D-FLOW executable "/opt/delft3d/delft3D-5.00.10.1983_gfortran/d_hydro.exe" does not exist.
ERROR: D3D-FLOW executable "/opt/delft3d/delft3D-5.00.10.1983_gfortran/d_hydro.exe" does not exist.
The last error is strange: I put /opt/delft3d/delft3D-5.00.10.1983_gfortran/bin in the PATH environment varible before calling d_hydro.exe. So it shpould be found. BTW: likewise /opt/delft3d/delft3D-5.00.10.1983_gfortran/lib is in the LD_LIBRARY_PATH.

Now, I went to /opt/delft3d/delft3D-5.00.10.1983_gfortran and made a symbolic link there, i.e. "ln -s bin/d_hydro.exe d_hydro.exe". Now the run still doesn't start since I get the following error twice
ERROR: /opt/delft3d/delft3D-5.00.10.1983_gfortran/d_hydro.exe: symbol lookup error: /opt/delft3d/delft3D-5.00.10.1983_gfortran/lib/libflow2d3d.so: undefined symbol: mpi_initialized_

Weird meaages, since "ldd /opt/delft3d/delft3D-5.00.10.1983_gfortran/lib/libflow2d3d.so" gives the following output
linux-vdso.so.1 => (0x00002aaaaaacb000)
libDelftOnline.so.0 => /opt/delft3d/delft3D-5.00.10.1983_gfortran/lib/libDelftOnline.so.0 (0x00002aaaada54000)
libgfortran.so.3 => /cm/shared/apps/gcc/4.7.0/lib/../lib64/libgfortran.so.3 (0x00002aaaadc69000)
libquadmath.so.0 => /cm/shared/apps/gcc/4.7.0/lib/../lib64/libquadmath.so.0 (0x00002aaaadf7d000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00002aaaae1c9000)
libstdc++.so.6 => /cm/shared/apps/gcc/4.7.0/lib/../lib64/libstdc++.so.6 (0x00002aaaae3f2000)
libm.so.6 => /lib64/libm.so.6 (0x00002aaaae6f9000)
libc.so.6 => /lib64/libc.so.6 (0x00002aaaae97d000)
libgcc_s.so.1 => /cm/shared/apps/gcc/4.7.0/lib/../lib64/libgcc_s.so.1 (0x00002aaaaed11000)
/lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
which looks OK (nothing missing).

I really am at a loss now. What is going on, how to resolve it and where did I go wrong with the installation process?
Or should one (still) resort to 32 bits compilation...?

Kind regards,

George Schramkowski
GS
George Schramkowski, modified 7 Years ago.

RE: Problems running 5.00.10.1983 (64 bits)

Youngling Posts: 7 Join Date: 4/12/11 Recent Posts
Just an addition: I compiled everything with 32 bits and I still have similar problems.

One thing that does seem to work, though, is a serial run (haven't checked 64 bits version for that).

Kind regards,

George Schramkowski
Adri Mourits, modified 7 Years ago.

RE: Problems running 5.00.10.1983 (64 bits)

Yoda Posts: 1221 Join Date: 1/3/11 Recent Posts
Hi George,

Stick to 64bit; some users have problems with 32bit.

Use --prefix=`pwd` in step (2) and "make ds-install" as step (3)/(4). This will produce a directory "bin/lnx" with the structure as expected by the example scripts, including deltares_hydro.exe.
See README. You can then "cp bin/lnx /opt/delft3d/delft3D-5.00.10.1983_gfortran" manually.

This will solve the d_hydro errors, but won't solve the "unresolved mpi_initialized_":

Most commonly, Delft3D is compiled/linked without mpi, although you think it does. The best way to check is to have a look in "src/logs/make.log" and search for mpich. When linking (in directory "src/engines_gpl/flow2d3d/packages/flow2d3d/src") some phrase like "-L/opt/mpich2-1.0.8-intel64-PIC/lib -lfmpich -lmpich" should appear.
If it does not appear, you may have to specify explicitly where mpich is installed. See build.sh (search for mpich) for an example how to do this.

Please double check that the compiler used for Delft3D is the same as used for mpich. Especially when there are different "tastes" of mpich available on your system, this may cause problems. Also be sure that mpich itself is compiled with the -fPIC flag.

One final remark: The parallel run script contains the line:
export PATH="/opt/mpich2/bin:${PATH}"
You have to adapt this for your system.

Regards,

Adri