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

Runtime error: cannot allocate memory in static TLS block

GS
George Schramkowski, modified 9 Years ago.

Runtime error: cannot allocate memory in static TLS block

Youngling Posts: 7 Join Date: 4/12/11 Recent Posts
Hi everyone,

I am having a problem with running version 4.00.06.0834. Basically, when starting
a run it crashes with the statement

/opt/delft3d/delft3D-4.00.06.0834_debug/lib/libflow2d3d.so: cannot allocate memory in static TLS block

This problem has been mentioned by a few other users in the past, but no
solution has been provided. For earlier versions (4.00.00.61-4.00.02.0423)
this could be circumvented by doing a debug install (don't know why). But
now this problem shows up with both normal and debug compilations.

I use the Intel 11.0 compiler (32 bits) with 32 bits mpich2 v 1.3.2p1.
The OS is Scientific Linux (kernel 2.6.18-274.7.1.el5, 64 bits) with gcc v. 4.1.2).

Apart from editing common.am etc. I tend to use configure ; make; make install
explicitly. the configure command I use is quite long (but hopefully also
informative) and reads (for a debug compilation, hence -O0 -g)

./configure FC=ifort F77=ifort CC=icc CXX=icpc \
--prefix=/opt/delft3d/delft3D-4.00.06.0834_debug \
CFLAGS='-Wl,-rpath=/opt/flex/2.5.35/intel/32/lib,-rpath=/usr/lib -std=c99 -D_GNU_SOURCE -DSTR_LEN_AT_END' \
CXXFLAGS='-pthread -O0 -g -std=c99 -D_GNU_SOURCE -DSTR_LEN_AT_END' \
FCFLAGS=' -O0 -g -recursive -reentrancy threaded -traceback -std=c99 -D_GNU_SOURCE -DSTR_LEN_AT_END' \
FFLAGS=' -O0 -g -recursive -reentrancy threaded -traceback -std=c99 -D_GNU_SOURCE -DSTR_LEN_AT_END' \
LDFLAGS='-L/opt/flex/2.5.35/intel/32/lib -L/usr/lib -std=c99 -D_GNU_SOURCE -DSTR_LEN_AT_END' \
XLIBS='-L/usr/lib'

How can the static TLS block error mentioned above be resolved?

Also, is there a way to suppress the use of delftOnline? When running delft3d
I sometime get an error message that this is missing. After resolving that
(i.e. by putting the delftOnline and Jave so's at some appropriate location
under LD_LIBRARY_PATH), the TLS error above shows up.

As an alternative, I also tried to compile with -static option so that no
shared libs will belinked. However, this gives the error statement
libflow2d3d.so: cannot open shared object file: No such file or directory
since no so object is created and apparently delft3d can not use the static
version of libflow2d3d. Can this be resolved (may be workarounf for the TLS
error, but this is merely guess).

Hope you can help me out.

Kind regards,

George Schramkowski
Adri Mourits, modified 9 Years ago.

RE: Runtime error: cannot allocate memory in static TLS block

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

After Googling: this might be caused by some glibc version clash (see http://www.nvnews.net/vbulletin/archive/index.php/t-17187.html).

In the trunk, we are working on a version using more recent tools. Have a look at http://oss.deltares.nl/web/opendelft3d/delft3d-flow. There is a reasonable chance that this will solve your problem. But switching to this version will have two disadvantages:
  • It will take again some time to get it compiled: installing new versions of some tools, choose the correct configure command etc.
  • The trunk is not completely stable at the moment.


Currently, DelftOnline is completely removed from the trunk. When the trunk is stable again, a new version of DelftOnline (without any Java) will be added again. I'll ensure that when re-adding DelftOnline, a flag will be added to disable it.

By default, the Delft3D-FLOW kernel is compiled into a big dynamic library and can be started using a small executable. Just switching on "-static" will avoid that the kernel will be created. If you do want to use "-static", you better start with creating a monolithic executable, containing the full Delft3D-FLOW kernel. See "https://svn.oss.deltares.nl/repos/delft3d/tags/4.00.06.0834/src/engines_gpl/deltares_hydro/src/readme.txt" or "https://svn.oss.deltares.nl/repos/delft3d/trunk/src/engines_gpl/d_hydro/packages/d_hydro/src/readme.txt". If you manage creating a monolithic executable, you can try adding "-static".

Regards,

Adri