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

mpi.mod error during make on Scientific Linux

U
James Morrison, modified 8 Years ago.

mpi.mod error during make on Scientific Linux

Hi I am attempting to compile delft3d on Scientific Linux 5.4 ( Kernel 2.6.18-176.11.1..el5 ), I compiled the latest gcc ( 4.7.2 ), and don't get any errors during autogen.sh ( aside from autoreconf failed ) or configure, I have installed openmpi-1.6.2.

I get the following error when running make

libtool: compile: mpif90 -DHAVE_CONFIG_H -I. -I. -I../../../../../.. -I -I../../../../../../utils_lgpl/parallel_mpi/include -I../../../../../../utils_lgpl/precision/include -I../../../../../../engines_gpl/flow2d3d/packages/data/include -I../../../../../../utils_lgpl/precision/packages/precision/src -I../../../../../../engines_gpl/flow2d3d/packages/data/src/parallel_mpi -I../../../../../../engines_gpl/flow2d3d/packages/data/src/basics -I../../../../../../utils_lgpl/ec_module/packages/ec_module/src -I../../../../../../utils_lgpl/inifiles/packages/inifiles/src -I../../../../../../utils_lgpl/deltares_common/packages/deltares_common/src -DWITH_DELFTONLINE -DDFMPI -g -O2 -fopenmp -ffree-line-length-none -cpp -c dfinitmpi.F90 -fPIC -o .libs/dfinitmpi.o
dfinitmpi.F90:46.8:

use mpi
1
Fatal Error: Parse error when checking module version for file 'mpi.mod' opened at (1)
make[7]: *** [dfinitmpi.lo] Error 1

Any suggestions what may be wrong?

Thanks
Adri Mourits, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux (Answer)

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

Have a look at build.sh, line 230 and following, about mpich2:
You have to add the directory with mpi binaries to your environment parameter "PATH".
You have to define at least environment parameter "MPI_INCLUDE", pointing to the directory containing (among others) file "mpi.mod".

Using OpenMPI instead of MPICH2 might work. But you do need to change some code. At least in file "https://svn.oss.deltares.nl/repos/delft3d/trunk/src/engines_gpl/flow2d3d/packages/data/src/parallel_mpi/dfinitmpi.F90", line 74:
call get_environment_variable('PMI_RANK', rankstr, len)
The keyword PMI_RANK is MPICH2 specific. You have to change that into the OpenMPI specific keyword.

Regards,

Adri
U
James Morrison, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

Thanks, I compiled mpich2-1.4.1pi with --enable-shared --enable-sharedlibs=gcc and changed the references in build.sh to the directories where mpich2 installed.

I setup an Ubuntu 12.04 virtual machine to test the install on and delft seems to have installed successully. But on the machine with Scientific Linux I'm having an issue with the build of mpich2 not creating an mpi.mod in the include directory, mpi.h is created though and mpif77 is as well. The following is my configure command for mpich2

~/mpich2-1.4.1p1/configure -prefix=/opt/mpich2-1.4.1p1/ --enable-shared --enable-sharedlibs=gcc --enable-fc --enable-mpi-f90 --enable-f90modules FCFLAGS="gfortran -m64"

Do you have any advice on this?

Cheers
U
James Morrison, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

