Installation: External Libraries - hyschive/gamer-fork GitHub Wiki

Library Paths

Set the following library paths in the Makefile to help compiler locate them (if necessary):

CUDA_PATH    :=
FFTW2_PATH   :=
FFTW3_PATH   :=
MPI_PATH     :=
HDF5_PATH    :=
GRACKLE_PATH :=
GSL_PATH     :=
LIBYT_PATH   :=

Only the paths of libraries being used need to be set. In addition, it is usually unnecessary to set the paths that have been embedded into the compiling command (e.g., when using CC and module load in a Cray computer system).

Library Configurations

FFTW

GAMER supports both FFTW2 and FFTW3 for various calculations (e.g., the root-level Poisson solver). Follow the installation instructions on the FFTW website. Note that it must be configured with floating-point type prefix --enable-type-prefix for FFTW2 and MPI support --enable-mpi for both FFTW2 and FFTW3. Here are example installation scripts using the GNU compiler for FFTW2 and FFTW3, respectively:

FFTW2

export FFTW_PATH=PATH_TO_INSTALL_YOUR_FFTW
export CC=gcc
export F77=gfortran
export CFLAGS=-O3
export FFLAGS=-O3

make clean
./configure --enable-mpi --enable-type-prefix --prefix $FFTW_PATH --enable-float
make
make install

make clean
./configure --enable-mpi --enable-type-prefix --prefix $FFTW_PATH
make
make install

FFTW3

export FFTW_PATH=PATH_TO_INSTALL_YOUR_FFTW
export CC=gcc
export F77=gfortran
export CFLAGS=-O3
export FFLAGS=-O3

make distclean
./configure --enable-openmp --enable-mpi --enable-shared --prefix $FFTW_PATH --enable-float
make
make install

make distclean
./configure --enable-openmp --enable-mpi --enable-shared --prefix $FFTW_PATH
make
make install

GRACKLE

GAMER uses GRACKLE for the chemistry and radiative processes. Follow the installation instructions in the GRACKLE website. Note that it must be configured with a consistent floating-point accuracy as GAMER using

make precision-{32,64}

Specifically, configure GRACKLE with make precision-64/32 when compiling GAMER with/without the option FLOAT8 , respectively.

In addition, when enabling OpenMP in GAMER (i.e., with the compile-time option OPENMP ), GRACKLE must be configured with OpenMP support as well using

make omp-on

HDF5

GAMER uses HDF5 for storing snapshots. It is not necessary to enable either --enable-cxx or --enable-parallel when configuring HDF5 since GAMER currently adopts the C interface with serial I/O. Here is an example installation script using the icc compiler (remember to replace PATH_TO_INSTALL_YOUR_HDF5 with your installation path):

CC=icc ./configure --prefix=PATH_TO_INSTALL_YOUR_HDF5
make
make install

LIBYT

GAMER uses libyt for in situ Python analysis. See In Situ Python Analysis for details.

libyt has two modes, normal mode and interactive mode. Please refer to libyt -- How to Install.

Set LIBYT_PATH to the folder that contains subfolders include and lib.

Links