Skip to content

Dependencies

Before compiling DINO, several external libraries must be installed or available on your system.
Some are bundled with the code, while others must be installed separately.
The table below summarizes required versions, their purpose in DINO, and links for more information.

Library Version Purpose in DINO Website
2DECOMP&FFT 1.5.847 Handles domain decomposition and distributed FFTs for parallel Poisson solvers and spectral operations. 2decomb
MPI Provides communication routines for parallel execution across multiple processors or nodes. OPEN MPI
FFTW 3.x.x Performs fast Fourier transforms needed for spectral solvers. FFTW
LAPACK > 3.5.0 Supplies optimized routines for linear algebra operations. LAPACK
BLAS > 3.5.0 Provides basic linear algebra operations used by LAPACK. BLAS
HYPRE < 2.9 Supplies scalable solvers and preconditioners for large sparse linear systems. HYPRE
SUNDIALS 1.8 or 2.6.2 Provides solvers for ODEs/DAEs, used for advanced time integration. SUNDIALS
Cantera 1.8, 2.4.0 or 3.10 Provides thermodynamic and kinetic data for chemical species and reactions. Cantera
HDF5 1.8.x Handles efficient and portable binary I/O for simulation outputs, checkpoints, and restarts. HDF5

Info

Detailed installation instructions are given in the Installation section of this documentation.

Warning

  • For compatibility between SUNDIALS and Cantera, only the following version pairs are supported:
    • SUNDIALS 2.3 with Cantera 1.8
    • SUNDIALS 2.6.2 with Cantera 2.2.0
    • SUNDIALS 3.0.0 with Cantera 2.4.0
    • SUNDIALS 6.0.0/ 7.0.0 with Cantera 3.1.0
  • Using mismatched versions may lead to linking or runtime errors.
  • Most dependencies are available via HPC module systems, package managers (apt, yum, spack), or can be compiled from source.
    If installed in non-standard locations, their prefixes should be passed to CMake using the CMAKE_PREFIX_PATH variable.

MPI

Message Passing Interface (MPI) is a standardized and portable message-passing system.


FFTW

FFTW stands for "Fastest Fourier Transform in the West" and is a library for computing the discrete Fourier transform (DFT) in one or more dimensions, for arbitrary input size, and of real and complex data.


LAPACK and BLAS

LABACK and BLAS are libraries for the calculation of vector- or matrix operations. - BLAS (Basic Linear Algebra Subprograms) - LAPACK (Linear Algebra PACKage)

Note

Make sure to build the double-precision functions for LAPACK. (See options when setting up cmake for a compilation of LAPACK.)


HYPRE

HYPRE is a software library for high performance preconditioners and solvers to solve large, sparce linear systems of equations on massively parallel computers. The hypre library is developed at the Lawrence Livermore National Laboratory and can be istalled as described in the official hypre documentation.


Sundials

Sundials is a suite of advanced computational codes for solving large-scale problems that can be modeled as a system of nonlinear algebraic equations, or as initial-value problems in ordinary differntial or differntial-algebraic equations.

The CMake-based installation procedure of Sundials can be found on the official sundials documentation.


Cantera

Cantera is an open-source suite of tools for chemical kinetics, thermodynamics, and transport processes. It is used in DINO to compute e.g. reaction rates.

Cantera should be installed in a seperate directory, where it is available for usage.

Note

CANTERA 1.8 sometimes deletes all contents of the ./lib/subfolder during the installation, so that it can lead to issues when trying to compile DINO.

DINO is compatible with different Cantera version, and preconfig files for compiling Cantera with the required options are available in TOOLS/SCRIPTS/.preconfig_cantera_1.8.0-beta and TOOLS/SCRIPTS/.cantera_2.2.0_conf. Before using these scripts, make sure to: - compile Cantera with the use of Sundials. Using the old version CVODE, that is shipped with Cantera is not supported by DINO. Sundials must be installed before compiling cantera, and the variable SUNDIALS_HOME in the Cantera preconfig or cantera.conf file must be set to the location of the installed Sundials. - enable the Fortran interface of Cantera, that is necessary for DINO - The python module of Cantera is not necessary and can be set to 'minimal' - Set the compiler (F90) to your Fortran compiler - If you want Cantera to use a LAPACK that is provided by you and not the one that is shipped with it, set the variables for BLAS and LAPACK libraries (they might be commented out in the .preconfig file)

Note

It is best to use Fortran and C/C++ compilers from a single vendor (e.g. ifort or gcc).


HDF5

HDF5 is a high-performance data management and storage suite that is build for fast I/O processing and storage. DINO requires HDF5 v1.8.8 or later, which can be installed following the manual.

The Fortran2003 interface and MPI must be enabled, which can be check by examining the libhdf5.settings file in the same directory as the hdf5 library files:

    Fortran: yes
    Fortran 2003 Compiler: yes
    Parallel HDF5: yes
When compiling HDF5 yourself, you can enable the required settings by invoking configure with the following options:
    ./configure --enable-fortran --enable-production --enable-static --enable-parallel