Get Started

Get Started

Open Source

Open Source

Currently the full source code is available of the Delft3D-FLOW, Delft3D-MOR, Delft3D-WAVE, Delft3D-WAQ (DELWAQ) and Delft3D-PART (DELPAR, Particle Tracking) engines under GPLv3 conditions. The source code of the post-processing tool QUICKPLOT is also available. We aim to release the source code of the other graphical user interface programmes in 2019/2020. 

 

Source code

Source code

We are currently switching to using CMake for compilation, both on Windows and Linux. The transition phase is planned to end within 2021.

For now: Please use the latest tagged versions without CMake dependency:
D-Flow FM: https://svn.oss.deltares.nl/repos/delft3d/tags/delft3dfm/68819
Delft3D4: https://svn.oss.deltares.nl/repos/delft3d/tags/delft3d4/65936

In case you're using IFORT21 on Windows:
https://svn.oss.deltares.nl/repos/delft3d/branches/research/Deltares/20210713_tag68819_IFORT21

 

Avoid compilation

Compilation may cost a lot of time. Please consider using a service package to obtain a precompiled version.

We're working on distribution via containers (Singularity). Please contact software.support@deltares.nl for more information.

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.

 

Steps needed to use the Delft3D source code

1. Registration

2. Prerequisites - required software

3. Download the source code

4. Compile the source code

5. Run a calculation

6. Known issues

 

1. Registration

Follow the instructions by clicking on 'Register' at the top right corner of this site or click here.

 

2. Prerequisites - required software

After registration you will have access to the Subversion server, managing the open source code. Before downloading the code (step 3), 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 2017 or newer, 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 2015" 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. 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:

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

Linux Optional software:

  • GDAL  (https://gdal.org/), version 2.4.0 or 3.0.4

  • METIS (http://glaros.dtc.umn.edu/gkhome/views/metis), version 5.1.0

  • PETSc (https://www.mcs.anl.gov/petsc/index.html), version 3.4.0, 3.5.2 or 3.9.3

  • PROJ (https://proj.org), version 5.2.0 or 6.3.1

  • Shapelib (http://shapelib.maptools.org/), version 1.4.1

Remarks

  • Currently, 64-bit is the default, 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.

 

3. 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). Choose a version you want to download. As a start, use a stable, fully tested version from the tags, for example "https://svn.oss.deltares.nl/repos/delft3d/tags/delft3d4/65936".

Remark about the version numbering in "tags": Tag "65936" contains D-Flow FM, DELWAQ, PART, Delft3D-FLOW, Delft3D-WAVE and SWAN. 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:
DELWAQ       Version 5.10.00.65936
PART         Version 3.81.00.65936
Delft3D-FLOW Version 6.03.00.65936
Delft3D-WAVE Version 3.07.00.65936
SWAN         Version 41.20A.7

 

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/65936". 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 a 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/65936 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.

 

4. Compile the source code

Windows only (revision 5382 and up):
By running a Python script, a solution file will be generated and the project files will be adjusted to the tools that you use.

Linux and Windows:
See file "src/README", inside the downloaded code, for the compile instructions. On Windows, start with the release version.

In case of problems:

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

  2. Check the Frequently Asked Questions page

 

5. 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.

The description below is based on source code version 5.00.00.1234 and higher.

5.1 Running Delft3D-FLOW, Delft3D-WAVE and D-Water Quality using scripts (Windows and Linux)

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


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" (in version 5.xx and 4.xx "config_flow2d3d.ini") and "runbat/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 FLOW runs online with 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.

     

5.2 Running Delft3D-FLOW, Delft3D-WAVE and D-Water Quality using the GUI menu (Delft3D version 4.01 and higher)

  • Currently, the GUI is only available on Windows

  • Source code revision 8037 and up only works in combination with GUI 4.04.00 (and higher)

  • Source code revision 8036 and down only works in combination with GUI 4.03.99 (and lower)

The instructions below are related to revision 8037 and up.

Start by obtaining and installing the Delft3D-GUI. See the box named "TEMPORARY EXTRA SERVICE" at the top of the current page. This box is only visible while being signed in. After installation, the Delft3D-menu can be started, but the GUI does not contain the open source binaries. 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:

Windows: 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).
Linux: The GUI is not available on Linux.

To start the Delft3D-menu:
Windows: Execute "myDelft3D/x64/d3d_menu.bat". See the manuals for more details.
Linux: The GUI is not available on Linux.

 

6. Known issues

  • DomainDecomposition on multiple nodes does not work properly.

  • OnlineVisualisation on Delft3D-FLOW has been replaced by RemoteOLV and is still unstable.