Installation

VERTEX-CFD supports both CPU and GPU solvers. For full CPU and GPU capabilities, please refer to GPU installation. Otherwise, check CPU installation below.

CPU installation

For the CPU installation, first of all, make sure you have TRILINOS_ROOT variable defined in your environment.

TRILINOS_ROOT=PATH_TO_TRILINOS/TRILINOS_VERSION

Once the TRILINOS_ROOT is set, load the dependencies:

module load intel
module load tbb
module load compiler-rt/
module load mkl
module load python

Once the environment is ready, configuration file can be run as:

./vertexcfd-env

The content of the vertexcfd-env file is:

#!/bin/sh                                                                                  

SOURCE=PATH_TO/vertex-cfd
INSTALL=INSTALLATION_PATH
TRILINOS_ROOT=PATH_TO_TRILINOS/TRILINOS_VERSION
BUILD="Release"
BUILD_SYSTEM=Ninja

rm -rf CMake*
rm DartConfiguration.tcl
rm CTestTestfile.cmake
rm VertexCFDConfig.cmake
rm -rf Testing

cmake \
    -G "$BUILD_SYSTEM" \
    -D CMAKE_BUILD_TYPE="$BUILD" \
    -D CMAKE_INSTALL_PREFIX="$INSTALL" \
    -D VertexCFD_ENABLE_COVERAGE_BUILD=OFF \
    -D CMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -fdiagnostics-color" \
    -D VertexCFD_ENABLE_TESTING=ON \
    -D CLANG_FORMAT_EXECUTABLE="PATH_TO_CLANG_FORMAT" \
    -D TRILINOS_ROOT="$TRILINOS_ROOT" \
    \
    ${SOURCE}

Please note that BUILD_SYSTEM environment can be both Ninja or Make. Choose the correct one based on your system. Once the configuration is completed, compilation can be initiated with following command. Please note that we used ninja in this example so please switch to make if your BUILD_SYSTEM is defined as Make.

ninja

By default, ninja command will use the available cores, this can be limitted as:

ninja -j4

You can replace the number 4 with the number of cores that you prefer. We do recommend to use -j flag as some systems tends to compile on every CPUs on the login node and fail due to the allocated/used CPUs. Once the compilation is done, VERTEX-CFD can be installed by using:

ninja install

Once installed, VERTEX-CFD is ready to run.

GPU installation

For the GPU installation, CUDA needs to be loaded in the HPC environment and Trilinos needs to be built with the GPU support. Just like the CPU version, define the TRILINOS_ROOT variable as:

TRILINOS_ROOT=PATH_TO_TRILINOS/TRILINOS_VERSION_WITH_CUDA

Once the TRILINOS_ROOT is set, load the dependencies by including cuda:

module load intel
module load tbb
module load compiler-rt/
module load mkl
module load python
module load cuda

Once the environment is ready, configuration file can be run as:

./vertexcfd-env-gpu

The content of the vertexcfd-env-gpu file is:

#!/bin/sh                                                                                  

SOURCE=PATH_TO/vertex-cfd
INSTALL=INSTALLATION_PATH
TRILINOS_ROOT=PATH_TO_TRILINOS/TRILINOS_VERSION_WITH_CUDA
BUILD="Release"
BUILD_SYSTEM=Ninja

rm -rf CMake*
rm DartConfiguration.tcl
rm CTestTestfile.cmake
rm VertexCFDConfig.cmake
rm -rf Testing

cmake \
    -G "$BUILD_SYSTEM" \
    -D CMAKE_BUILD_TYPE="$BUILD" \
    -D CMAKE_INSTALL_PREFIX="$INSTALL" \
    -D VertexCFD_ENABLE_COVERAGE_BUILD=OFF \
    -D CMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -fdiagnostics-color" \
    -D VertexCFD_ENABLE_TESTING=ON \
    -D CLANG_FORMAT_EXECUTABLE="PATH_TO_CLANG_FORMAT" \
    -D TRILINOS_ROOT="$TRILINOS_ROOT" \
    \
    ${SOURCE}