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

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
  • Delft3D-WAQ
  • Delft3D-PART

Delft3D-FLOW must be build using "build.bat delft3d4" (Win) and "build.sh" (Lnx), following the instructions below.

All other kernels must be build using CMake the Intel FORTRAN 2021 compiler (and higher) and Intel MPI.

 

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 simulation

These four steps will now describe in detail below.

 

 

 

Steps needed to use the Delft3D 4 source code

Steps needed to use the Delft3D 4 source code

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.

Step 1: Installing Microsoft Visual Studio 2019 Community Edition, including C++ compiler.
Double click the executable “vs_community2019.exe”. Press “continue”. In the workloads menu, select “Desktop development with C++”. This will open up a menu on the right side with a preselection of packages. The following packages need to be added to the default selection:

  • - "C++/CLI support for v142 build tools (Latest)"
  • - "C++ MFC latest v142 build tools (x86 & x64)"
  • - "Latest Windows 10 SDK"

Press “Install”. On a good network connection this will take approximately 7 minutes. After it is done a popup will appear saying that it is required to restart your computer before you start Visual Studio. Press “Restart”. 

Step 2: Installing the Intel Fortran compiler
Intel Fortran compiler, version 2023. Installing the Intel Fortran Compiler is very straightforward. Double click on the installer, “w_fortran-compiler_p_2023.2.1.7_offline.exe”, and follow the instructions. Tell Intel whether they can collect your data or not and proceed. Do note that the Intel Fortran compiler also has to be integrated with Visual Studio 2019

Step 3: Installing other Inter oneAPI components

Compiling D-Flow FM requires two additional Intel components:

  • Intel MPI, w_mpi_oneapi_p_2021.10.0.49373_offline.exe
  • Intel MKL, w_onemkl_p_2023.2.0.49500_offline.exe

Installing them is also very straightforward. Do note that the Intel MKL library also has to be integrated with Visual Studio 2019.

Step 4: Installing the Intel ifort runtime

The ifort runtime might or might not be required to run D-Flow FM, some users have the DLL’s required to run D-Flow FM installed already as part of the Intel oneAPI Toolkit or as part of their Intel MPI library. Therefore, install the runtime by executing “w_ifort_runtime_p_2023.2.1.19.exe.

Step 5: Installing Cmake
The Delft3D 4 solution files that Visual Studio uses are generated using CMake. Simply install using “cmake-3.25.1-windows-x86_64.msi:”. On some systems it seems to be necessary to add CMake to the system path, please do so (“add CMake to the path for all users”) just to be sure.

Step 6: Preparing the Visual Studio Solution files
Inside your trunk folder there should be a batch file called build.bat. Fill in "prepareonly=1" and "set config=delft3d4".  It will build a delft3d4.sln solution file that can be used by Visual Studio to compile the source code. Double click it and a folder called build_delft3d4 should be created. Inside this folder you should find a file called delft3d4.sln.

Step 7: Build
Now that the solution files are ready, it is time to compile the code.
In your trunk root directory a new folder has appeared for your selected build configuration. In this case build_delft3d4. Inside there is a file called delft3d4.sln, a Visual Studio solution file. Double click it and Visual Studio will open. Preparing Visual Studio for first use may take a few minutes. 
Top menu -> Build -> Build solution to start the compilation. You can choose between a Debug or a Release version.
After successful compilation, the binaries can be found in subdirectory ..\build_delft3d4\x64.
In order to start a simulation, "d_hydro" has to be set as Startup Project. Next, under properties a "working directory" and "Command arguments" have to be set. For the latter fill in config_d_hydro.xml. Next, a debug or release simulation can be started.

 

Linux

OS distributions:

Linux Required software:

  • Subversion client
    To communicate with the Subversion server.

  • CMake version 3.20.6 or higher

  • 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 2023 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.

  • IntelMPI version "OneAPI 21".

  • IntelMKL version "OneMKL 23". 

  • 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 the 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/142586".

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/142586". 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/142586 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.

 

 

 

3. Compile the source code

Run "build.bat delft3d4". By specifying the argument "delft3d4" the modules Delft3D-FLOW, Delft3D-WAQ and Delft3D-WAVE will be generated.

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 simulation

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.

Disclaimer

In the description above a lot of version numbers of tools are mentioned. The compilation procedure works for this combination of software versions. However, we realize that somestimes these versions cannot be downloaded anymore and that only more recent versions can be downloaded. For a combination of newer tolls we expect that the compilation procedure will work as well, but this cannot be guaranteed.