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

Compiling Ubuntu 11.10 32-bit

WG
Wim Glas, modified 9 Years ago.

Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
Hello,
I am running an UBUNTU 11.10 32 bit VMWARE appliance .
I installed all software needed (autoconf, libtool, flex, mpich2, gfortran, libexpat1.dev ) but ./build.sh still gives an error as shown below. I tried several trunks amongst others (earlier) this:

svn checkout https://svn.oss.deltares.nl/repos/delft3d/tags/4.00.07.0892 delft3d_repository

Can anyone see what might be the problem?

Last part of logs/make.log with the errors. Before this point the log has no errors.
====================================================================================
..
Generating version number in the ./inifiles_version.F90
Done, new version number is: 1191
make install-am
make[6]: Entering directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles/packages/inifiles/src'
gfortran -DHAVE_CONFIG_H -I. -I../../../../.. -I../../../../../utils_lgpl/precision/packages/precision/src -O2 -O2 -fopenmp -ffree-line-length-none -c -o inifiles_version.o inifiles_version.F90
gfortran -I../../../../../utils_lgpl/precision/packages/precision/src -O2 -O2 -fopenmp -ffree-line-length-none -c -o tree_struct.o tree_struct.f90
tree_struct.f90:473.38:

call tree_traverse_bottomup(tree, dealloc_tree_data, node_value, dummylog)
1
Error: Interface mismatch in dummy procedure 'handler' at (1): INTENT mismatch in argument 'data'
make[6]: *** [tree_struct.o] Error 1
make[6]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles/packages/inifiles/src'
make[5]: *** [install] Error 2
make[5]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles/packages/inifiles/src'
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles/packages/inifiles'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles/packages'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl/inifiles'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/utils_lgpl'
make: *** [install-recursive] Error 1
user@ubuntu:~/Documents/checkout/delft3d_repository/src$
Fedor Baart, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Padawan Posts: 44 Join Date: 3/2/11 Recent Posts
Hi Wim Glas,

I made a few changes to the code, since that version. These changes were required to get delft3d compiled with gfortran. The changes are in the trunk. I posted a diff for the file you are having problems with below.

So that tagged version you were using is not compatible with gfortran yet.
The trunk should work though. Did you also have problems with the trunk?

Cheers,

Fedor


@@ -85,6 +85,8 @@
               tree_get_datatype, tree_get_data_string,         &
               tree_traverse, tree_traverse_level, print_tree, &
               tree_fold, tree_destroy
+   ! nested function has to be public for gfortran
+   public ::  dealloc_tree_data

contains

@@ -365,9 +367,9 @@
     interface
        subroutine handler( node, data, stop )
           use TREE_DATA_TYPES
-          type(TREE_DATA), pointer        :: node
-          character(len=1), dimension(:)  :: data
-          logical, intent(inout)          :: stop
+          type(TREE_DATA), pointer                    :: node
+          character(len=1), dimension(:), intent(in)  :: data
+          logical, intent(inout)                      :: stop
        end subroutine handler
     end interface

@@ -426,9 +428,9 @@
     interface
        subroutine handler( node, data, stop )
           use TREE_DATA_TYPES
-          type(TREE_DATA), pointer        :: node
-          character(len=1), dimension(:)  :: data
-          logical, intent(inout)          :: stop
+          type(TREE_DATA), pointer                    :: node
+          character(len=1), dimension(:), intent(in)  :: data
+          logical, intent(inout)                      :: stop
        end subroutine handler
     end interface

@@ -465,14 +467,14 @@
end subroutine tree_traverse_bottomup