I had a reference to older version ( 4.3 ) gcc libraries in /lib64/ after going through config.log, I noticed a reference to `GCC_4.3.0' not found, deleting these libraries allowed mpich2 to successfully build and created the mpi.mod file.

But I find I'm getting the error below, I compiled mpich with the following command

./configure --prefix=/opt/mpich2-1.4.1p1/ --enable-shared --enable-sharedlibs=gcc --enable-mpi-f90 --enable-fc FCFLAGS="-m64" 2>&1 | tee c.txt > output3.log

and I have run a make ds-clean and then ./build.sh -gnu -64bit

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I../../../../../engines_gpl/d_hydro/include -I../../../../../engines_gpl/flow2d3d/packages/flow2d3d/include -I../../../../../utils_lgpl/d_hydro_lib/include -I../../../../../utils_lgpl/delftonline/include -I../../../../../utils_lgpl/esmfsm/include -I../../../../../utils_lgpl/precision/include -I../../../../../utils_lgpl/stream/include -I../include -D_GNU_SOURCE -DSTR_LEN_AT_END -DWITH_DELFTONLINE -pthread -O2 -fPIC -m64 -MT flow2d3d_version.lo -MD -MP -MF .deps/flow2d3d_version.Tpo -c flow2d3d_version.cpp -o flow2d3d_version.o >/dev/null 2>&1
/bin/sh ../../../../../libtool --tag=CXX --mode=link g++ -D_GNU_SOURCE -DSTR_LEN_AT_END -DWITH_DELFTONLINE -pthread -O2 -fPIC -m64 -o libflow2d3d.la -rpath /root/delft/src/lib flow2d3d.lo flowol.lo flow2d3d_version.lo ../../../../../engines_gpl/flow2d3d/packages/flow2d3d/src/dd/*.lo ../../../../../engines_gpl/flow2d3d/packages/flow2d3d/src/dd/iterators/*.lo ../../../../../engines_gpl/flow2d3d/packages/flow2d3d/src/dd/mapper/*.lo ../../../../../engines_gpl/flow2d3d/packages/manager/src/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/main/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/non_hydro/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/taylor/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/timedep/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/compute/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/compute_nearfar/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/compute_roller/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/compute_sediment/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel_dd_f/src/*.lo ../../../../../engines_gpl/flow2d3d/packages/io/src/preprocessor/*.lo ../../../../../engines_gpl/flow2d3d/packages/io/src/output/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/inichk/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/dd/*.lo ../../../../../engines_gpl/flow2d3d/packages/io/src/input/*.lo ../../../../../engines_gpl/flow2d3d/packages/kernel/src/general/*.lo ../../../../../engines_gpl/flow2d3d/packages/io_dol_f/src/*.lo ../../../../../engines_gpl/flow2d3d/packages/plugin_user/src/*.lo ../../../../../engines_gpl/flow2d3d/packages/plugin_3dmortrafrm_c/src/*.lo ../../../../../engines_gpl/flow2d3d/packages/data/src/allocation/*.lo ../../../../../engines_gpl/flow2d3d/packages/data/src/general/*.lo ../../../../../engines_gpl/flow2d3d/packages/data/src/gdp/*.lo ../../../../../engines_gpl/flow2d3d/packages/data/src/parallel_mpi/*.lo ../../../../../engines_gpl/flow2d3d/packages/data/src/basics/*.lo ../../../../../lib/libmeteo.a ../../../../../lib/libec_module.a ../../../../../lib/libdelftio_sync.a ../../../../../lib/libdelftio.a ../../../../../lib/libdelftio_shm.a ../../../../../lib/libD_hydro.a ../../../../../lib/libfsm.a ../../../../../lib/libfsm_c.a ../../../../../lib/libesm_c.a ../../../../../lib/libinifiles.a ../../../../../lib/libnefis.a ../../../../../lib/libmathconsts.a ../../../../../lib/libprecision.a ../../../../../lib/libsemaphore.a ../../../../../lib/libstream.a ../../../../../lib/libdeltares_common.a ../../../../../lib/libdeltares_common_c.a ../../../../../lib/libdelftio_sync_version_number.a ../../../../../lib/libdelftio_version_number.a ../../../../../lib/libesmfsm_version_number.a ../../../../../lib/libmeteo_version_number.a ../../../../../lib/libnefis_version_number.a ../../../../../lib/libstream_version_number.a -L/opt/mpich2-1.4.1p1/lib -lfmpich -lmpich -lmpl -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.2 -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../.. -lgfortran -lm -lgcc_s -lquadmath -lexpat -lstdc++
libtool: link: `/opt/mpich2-1.4.1p1/lib/libfmpich.la' is not a valid libtool archive
make[7]: *** [libflow2d3d.la] Error 1

Any suggestions?
Adri Mourits, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

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

"libfmpich.la" is not used when linking on our system. It is not even present in the mpich2/lib directory. But "libfmpich.a" is. The first thing you can try is removing (or renaming) "libfmpich.la". I expect that when this library is not present, "libfmpich.a" will automatically be used instead.

For completeness: attached is the config.log from mpich2 build on our system.

Regards,

