Source code - Delft3D
Source Code
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.
The Delft3D source code is stored and maintained using Subversion
Subversion (SVN) is a version control software that allows users to download the very latest version of the trunk or a branch, without having to wait for someone to get around to packaging it. Advantages to using Subversion include the latest version, vastly simplified updating, the ability to roll back an upgrade, the ability to create and submit patches and full control on all changes. See Subversion for more details.
What is 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 at Get started > Register.
2. Prerequisites - required software
After registration you will have access to the Subversion server, managing the open source code. When you have downloaded the source code it can be compiled using different tools. The tools that you need 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 2015 or newer, including C++ compiler.
VS2012 is no longer supported. If you are using VS2012, use an older revision of the Delft3D source code (revision 7545 or older).
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"
- "Intel(R) Software Manager"
- "Intel(R) Fortran Expression Evaluator"
- "Fortran IDE" -
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 16.0, 18.0 or newer. Use a version that is newer than the Microsoft Visual Studio version, e.g. Microsoft Visual Studio 2015 with Intel Fortran compiler 16. Do not use version 17. 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).
Both versions (2.7.xx and 3.4.xx) will do
Linux (check out webinar 3)
Different OS distributions:
- CentOS/RedHat
Used by default - Ubuntu
Check the two "build_ubuntu" files in the trunk (https://svn.oss.deltares.nl/repos/delft3d/trunk/src) - Suse
Check this post
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 11.1 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 16.0 or higher. Binaries produced with the Intel compiler are faster.
Do not use Intel Compiler 2016 update 3 or 4.
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/59659". The best version currently available is the tagged version with the highest version number.
Remark about the version numbering in "tags": Tag "2367" and up contain DELWAQ, Delft3D-FLOW and Delft3D-WAVE. 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 "2367" reads:
DELWAQ Version 5.00.00.2367
Delft3D-FLOW Version 6.00.00.2367
Delft3D-WAVE Version 3.04.01.2367
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/59659". 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/59659 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:
-
Check that you are using the correct tools, see prerequisites
-
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 :
-
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". -
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.