Get Started Delft3D 4 Suite

Get Started Delft3D 4 Suite

Open Source - Delft3D 4

Open Source - Delft3D 4

Currently the full source code is available of the Delft3D-FLOW, Delft3D-WAVE, Delft3D-WAQ (DELWAQ) and Delft3D-PART (DELPAR) engines under GPLv3 conditions. The source code of the post-processing tool QUICKPLOT is also available. 

 

 

Source code

Source code

The Delft3D source code is stored and maintained using Subversion

Subversion (SVN) is a version control software that allows users to download any version of the trunk or a branch. It gives full control on all changes, and has abilities like roll back, submit patches and manage access. See Subversion for more details.

 

Code organization

The source code of the kernels of the following modules are all in one repository:

  • Delft3D-FLOW
  • Delft3D-MOR
  • Delft3D-WAVE + SWAN (Deltares version, since revision 69818)
  • Delft3D-WAQ
  • Delft3D-PART

Delft3D-FLOW must be built using "prepare_sln.py" (Win) and "build_h6c7.sh" (Lnx), following the instructions below.

 

Steps needed to use the Delft3D 4 source code

1. Prerequisites - required software

2. Download the source code

3. Compile the source code

4. Run a calculation

 

1. Prerequisites - required software

After registration you will have access to the Subversion server, managing the open source code. Before downloading the code (step 2), you need to install a set of tools to be able to compile the code. The tools needed depend on your operating system. 

