-
Notifications
You must be signed in to change notification settings - Fork 28
Install WABBIT with requirements
Several packages are required in order to successfully compile and run WABBIT:
- Fortran compiler (GFortran)
- BLAS + LAPACK
- MPI (OpenMPI)
- HDF5
- WABBIT Python Tools
- Python packages numpy, h5py
- FFTW (optional, only when using the Poisson Solver)
Some packages are optional to assist in the compilation process:
- Git
A detailed explanation for each package can be found below. A compilation from source for OpenMPI as well as HDF5 are suggested.
WABBIT is build with gfortran or mpiifort (or in fact any other FORTRAN compiler, but most people will probably use gfortran locally and mpiifort on supercomputers). In order to compile a Fortran compiler is therefore needed.
Check installation via:
gfortran --versionsudo apt-get install gfortran # Install with `apt` (on UBUNTU-based operating systems)
sudo dnf install gfortran # fedora-based operating systems
Git is used in order to pull WABBIT resources from Github in this explanation. Check installation via:
git --versionsudo apt-get install gitThe packages BLAS and LAPACK are used for matrix operations.
Download latest BLAS and LAPACK. Unpack each, then install BLAS:
make -j8
mv blas_LINUX.a libblas.aInstall LAPACK:
cp make.inc.example make.inc # use example make as make
make -j8sudo apt-get install libblas-dev liblapack-devsudo dnf install lapack-devel blas-develAs a parallel program, WABBIT uses mpi.
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 installThis builds OpenMPI at the current location.
Optionally, OpenMPI can be installed using pre-compiled packages on apt:
sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev libgtk2.0-devWABBIT uses the HDF5 format to load and store results.
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 installUsing 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.Optionally, HDF5 can be installed using pre-compiled packages on apt.
sudo apt-get libhdf5-mpi-devNote: 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
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
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.
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
FFTW is the basic fast Fourier transform. It is used by the latest version of WABBIT (2025) for the Poisson solver (incompressible fluid dynamics instead of the artificial compressibility method) Note on many machines, FFTW is already installed, but you still have to worry about linking it to WABBIT. It's not really hard to install FFTW, so we suggest you simply install it in your home folder.
cd $HOME
mkdir src
cd src
wget http://www.fftw.org/fftw-3.3.4.tar.gz
tar vxzf fftw-3.3.4.tar.gz
cd fftw-3.3.4
./configure --prefix=$PWD --enable-sse2 --enable-openmp --enable-mpi
make clean
make
make install
Tell flusi where to find FFTW:
export FFT_ROOT=$PWD
# you might want to add this to your .bashrc:
echo "export FFT_ROOT=$HOME/src/fftw-3.3.4" >> $HOME/.bashrc
Note: on some newer machines, depending on the configuration, the compiler builds the library in $FFT_ROOT/lib64 and not in $FFT_ROOT/lib. In that case, please make a softlink ln -s lib64/ lib/