Adri
U
James Morrison, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

I deleted the file libfmpich.la and other older files they had been created from a previous build with a different gcc I suspect, and when I rebuilt it compiled successfully.

I am having an issue when I attempt to run the gui client and I click on GRID and then RGFGRID I get a DLL error DLL name =/opt/delft3d/intel/plugins/bin/librgfgrid.so ( the file is present in that directory )

Any ideas?

I'm assuming the client has been built with the Intel Compiler would there be any issues with it communicating with a gfortran built delft3d?

Cheers
Adri Mourits, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux (Answer)

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

Probably a dll needed by librgfgrid.so can not be found. Did you execute the profile script before starting the menu? You should execute something like:
. /opt/etc/profile.d/delft3d.sh
before starting the GUI.

If this does not help:
  • Run the profile script
  • Go to directory "/opt/delft3d/intel/plugins/bin" and execute
    ldd ./librgfgrid.so
    The output shows how dependencies on dlls are resolved. This may help you to find out what dll is missing.


If this also does not help:
  • Run the profile script
  • Go to directory "/opt/delft3d/intel/plugins/bin" and execute
    ./mfe_app ./librgfgrid.so rgfgrid
    This is exactly the command that will be executed when clicking the RGFGRID button in the GUI. May be this will give you information about what goes wrong.


I don't expect problems related to the GUI and the kernel being build with different compilers. The GUI and the kernels are strictly separated and interact via ASCII files.

Regards,

Adri
U
James Morrison, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

Hi Adri, thanks for your response.

I ran the delft3d.sh before starting the UI but I still get the same error message.

I ran the ldd ./librgfgrid.so command and the output is below

linux-gate.so.1 => (0xffffe000)
libXft.so.2 => /usr/lib/libXft.so.2 (0x55e7c000)
libltdl.so.3 => /opt/delft3d/intel/lib/libltdl.so.3 (0x55e8f000)
libglut.so.3 => /opt/delft3d/intel/lib/libglut.so.3 (0x55e96000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x55ebf000)
libqt-mt.so.3 => /opt/delft3d/intel/lib/libqt-mt.so.3 (0x55f2c000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x56628000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x56638000)
libm.so.6 => /lib/libm.so.6 (0x5673b000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x56764000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x5676d000)
libdl.so.2 => /lib/libdl.so.2 (0x56788000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x5678d000)
libifport.so.5 => /opt/delft3d/intel/lib/libifport.so.5 (0x567af000)
libifcore.so.5 => /opt/delft3d/intel/lib/libifcore.so.5 (0x567cf000)
libimf.so => /opt/delft3d/intel/lib/libimf.so (0x568b6000)
libsvml.so => /opt/delft3d/intel/lib/libsvml.so (0x56ad6000)
libintlc.so.5 => /opt/delft3d/intel/lib/libintlc.so.5 (0x56baa000)
libc.so.6 => /lib/libc.so.6 (0x56bed000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x56d48000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x56d54000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x56d84000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x56e04000)
libGLU.so.1 => not found
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x56e0d000)
libpthread.so.0 => /lib/libpthread.so.0 (0x56e12000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0x56e2c000)
libmng.so.1 => /opt/delft3d/intel/lib/libmng.so.1 (0x56e35000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x56e90000)
libz.so.1 => /lib/libz.so.1 (0x56eb6000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x56ec9000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x56ecd000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x56ed7000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x56edb000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x56fca000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x56fcd000)
/lib/ld-linux.so.2 (0x55555000)
libexpat.so.0 => /opt/delft3d/intel/lib/libexpat.so.0 (0x56fd3000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x56ff3000)

When I run the ./mfe_app ./librgfgrid.so rgfgrid

I get a popup titled 'Frontend loads a DLL' with the text

' Could not load a DLL,
DLL name = ./librgfgrid.so
Please check the plugins directory and
the path environment variable'

The terminal displays 'libGLU.so.1: cannot open shared object file: No such file or directory'

Any suggestions?
U
James Morrison, modified 8 Years ago.

RE: mpi.mod error during make on Scientific Linux

It was an issue related to libGLU, I ran 'yum install mesa-libGLU' and the RGFGRID gui now appears.

Thanks