Windows

  • TortoiseSVN

    Subversion client to communicate with the Subversion server. You are free to use other clients, but our documentation is based on TortoiseSVN. The plain Subversion client is also an option and works identical to the Subversion client on Linux.

  • Microsoft Visual Studio 2019, including C++ compiler.

    Be sure that the following modules are installed in your VisualStudio (by default, they are not installed):

    - "Common Tools for Visual C++ 2015"
    - "Microsoft Foundation Classes for C++"
    - "Windows 10 SDK"
    - "Windows 8.1 SDK and UCRT SDK"
    - "Visual C++ MFC for x86 and x64"
    - "C++/CLI support"
    - "C++ Universal Windows Platform tools"
    - "Common tools for Intel compiler projects"

    To install them after VisualStudio has been installed:
    1. Windows Start
    2. Control Panel
    3. Programs (and Features)
    4. Right-click on "Microsoft VisualStudio 2019" and select "change" or "modify"
    5. A Window will pop-up in which you can select the specified modules and perform an update.

  • Intel Fortran compiler, version 18.0 or newer. Version OneAPI2021 is free of charge. Use a version that is newer than the Microsoft Visual Studio version, e.g. Microsoft Visual Studio 2017 with Intel Fortran compiler 18. Check that the Intel compiler is correctly plugged into Visual Studio: in Visual Studio, menu bar "Help" -> "About Microsft Visual Studio" -> "Installed products". The Intel compile should be in this list.

  • Python (https://www.python.org/downloads) 3.8 or newer.
     

Linux

OS distributions:

  • Use CentOS 7 or RedHat 7

  • Ubuntu
    Officially not supported. Usage of a Singularity container is strongly advised.
    Check the two "build_ubuntu" files in the branch https://svn.oss.deltares.nl/repos/delft3d/tags/delft3dfm/68819

  • Other distributions
    Officially not supported. Usage of a Singularity container is strongly advised.

Linux Required software:

  • Subversion client
    To communicate with the Subversion server.

  • GNU Autotools (use Package Manager).
    Currently, fully tested binaries are build using Autoconf version 2.68 and Automake 1.11.1.
    Warning: do not use Autoconf version 2.63. It contains a bug resulting in the error message "unknown language: Fortran".
    Warning: do not use Automake 1.16.2

  • GNU Libtool.
    Currently, fully tested binaries are build using version 2.4.2.
    Including libtool, libtool-ltdl and libtool-ltdl-devel

  • GNU C++ compiler (use Package Manager), version 3.4.6.
    Alternative: Intel C++ compiler, version 18 or higher.

  • expat-devel (
    Expat is a library to develop XML applications)(use Package Manager)

  • GNU Fortran compiler 4.9.1.
    Alternative: Intel Fortran compiler, version 18 or higher. Binaries produced with the Intel compiler are faster.
    Do not use GNU Fortran compiler 8.x.x or newer.
    IMPORTANT: Use the same vendor (Intel or GNU) for both the C++ and the Fortran compiler.

  • Mpich, version 3.1.2 or higher.
    IMPORTANT: Use exactly the same C++ and Fortran compiler to build mpich and Delft3D. Please check in case of using a precompiled distribution.

  • Lex & Yacc

  • OpenSSL.
    Don't use version 0.9.8!

  • "readline-devel" (RedHat/Fedora) or "libreadline6-dev" (Debian/Ubuntu)

  • Ruby

  • NetCDF: netcdf-c-4.6.1 or above, netcdf-fortran-4.4.5 or above, with hdf5 enabled
    IMPORTANT: Use exactly the same C++ and Fortran compiler to build NetCDF and Delft3D. Please check in case of using a precompiled distribution.

  • uuid-dev package

Remarks

  • Always use 64-bit, both on Windows and Linux systems.

  • The named version numbers above refer to what we use at this moment. You are free to use other versions, but be aware that APIs might have been changed.

 

2. Download Source Code

    After registration you can access the Subversion repository. Use your internet browser to have a look at "https://svn.oss.deltares.nl". Login with your "screen name", not with your e-mail address. Repository "Delft3D" contains branches (isolated develop versions), tags (fully tested, stable versions) and the trunk (where all updates, merges and bug fixes happen). Each of them contain the complete source code of all kernels in the repository. Choose a version you want to download. As a start, use the latest, stable, fully tested version from the tags, for example  (currently) "https://svn.oss.deltares.nl/repos/delft3d/tags/delft3d4/69179".

    Remark about the version numbering in "tags": Tag "65936" contains Delft3D-FLOW, Delft3D-WAVE (SWAN), Delft3D-WAQ (DELWAQ) and Delft3D-PART. Since all these modules have their own version number, the name of the tag is simply the related revision number in the trunk. The log of the tag contains a full list of version numbers, for example, the log of tag "65936" reads:
    Delft3D-FLOW Version 6.04.00.69179
    Delft3D-WAVE Version 3.08.00.69179
    SWAN         Version 41.20A.7
    DELWAQ       Version 5.10.00.69179
    Delft3D-PART Version 3.81.00.69179

    Using TortoiseSVN (Windows only)

    TortoiseSVN is a convenient SVN client for Windows that integrates with Windows Explorer.

    Go to Windows Explorer (hit WIN+E or right-click on the Start button and click Explore), and create a new folder in a location of your choice. You may want to name it something like "delft3d_repository."
    WARNING: Avoid using a directory name containing spaces.

    Right click on that folder and choose "SVN Checkout". Use The URL of your choice, for example "https://svn.oss.deltares.nl/repos/delft3d/tags/delft3d4/69179". Click "Ok" to download this version of the source code.

    You will now be prompted for your username and password; these are the same as your credentials for the community environment.

    The download will start automatically.

    See the manual of TortoiseSVN for more information.

    Using Subversion (Linux and Windows)

    Choose an empty directory where you want the source code to be placed and execute the checkout command. Example (to put the source code in the newly created directory "delft3d_repository"):

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

    You will now be prompted for your username and password; these are the same as your credentials for the community environment.

    The download will start automatically.

    See the manual of Subversion for more information.

     

    3. Compile the source code

    See file "src/README", inside the downloaded code.

    In case of problems:

    1. Check that you are using the correct tools, see prerequisites

    2. Check the Frequently Asked Questions page

     

    4. Run a calculation

    Always start by running one of the examples inside the downloaded source code using the prepared run-script. If this works fine, the binaries were build correctly.

    In the description below, the term "myCode" is used for the location/directory on your machine where you have chosen to download the source code.
    The term "myDelft3D" is used for the location/directory on your machine where you have chosen to install the Delft3D setup containing the GUIs. The default value for "myDelft3D" is "c:\Program Files\Deltares\Delft3D 4.xx.xx" on Windows and "/opt/delft3d" on Linux.

     

    4.1 Running Delft3D-FLOW (Windows and Linux)

    Assumption on the compilation part:
    On Windows, the release version is built.
    On Linux, the command "make ds-install" is executed, possibly via a "build.sh" script.

    After compiling the source code:
    Go to one of the sub-directories of "examples", inside the downloaded source code: "myCode/examples".
    Windows: execute "run.bat".
    Linux: execute "run.sh".
    Testcase "myCode/examples/01_standard" also contains example run scripts for parallel calculations.
    For your own testcase: copy and adapt both "config_d_hydro.xml" and "run.bat/.sh" into your testcase directory.

    If the testcase does not run, the two most common problems are :

    1. The binaries are not build correctly.
      Windows: Does directory "myCode/src/bin/x64/flow2d3d/bin" contain the binaries "d_hydro.exe" and "flow2d3d.dll"? If not, something went wrong during compilation. Check the output window inside Visual Studio.
      Linux: Does directory "myCode/src/bin/" contain the binary "d_hydro" and "myCode/src/lib/" the binary "libflow2d3d.so"? If not, something went wrong during compilation. Check the log files in directory "myCode/src/logs".

    2. System and/or compiler specific libraries can not be found.
      Normally these libraries are found via some environment parameters (PATH and LD_LIBRARY_PATH). Problems may occur when porting binaries to a machine without development tools. Especially when Delft3D-FLOW runs online with Delft3D-WAVE, finding the correct compiler specific libraries is sensitive.
      All needed system/compiler specific libraries are copied into directory "myCode/src/bin/x64/share/bin" (Linux: "myCode/src/lib") during installation. Thus creating a set of binaries that can be distributed to other machines.
      Windows: Normally a message window appears to notify what library is missing.
      Linux: Use the ldd command to find out what library is missing.

       

    4.2 Running Delft3D-FLOW using the GUI menu

    The GUI is only available on Windows

    Start by obtaining and installing the Delft3D-GUI, see instructions above. After installation, the Delft3D-menu can be started, but the GUI does not contain the open source binaries of the kernels. You have to compile them yourself and copy them into the GUI directory as follows:

    First compile the source code and check that the binaries are correct by running a calculation with a script as described above. If that works fine, you have to copy the binaries from "myCode/src/bin" into "myDelft3D" as descibed below:

    Directory "myCode/src/bin/" contains a subdirectory named "x64". Copy this directory "myCode/src/bin/x64" to "myDelft3D/x64", replacing existing files (create a backup version first in case of doubt).

    To start the Delft3D-menu:
    Windows: Execute "myDelft3D/x64/d3d_menu.bat". See the manuals for more details.