Building and Running

There is no binary distribution available yet. You need to download the source code from github and build the program on the system you are going to run it. Many additional packages are required and they are either included with the source distribution or are downloaded automatically during the build process. In addition there are some packages that you will need to manually add to your system. In many cases they can be added through your package manager.

Currently the build process is linux specific. We have been able to build on Centos-8 and various flavors of Ubuntu.

Downloads from github

You need to download DEDiscover and a forked version of cmake-gradle-plugin

Software to Install

The following packages will be needed. We have included the commands to install them from the command line in Ubuntu.

GNU compilers
You need to install the g++ and gfortran compilers. DEDiscover has been built successfully with GCC versions 8.xx and 9.xx, however some features (including delayed differential equations) do not work correctly with gcc 9,
cmake
CMake is used for generating the makefiles that will compile the Fortran and C++ code. Minimum version required is 3.1. It is available on every linux distribution. You can also install it manually if your system only provides an older version.
Boost
The boost libraries are available on most linux distributions. DEDiscover compile with most boost versions above 1.62. You need both the libraries and development packages.
On it can be installed with
sudo apt install libboost-dev-all
BLAS and LAPACK
Both packages are available on most linux versions.
sudo apt install libblas3
sudo apt install libblas-dev
sudo apt install liblapack3
sdkman
sdkman is the Software Developer Kit Manager. It will be required to install the proper versions of Java 8, gradle and JavaFX. To install use
curl -s "https://get.sdkman.io" | bash
then follow the instructions. If curl is missing, you can install on ubuntu with
sudo apt install curl
maven
Maven is used to manage the packages that are downloaded my gradle. To know if it is installed on your system type
mvn
On linux install with
sudo apt install maven
Gradle
Gradle is the build tool that will perform the compilation of the Java and Kotlin code, as well as execute CMake. Install it using sdkman with
sdk install gradle 6.8.2
The version number is important.
Java and JavaFX 8

On most linux systems Java 8 no longer ships with JavaFX. It is available from sdkman and you can install using

sdk install java 8.0.312.fx-zulu
Note that version 8.0.312 may no longer be available. You can use
sdk list java
to see which ones are available, and install the one where the dist column says zulu and the value in the Version starts with 8.0. Gradle needs the JAVA_HOME environment variable to point to your Java installation. On bash-like shells type
export JAVA_HOME=/home/my-user-name/.sdkman/candidates/java/current
and you should also add it to your shell configuration file.

If you already had a version of Java installed there may be an extra step needed to make the version that you just installed the one that will be used in the build process.

Compiling and Running

Before compiling DEDiscover you need to build and install the gradle-cmake-plugin that you downloaded earlier. It only has to be done once. Go to the directory where you cloned the project, then type
gradle publishToMavenLocal
Then go to the directory where you cloned DEDiscover, and type
gradle runDED
If everything goes well the DEDiscover window will pop up in 15-20 minutes. The first build is very slow since it involves downloading many packages and compiling a lot of C++ and Fortran code.

Troubleshooting