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