Skip to content

Install WABBIT with requirements

Thomas Engels edited this page Nov 20, 2024 · 3 revisions

Several packages are required in order to successfully compile and run WABBIT:

  1. Fortran compiler (GFortran)
  2. BLAS + LAPACK
  3. MPI (OpenMPI)
  4. HDF5
  5. WABBIT Python Tools
  6. Python packages numpy, h5py

Some packages are optional to assist in the compilation process:

  1. Git

A detailed explanation for each package can be found below. A compilation from source for OpenMPI as well as HDF5 are suggested.

Fortran Compiler (GFortran)

WABBIT is build with Fortran. In order to compile a Fortran compiler is therefore needed. Check installation via:

gfortran --version

apt

Install with apt (on UBUNTU-based operating systems):

sudo apt-get install gfortran

GIT

Git is used in order to pull WABBIT resources from Github in this explanation. Check installation via:

git --version

Installation using apt (on UBUNTU-based operating systems)

sudo apt-get install git

BLAS and LAPACK

The packages BLAS and LAPACK are used for matrix operations.

Compilation from source

Download latest BLAS and LAPACK. Unpack each, then install BLAS:

make -j8
mv blas_LINUX.a libblas.a

Install LAPACK:

cp make.inc.example make.inc  # use example make as make
make -j8

Installation using apt (Ubuntu linux)

sudo apt-get install libblas-dev liblapack-dev

Installation using dnf(fedora linux)

sudo dnf install lapack-devel blas-devel

MPI (OpenMPI)

As a parallel program, WABBIT uses mpi.

Compilation from source

You can get the latest version of OpenMPI here. Unpack first and move to desired location, then build OpenMPI:

./configure --enable-mpi-fortran --prefix=$PWD/install
make -j8
make -j8 install

This builds OpenMPI at the current location.

Installation using apt

Optionally, OpenMPI can be installed using pre-compiled packages on apt:

sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev libgtk2.0-dev

HDF5

WABBIT uses the HDF5 format to load and store results.

Compilation from Source

You can download official releases here. Additionally, older versions can be found on there GitHub.

⚠️ Currently version 1.14.3 was found to not work with WABBIT as of 11.03.24
Version 1.14.4 was checked and does work as of 04.07.24

Unpack and install, make sure your desired MPI implementation is loaded:

CC=mpicc ./configure --prefix=$PWD/install --enable-fortran --enable-parallel
make -j8
make -j8 install

Using the above code, HDF5 is installed in the /installsubfolder of the current directory $PWD. You will have to tell WABBIT where to find it by setting export HDF_ROOT=$PWD/install. Of course, you can install the compiled version of HDF also in another folder (e.g. simply $PWD and then set $HDF_ROOT acoordingly.)

The HDF5-installation can be checked with the following time. This might take time.

make check                # run test suite.
make check-install        # verify installation.

Installation using apt

Optionally, HDF5 can be installed using pre-compiled packages on apt.

sudo apt-get libhdf5-mpi-dev

A note on the HDF5 structure

Note: from hdf5 1.10 to 1.14 the folder structure of HDF5 has changed, and this needs to be reflected in the makefile

As of 19/Apr/2023, in the makefile it looks like this:

for HDF5 1.10:

-L$(HDF_ROOT)/lib
-I$(HDF_ROOT)/include

for HDF5 1.14:

-L$(HDF_SOURCE)/fortran/src/.libs -L$(HDF_SOURCE)/fortran/src
-I$(HDF_ROOT)/fortran/src 

WABBIT Python Tools

Make sure to download the python tools needed for WABBIT testing:

git clone https://github.com/adaptive-cfd/python-tools.git

Unpack and place them in a folder of your choice

Python packages used by WABBIT

All python packages required by WABBIT have to be installed, via pip:

pip3 install numpy h5py

For usage with paraview, the latest version of vtk needs to be installed.

WABBIT

Clone the repository:

git clone https://github.com/adaptive-cfd/WABBIT.git

Unpack and compile, make sure all necessary packages are loaded:

make -j8 all
make test