3. Code Overview
3.1. Feature List
FLEXI currently has the following features implemented, with most of them being covered in Section 5 Tutorials.
3.2. Compiler Options
The following table describes the most important configuration options which can be set when building FLEXI using CMake. Some options are dependent on others being enabled (or disabled), such that the available ones may change upon reconfiguring.
Build Option |
Possible Values |
Description |
---|---|---|
|
Release / Profile / Debug |
normal execution / performance profiling using gprof / debug compiler for detailed error messages during code development |
|
install directory of Ctags, an optional program used to jump between tags in the source files (see e.g. the implementations Exuberant Ctags or Universal Ctags) |
|
|
on / off |
will be set to on if no pre-built HDF5 installation was found on your machine to build a HDF5 version during compilation |
|
specify the directory of a pre-built HDF5 library that was built using the CMake system, |
|
|
on / off |
set to on to run two-dimensional simulations, in this case you have to provide a mesh that consists of only one layer of elements in the third dimension |
|
linearscalaradvection / navierstokes / rans_sa |
linear scalar advection-diffusion equation / Navier–Stokes equations / Reynolds-averaged Navier–Stokes equations using Spalart–Allmaras turbulence model |
|
off / switch / blend |
Finite-Volume (FV) shock-capturing: disabled / by switching DG elements in FV subcell representation [3] / by blending the FV and the DG operator [4] |
|
on / off |
only available if |
|
br1 / br2 |
lifting method to compute the DG gradients in the parabolic terms: first [12] / second [13] method of Bassi and Rebay |
|
on / off |
define whether to compile with MPI (necessary for parallel execution) |
|
gauss / gauss-lobatto |
node-set used to define the basis functions of the DG method, see [1] for details |
|
on / off |
enable to use the PAPI library to perform performance measurements (e.g. flop counts) |
|
on / off |
define whether the parabolic term of the chosen equation system should be included or not, |
|
N / {1,2,3,…} |
polynomial degree of basis functions: to be set in parameter file / compile with fixed degree for performance (1,2,3,…) |
|
on / off |
enable the split form of the DG operator, allows to use kinetic energy or entropy stable flux functions |
|
default / hit / phill / riemann2d / taylorgreenvortex / channel |
some benchmark simulation setups are encapsulated in test cases (separate sub-folders) with case-specific initialization, analyze routines, boundary conditions, etc., |
|
constant / sutherland / powerlaw |
modeling approach for the dynamic viscosity: constant / Sutherland’s law / power law |
|
on / off |
enable to also build the post-processing tool-set next to the actual simulation code, the specific tools can be selected once this flag is enabled |
|
on / off |
enable to build the ParaView plugin for the visualization of FLEXI simulation data, |
|
on / off |
enables a set of advanced features to improve the performance of FLEXI |
|
on / off |
enable to lift only the gradients of the variables in the flux function of the selected equation system |
|
on / off |
enables profile-guided optimization (PGO) for compilation, currently only supported with GNU compiler |