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

symbol lookup error, libflow2d3d.so, MPI_Init

Giordano Lipari, modified 5 Years ago.

symbol lookup error, libflow2d3d.so, MPI_Init

Youngling Posts: 12 Join Date: 3/23/11 Recent Posts
Ingredients
OS Ubuntu 12.04 LTS (64bit)
Delft3D tag 4440 (revision 4590)
Everything compiled with GNU tools

Issues
Following the sequence
  • sudo ./autogen.sh
  • sudo MPIFC=mpif90 ./configure
  • sudo make
  • sudo make install
  • update PATH and LD_LIBRARY_PATH

as per Fedor Baart's webinar. I do manage to build the executable. At time of running the first example, I invariably get the error:

d_hydro.exe: symbol lookup error: $D3D_SOURCE/lib/libflow2d3d.so: undefined symbol: MPI_Init

Prior to this, I had already edited the build.sh file for the parts that concern the initialisation of the fortran compiler into
  • addpath PATH /usr/bin
  • addpath LD_LIBRARY_PATH /usr/lib/gcc/x86_64-linux-gnu/4.6.3/ /usr/lib/gcc/x86_64-linux-gnu/4.6.3/

and the mpich2 library settings into
  • addpath PATH /opt/mpich2/mpich2-1.5/bin
  • export MPI_INCLUDE=/opt/mpich2/mpich2-1.5/include
  • export MPILIBS_ADDITIONAL="-L/opt/mpich2/mpich2-1.5/lib -lfmpich -lmpich -lmpl"
  • # export MPILIBS_ADDITIONAL=" "
  • export MPIFC=/opt/mpich2/mpich2-1.5/bin/mpif90

because that's where gcc and mpich2 are in my machine.

I alternatively followed the sequence named 'option A' as from $D3D_DIR/src/README.txt
  • ./autogen.sh
  • CFLAGS='-O2' CXXFLAGS='-O2' FFLAGS='-O2' FCFLAGS='-O2' ./configure --prefix=`pwd`
  • make ds-install

I do obtain the same error.

The output (stdout, stderr) of the configure and ds-install operations are attached for inspection.

Questions
Thus, I bump in the same limitation irrespective of the compilation strategy.
  • Is this a compilation error or a run-time error?
  • Do you spot bugs or mistakes in my instruction?
  • Ideas on its cause and solutions?
  • Is the build_h5.sh file in the source directory involved in all of this? (Why is that file there next to build.sh?)
Giordano Lipari, modified 5 Years ago.

RE: symbol lookup error, libflow2d3d.so, MPI_Init (Answer)

Youngling Posts: 12 Join Date: 3/23/11 Recent Posts
In the meantime I did manage to successfully install Delft3D with a bit of hacking and some deviation from the standard instructions.

The post above mixes different possibilities with each other. Life so short, craft so long, hence I will only mention that Option B of the file README.txt resulted in a successful installation. However I needed to use MPICH (version >2) instead of MPCHI2 to fix the error relocation R_X86_64_32 against `MPIR_ThreadInfo' can not be used when making a shared object; recompile with -fPIC (click to go to the post).

I will be notified of further posts to this thread. If you want to have more detailed information on my installation procedure, feel free to reopen the conversation.
Adri Mourits, modified 5 Years ago.

RE: symbol lookup error, libflow2d3d.so, MPI_Init (Answer)

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

1. Is this a compilation error or a run-time error?
A compilation error. MPI is not properly used during the compilation of Delft3D-FLOW.

2. Do you spot bugs or mistakes in my instruction?
No.

3. Ideas on its cause and solutions?
Recompile the mpich2 library, using exactly the same compilers as used for Delft3D and also with the -fPIC flag. Have a look at this FAQ item.

4. Is the build_h5.sh file in the source directory involved in all of this? (Why is that file there next to build.sh?)
No. Deltares is switching to a newer Linux system called h5, needing an updated version of build.sh. Both files are here for our tracability and your examples.

Regards,

Adri