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

 


Back

Delft3D under Snow leopard

Christos Mitsis, modified 7 Years ago.

Delft3D under Snow leopard

Youngling Posts: 4 Join Date: 9/24/11 Recent Posts
Hi,

trying to compile Delft3D code on mac OS Snow Leopard I get stuck just after configuring DelftOnline, and executing command make with the following error unable to decipher. Java version 1.6.0_26 is present in the system.

/bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I. -I../../jlsrc/include -g -O2 -MT JavaLaunch.lo -MD -MP -MF .deps/JavaLaunch.Tpo -c -o JavaLaunch.lo JavaLaunch.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I. -I../../jlsrc/include -g -O2 -MT JavaLaunch.lo -MD -MP -MF .deps/JavaLaunch.Tpo -c JavaLaunch.cpp -fno-common -DPIC -o .libs/JavaLaunch.o
In file included from JavaLaunch.cpp:21:
../../jlsrc/include/JavaLaunch.h:21:17: error: jni.h: No such file or directory
In file included from JavaLaunch.cpp:21:
../../jlsrc/include/JavaLaunch.h:35: error: ISO C++ forbids declaration of 'JavaVM' with no type
../../jlsrc/include/JavaLaunch.h:35: error: expected ';' before '*' token
../../jlsrc/include/JavaLaunch.h:36: error: ISO C++ forbids declaration of 'JNIEnv' with no type
../../jlsrc/include/JavaLaunch.h:36: error: expected ';' before '*' token
../../jlsrc/include/JavaLaunch.h:37: error: ISO C++ forbids declaration of 'JNIEnv' with no type
../../jlsrc/include/JavaLaunch.h:37: error: expected ';' before '*' token
../../jlsrc/include/JavaLaunch.h:38: error: ISO C++ forbids declaration of 'JNIEnv' with no type
../../jlsrc/include/JavaLaunch.h:38: error: expected ';' before '*' token
../../jlsrc/include/JavaLaunch.h:51: error: ISO C++ forbids declaration of 'JavaVM' with no type
../../jlsrc/include/JavaLaunch.h:51: error: expected ';' before '*' token
../../jlsrc/include/JavaLaunch.h:52: error: ISO C++ forbids declaration of 'JNIEnv' with no type
../../jlsrc/include/JavaLaunch.h:52: error: expected ';' before '*' token
JavaLaunch.cpp:33: error: ISO C++ forbids declaration of 'jint' with no type
JavaLaunch.cpp:33: error: typedef 'jint' is initialized (use __typeof__ instead)
JavaLaunch.cpp:33: error: 'JNICALL' was not declared in this scope
JavaLaunch.cpp:33: error: 'CreateJavaVM_t' was not declared in this scope
JavaLaunch.cpp: In constructor 'JavaLaunch::JavaLaunch(const char*, const char*, const char*)':
JavaLaunch.cpp:51: error: 'JavaVMOption' was not declared in this scope
JavaLaunch.cpp:51: error: expected `;' before 'jvm_options'
JavaLaunch.cpp:58: warning: deprecated conversion from string constant to 'char*'
JavaLaunch.cpp:64: error: 'jvm_options' was not declared in this scope
JavaLaunch.cpp:88: error: 'JavaVMInitArgs' was not declared in this scope
JavaLaunch.cpp:88: error: expected `;' before 'jvm_args'
JavaLaunch.cpp:89: error: 'jvm_args' was not declared in this scope
JavaLaunch.cpp:90: error: 'JNI_VERSION_1_4' was not declared in this scope
JavaLaunch.cpp:93: error: 'JNI_FALSE' was not declared in this scope
JavaLaunch.cpp:101: warning: deprecated conversion from string constant to 'char*'
JavaLaunch.cpp:105: warning: deprecated conversion from string constant to 'char*'
JavaLaunch.cpp:126: error: 'CreateJavaVM_t' was not declared in this scope
JavaLaunch.cpp:126: error: expected `;' before 'CreateJavaVM'
JavaLaunch.cpp:127: error: 'CreateJavaVM' was not declared in this scope
JavaLaunch.cpp:143: error: 'class JavaLaunch' has no member named 'jvm'
JavaLaunch.cpp:143: error: 'class JavaLaunch' has no member named 'env'
JavaLaunch.cpp:143: error: 'CreateJavaVM' was not declared in this scope
JavaLaunch.cpp:143: error: 'JNI_OK' was not declared in this scope
JavaLaunch.cpp:150: error: 'class JavaLaunch' has no member named 'env'
JavaLaunch.cpp: In destructor 'virtual JavaLaunch::~JavaLaunch()':
JavaLaunch.cpp:163: error: 'class JavaLaunch' has no member named 'jvm'
JavaLaunch.cpp:163: error: 'JNI_OK' was not declared in this scope
JavaLaunch.cpp: At global scope:
JavaLaunch.cpp:173: error: expected constructor, destructor, or type conversion before '*' token
JavaLaunch.cpp:182: error: expected constructor, destructor, or type conversion before '*' token
JavaLaunch.cpp:191: error: expected constructor, destructor, or type conversion before '*' token
JavaLaunch.cpp:207: error: expected constructor, destructor, or type conversion before '*' token
JavaLaunch.cpp: In member function 'void JavaLaunch:emoticonetachThread()':
JavaLaunch.cpp:232: error: 'class JavaLaunch' has no member named 'jvm'
JavaLaunch.cpp:232: error: 'JNI_OK' was not declared in this scope
make[3]: *** [JavaLaunch.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


Any comments are welcomed.

Thanks in advance.
Fedor Baart, modified 7 Years ago.

RE: Delft3D under Snow leopard

Padawan Posts: 44 Join Date: 3/2/11 Recent Posts
The relevant error is that the jni.h can't be found. This file is part of java but also included in DelftOnline en with the gcc compiler. The relevant line in the Makefile.am which states where this should be found is this one:
AM_CPPFLAGS = -I. -I$(top_srcdir)/jlsrc/include

On my system it finds it in the directory:
/opt/local/lib/gcc45/gcc/x86_64-apple-darwin10/4.5.3/include

You can list all include directories using:
cpp -v

The correct way is probably to use the jni.h that corresponds to the java version that is used, so for example:
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers/jni.h
or
/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h

I'll have to look up on how to find the jni.h file automatically. But in the mean time you can do something like
CPPFLAGS=-I/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers ./configure


Christos Mitsis:
Hi,

trying to compile Delft3D code on mac OS Snow Leopard I get stuck just after configuring DelftOnline, and executing command make with the following error unable to decipher. Java version 1.6.0_26 is present in the system.


In file included from JavaLaunch.cpp:21:
../../jlsrc/include/JavaLaunch.h:21:17: error: jni.h: No such file or directory

Any comments are welcomed.

Thanks in advance.
Christos Mitsis, modified 7 Years ago.

RE: Delft3D under Snow leopard- update1

Youngling Posts: 4 Join Date: 9/24/11 Recent Posts
My apologies but still have problems.

Following your instructions managed to install DelftOnline, only though with the location option /opt/local/...
Proceeding to building DELFT3D, and after configuring it, executing the command make the following error arises with certain references to locations that are completely absent from my system (see below)

make all-recursive
Making all in third_party_open
Making all in version_number
Making all in packages
Making all in version_number
Making all in src
/bin/sh ../../../../../libtool --tag=FC --mode=link gfortran-mp-4.5 -g -I../../../../../utils_lgpl/precision/packages/precision/src -g -O2 -fopenmp -ffree-line-length-none -cpp -arch_errors_fatal -o version_number.exe version_number.o -lDelftOnline -lJavaLaunch -lexpat -lstdc++
libtool: link: gfortran-mp-4.5 -g -I../../../../../utils_lgpl/precision/packages/precision/src -g -O2 -fopenmp -ffree-line-length-none -cpp -arch_errors_fatal -o version_number.exe version_number.o /usr/local/lib/libDelftOnline.dylib /usr/local/lib/libJavaLaunch.dylib -lcrypto -lexpat /usr/local/lib/libstdc++.dylib -L/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src -L/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src/.libs -lm
ld: warning: directory '/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src' following -L not found
ld: warning: directory '/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src/.libs' following -L not found
ld: in /usr/local/lib/libstdc++.dylib, file was built for i386 which is not the architecture being linked (x86_64)
collect2: ld returned 1 exit status
make[6]: *** [version_number.exe] Error 1
make[5]: *** [all-recursive] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Some references do exist with regard to "ld: in /usr/local/lib/libstdc++.dylib, file was built for i386 which is not the architecture being linked (x86_64)" focused previously on a not clean installation of Snow Leopard over the previous version of Leopard. But still I am aware of a resolution to that apart from completely erasing the /usr/local/lib folder and performing the setup again as a clean install.
I am completely unaware as to how that came up
(ld: warning: directory '/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src' following -L not found
ld: warning: directory '/Users/gkhanna/gcc-4.4-20090623/i386-apple-darwin9.7.0/libstdc++-v3/src/.libs' following -L not found)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Update: Replacing the libstdc++.dylib file at /usr/local/lib with the one found in the /Developer/usr/lib/gcc/i686_apple_darwin10/4.2.1/
resumes the make command up to a new point suggesting a version mismatch in f90 compilation. I attach the message below:

initdfparall.f90:37.18:

use globaldata
1
Fatal Error: Wrong module version '4' (expected '0') for file 'globaldata.mod' opened at (1)
make[7]: *** [initdfparall.lo] Error 1
make[6]: *** [all-recursive] Error 1
make[5]: *** [all-recursive] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I found related suggestions in the following link:

http://www.spinics.net/lists/fedora-packaging/msg07523.html

but I am not sure whether the configuration procedure I followed is wrong or focus just to that error should be made




Thanks again.
update
Christos Mitsis, modified 7 Years ago.

RE: Delft3D under Snow leopard - update1

Youngling Posts: 4 Join Date: 9/24/11 Recent Posts
Update from the previous:

Managed to compile Delft3D as instructed by Fedor when applying the correct flags to the gcc versions on my system.


CXX=g++-mp-4.4 CC=gcc-mp-4.4 FC=gfortran-mp-4.4 F77=gfortran-mp-4.4 FCFLAGS=-L/opt/local/lib CFLAGS=-L/opt/local/lib CXXFLAGS=-L/opt/local/lib DYLD_LIBRARY_PATH=/usr/local/lib ./configure && make && make install (sudo is probably necessary for the make commands)


I now though get stuck with the previous error message of:

ERROR: Cannot find function "RUNME" in dynamic library "libflow2d3d.dylib"

Am I supposed to follow the proposed solution with the FC_function and if yes how do I proceed?

Thanks,

Christos
error runme
Fedor Baart, modified 7 Years ago.

RE: Delft3D under Snow leopard - update1

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

This looks like a fortran name mangling issue. Does this happen at runtime?
The relevant code is in engines_gpl/deltares_hydro/src:

libFunction = 'runme'

#if defined (WIN32)
   call upperCase(libFunction)
#endif
#if defined (HAVE_CONFIG_H)
#if defined (OSX)
   libFunction = trim(libFunction) // '_'
#else
   call upperCase(libFunction)
#endif
#endif


It should look for runme_ for OSX (gfortran to be precise). Can you try to configure it with FCFLAGS="-L/opt/local/lib -DOSX". I think that should solve it.

If you want to check what the fortran name mangling did with "runme", you can do
nm engines_gpl/flow2d3d/packages/flow2d3d/src/runme.o (after compilation)
for me it shows:
0000000000000000 T _runme_

Cheers,

Fedor


Christos Mitsis:
Update from the previous:

Managed to compile Delft3D as instructed by Fedor when applying the correct flags to the gcc versions on my system.


CXX=g++-mp-4.4 CC=gcc-mp-4.4 FC=gfortran-mp-4.4 F77=gfortran-mp-4.4 FCFLAGS=-L/opt/local/lib CFLAGS=-L/opt/local/lib CXXFLAGS=-L/opt/local/lib DYLD_LIBRARY_PATH=/usr/local/lib ./configure && make && make install (sudo is probably necessary for the make commands)


I now though get stuck with the previous error message of:

ERROR: Cannot find function "RUNME" in dynamic library "libflow2d3d.dylib"

Am I supposed to follow the proposed solution with the FC_function and if yes how do I proceed?

Thanks,

Christos
Christos Mitsis, modified 7 Years ago.

RE: Delft3D under Snow leopard - update1

Youngling Posts: 4 Join Date: 9/24/11 Recent Posts
Dear Fedor,

It seems to be working with the updated FCFLAGS, at least for one example so far tested.


Many thanks.
Christos.