-!> Destroys a tree freeing up all its memory.
+!> Destroys a tree freeing up all its memory. (don't use a nested subroutine)
subroutine tree_destroy(tree)
     type(TREE_DATA), pointer                   :: tree    !< Tree that should be destroyed.
     logical :: dummylog

     call tree_traverse_bottomup(tree, dealloc_tree_data, node_value, dummylog)
     nullify(tree)
-contains
+end subroutine tree_destroy

!> Deallocates all node data for a tree root.
!! Assumes that all child nodes's data is already deallocated.
@@ -498,7 +500,6 @@
    end if
end subroutine dealloc_tree_data

-end subroutine tree_destroy


!> 'Fold' a tree together, using operations on child data, in a bottomup fashion.
@@ -627,7 +628,7 @@

subroutine print_tree( tree, data, stop )
    type(TREE_DATA), pointer               :: tree
-   character(len=1), dimension(:)         :: data
+   character(len=1), dimension(:), intent(in) :: data
    logical, intent(inout)                 :: stop

    character(len=1), dimension(:),pointer :: data_ptr
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
OK, this now worked. I found out how to download the TRUNK and we did: "./configure","make" and "make install" . Evrything installed aparantly in /usr/local/bin and /usr/local/lib

How can we now run the examples.

The examples in ~/Documents/checkout/delft3d_repository/examples point to

export ARCH=intel
export D3D_HOME=../../bin
libdir=$D3D_HOME/$ARCH/lib
exedir=$D3D_HOME/$ARCH/flow/bin


Where should I have ARCH and D3D_HOME pointing to?

Regards,

Wim
Adri Mourits, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit (Answer)

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

After "make ds-install", all binaries are installed in a directory called "bin", next to the directories "src" and "examples". You don't need to change the run scripts in "examples". See also "http://oss.deltares.nl/web/opendelft3d/source-code#Run a calculation".

Some background information:
ARCH must bie intel. Just leave it.
D3D_HOME should point to the root directory of the Delft3D installation.
exedir is only used locally in the runscript and points to the directory containing the executable.
libdir is only used locally in the runscript and points to the directory possibly containing libraries needed by the executable. Currently it's empty. As a result you can only run Delft3D on the machine it is compiled on and "identical" machines. If you want to run Delft3D on another machine, you can use this directory to add compiler specific dynamic libraries.

Regards,

Adri
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
Hallo Adri,
ok, now did: make ds-install


and now everything is indeed in the right folders.

BUT make ds-install ends with:

Target directory: ../bin
Source : all engines
installing all open source projects . . .
installing d_hydro . . .
cp: cannot stat `bin/d_hydro.exe': No such file or directory
can't copy "bin/d_hydro.exe" to "../bin/intel/flow/bin"
installing flow2d3d . . .
cp: cannot stat `lib/libflow2d3d.so': No such file or directory
cp: cannot stat `lib/libflow2d3d_sp.so': No such file or directory
cp: cannot stat `bin/esm_create': No such file or directory
can't copy "bin/esm_create" to "../bin/intel/flow/bin"
cp: cannot stat `bin/esm_delete': No such file or directory
can't copy "bin/esm_delete" to "../bin/intel/flow/bin"
cp: cannot stat `bin/esm_info': No such file or directory
can't copy "bin/esm_info" to "../bin/intel/flow/bin"
installing flow2d3d_openda . . .
cp: cannot stat `lib/libflow2d3d_openda.so': No such file or directory
cp: cannot stat `lib/libflow2d3d_openda_sp.so': No such file or directory
cp: cannot stat `bin/esm_create': No such file or directory
can't copy "bin/esm_create" to "../bin/intel/flow/bin"
cp: cannot stat `bin/esm_delete': No such file or directory
can't copy "bin/esm_delete" to "../bin/intel/flow/bin"
cp: cannot stat `bin/esm_info': No such file or directory
can't copy "bin/esm_info" to "../bin/intel/flow/bin"
installing wave . . .
cp: cannot stat `bin/wave.exe': No such file or directory
can't copy "bin/wave.exe" to "../bin/intel/wave/bin"
installing plugin_culvert . . .
cp: cannot stat `lib/libplugin_culvert.so': No such file or directory
can't copy "lib/libplugin_culvert.so" to "../bin/intel/flow/bin/plugin_culvert.so"
installing plugin_delftflow_traform . . .
cp: cannot stat `lib/libplugin_delftflow_traform.so': No such file or directory
can't copy "lib/libplugin_delftflow_traform.so" to "../bin/intel/flow/bin/plugin_delftflow_traform.so"
installing datsel . . .
cp: cannot stat `bin/datsel': No such file or directory
can't copy "bin/datsel" to "../bin/intel/flow/bin"
installing kubint . . .
cp: cannot stat `bin/kubint': No such file or directory
can't copy "bin/kubint" to "../bin/intel/flow/bin"
installing lint . . .
cp: cannot stat `bin/lint': No such file or directory
can't copy "bin/lint" to "../bin/intel/flow/bin"
installing mormerge . . .
cp: cannot stat `bin/mormerge.exe': No such file or directory
can't copy "bin/mormerge.exe" to "../bin/intel/flow/bin"
installing vs . . .
cp: cannot stat `bin/vs': No such file or directory
can't copy "bin/vs" to "../bin/intel/util"
============================================================================

/run_flow2d3d.sh needs d_hydro.exe and cannot find that because of the above errors.

What could be wrong?

Regards, Wim Glas
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
Hi, I all the above was generated by compiled using autogen.sh since that was shown on the webinar. I now read the README and first tried ./build.sh -intel11.1 as is shown there. This gave errors in end of make.log.

Them I compiled with: ./build.sh -gnu

This gives following errors in end of make.log


=======================
...

Making install in parallel_mpi
make[6]: Entering directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d/packages/data/src/parallel_mpi'
/bin/bash ../../../../../../libtool --tag=FC --mode=compile /opt/mpich2-1.4.1-gcc-4.6.2/bin/mpif90 -DHAVE_CONFIG_H -I. -I../../../../../.. -I/opt/mpich2-1.4.1-gcc-4.6.2/include -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/utils_flow/packages/utils_flow/src -DDFMPI -O2 -fPIC -fopenmp -ffree-line-length-none -cpp -c -o dfparall.lo dfparall.F90
libtool: compile: /opt/mpich2-1.4.1-gcc-4.6.2/bin/mpif90 -DHAVE_CONFIG_H -I. -I../../../../../.. -I/opt/mpich2-1.4.1-gcc-4.6.2/include -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/utils_flow/packages/utils_flow/src -DDFMPI -O2 -fPIC -fopenmp -ffree-line-length-none -cpp -c dfparall.F90 -fPIC -o .libs/dfparall.o
../../../../../../libtool: line 1130: /opt/mpich2-1.4.1-gcc-4.6.2/bin/mpif90: No such file or directory
make[6]: *** [dfparall.lo] Error 1
make[6]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d/packages/data/src/parallel_mpi'
make[5]: *** [install-recursive] Error 1
make[5]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d/packages/data/src'
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d/packages/data'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d/packages'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl/flow2d3d'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/user/Documents/checkout/delft3d_repository/src/engines_gpl'
make: *** [install-recursive] Error 1
user@ubuntu:~/Documents/checkout/delft3d_repository/src/logs$
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
I now manually installed MPICH2 because that is where the error is about.


I Downloaded MPICH2 source code from http://www-unix.mcs.anl.gov/mpi/mpich .
Extract .tar.bz2 file in /mirror. Also make a folder for MPICH installation.
mpiu@ub3:/mirror$ mkdir mpich2
mpiu@ub3:/mirror$ tar xvf mpich2-1.4.1p1.tar.gz
mpiu@ub3:/mirror$ cd mpich2-1.4.1p1
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ ./configure ---prefix=/mirror/mpich2
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ make
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ sudo make install

Deltares verwacht mpich in folder /opt/mpich2-1.4.1-gcc-4.6.2, dus:
cd /opt
sudo ln -s /mirror/mpich2 ./mpich2-1.4.1-gcc-4.6.2



Nu gaat compilere goed. Geen errors in make.log.

Aleen nu geeft hij bij run van examples: ERROR: Both MDF-file and DDB-file undefined

Enig idee?
Fedor Baart, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Padawan Posts: 44 Join Date: 3/2/11 Recent Posts
Hi Wim,

Wim Glas:
I now manually installed MPICH2 because that is where the error is about.


I Downloaded MPICH2 source code from http://www-unix.mcs.anl.gov/mpi/mpich .
Extract .tar.bz2 file in /mirror. Also make a folder for MPICH installation.
mpiu@ub3:/mirror$ mkdir mpich2
mpiu@ub3:/mirror$ tar xvf mpich2-1.4.1p1.tar.gz
mpiu@ub3:/mirror$ cd mpich2-1.4.1p1
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ ./configure ---prefix=/mirror/mpich2
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ make
mpiu@ub3:/mirror/ mpich2-1.4.1p1$ sudo make install

Deltares expects mpich in folder /opt/mpich2-1.4.1-gcc-4.6.2, dus:
cd /opt
sudo ln -s /mirror/mpich2 ./mpich2-1.4.1-gcc-4.6.2


Instead of linking the mpich2 folder you can also change the /opt/mpich2 reference in build.sh. In the autogen.sh, no assumption is made about the whereabouts of the mpif90, only about who it's called.

Wim Glas:

I now get errors while running the example: ERROR: Both MDF-file and DDB-file undefined
Any suggestions?
user@ubuntu:~/Documents/checkout/delft3d_repository/examples/01_standard$ sudo ./run_flow2d3d.sh
Executing "/home/user/Documents/checkout/delft3d_repository/bin/intel/flow/bin/d_hydro.exe TMP_config_flow2d3d_29933.xml" ...
ERROR: Both MDF-file and DDB-file undefined


I'm not sure what is causing this. You should not use sudo (which runs the script under the root user) for running delft3d. That is only required for installing. More specifically it is needed if you install to a directory that only root can write to.
I'll ask Adri if he can follow up on the undefined DDB file.

Cheers,

Fedor
Adri Mourits, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

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

Example "01_standard" contains the file "config_flow2d3d.ini", containing the line:
MdfFile = f34
If this line is missing, or wrong or corrupt, you get your error message. Is your "config_flow2d3d.ini" identical to the one in the SVN-repository?

If this does not help: what revision of the trunk are you using?

Regards,

Adri
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
Hi Adri,
the config file contains the line and is also identical to the svn.

We downloaded the trunk without seeing anything about version numbers. Where can I find this version number?

Regards, Wim
WG
Wim Glas, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 7 Join Date: 1/19/12 Recent Posts
Downloaded TRUNK again and now example-run works. Aparantly TRUNK of last week was not OK.

Regards, Wim
Adri Mourits, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

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

Execute "svn info" in the top directory of the checked out source code:

[mourits@devux64 oss]$ svn info
Path: .
URL: https://svn.oss.deltares.nl/repos/delft3d/trunk
Revision: [b]1189[/b]


Regards,

Adri
GG
Gabriel Gallegos Diez Barroso, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

Youngling Posts: 3 Join Date: 1/19/12 Recent Posts
Hello

I'm trying to compile deflt3d the .06.0834 tag version under ubuntu 11.1 32 bits with an intel version. The problem is that I cant make the src/tools_gpl/datsel/packages/datsel$ file. The error I got is

usr/bin/ld: cannot find -lifcore
/usr/bin/ld: cannot find -limf
collect2: ld returned 1 exit status
make[1]: *** [datsel] Error 1
make[1]: Leaving directory `/home/gabriel/delft3dp/src/tools_gpl/datsel/packages/datsel/src'
make: *** [all-recursive] Error 1

I attach my make.log file. Hope you can help me.

Thanks
Gabriel
Adri Mourits, modified 9 Years ago.

RE: Compiling Ubuntu 11.10 32-bit

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

Try using tagged version 5.00.00.1234.
With this version, you have two options to compile it:
  • ./autogen.sh
    ./configure --prefix=`pwd`
    make ds-install
  • ./build.sh -intel11 -64bit

The first option is the "cleanest" one. Try that first. The second option gives you full control on all build flags. Try that when the first option didn't work.

The good news is that you probably don't need the tool "datsel". If you compile your current version, skipping datsel (and kubint and lint), you should be able to run the example testcases.

Regards,

Adri