1. Quick Start Guide
This quick start guide allows for a fast installation and setup of FLEXI without diving into the general details of the framework, compile options and features. Further information and detailed descriptions are available by following the indicated references.
1.1. Installation and Setup
FLEXI is free and open source (GPLv3). The current version of the code-framework is available online and can be acquired from the GitHub repository by either cloning it or downloading the compressed folder, see Obtaining the Source Code.
FLEXI requires the following packages to be installed on the system:
git
CMake
Fortran and C/C++ compilers (GNU compilers recommended)
MPI libraries (OpenMPI recommended)
LAPACK/OpenBLAS
HDF5
FFTW
LAPACK/OpenBLAS, HDF5, and FFTW can be automatically installed by enabling the corresponding compiler options in the CMake configuration.
FLEXI is compiled using CMake. For a compilation in default configuration use:
mkdir build
cmake -B build
cmake --build build
Custom configurations can be generated with
ccmake -B build
including the installation of the third-party packages mentioned above (LAPACK/OpenBLAS, HDF5, FFTW), see section compiler options for a detailed list. The executables will be generated in ./build/bin/
.
1.2. Mesh Generation
For the generation of high-order meshes the standalone mesh generator HOPR is required, creating FLEXI compatible mesh files in HDF5 format. Simple, structured meshes can be directly generated in HOPR using the integrated mesh generator, while the processing of complex geometries can be a based on external meshes in CGNS or GMSH format. In any case, a parameter file for the mesh generation and modification is required. HOPR is available on GitHub and can be compiled using CMake or by simply downloading the provided AppImage. For an in-depth description we refer to the HOPR documentation.
1.3. Running FLEXI
FLEXI can be run by executing the generated binary in the build folder $FLEXIROOT/build/bin/flexi
and providing a parameter file with the simulation-specific definitions. The feature list provides an overview of the various features implemented in FLEXI, while section parameter file contains all options and a short description.
For the definition of the initial and boundary conditions we refer to sections Initial Conditions and Boundary Conditions, respectively.
Optionally, simulations can be restarted from an existing state file (i.e. volume solution) by appending it to the argument vector:
flexi parameter_flexi.ini [Restart_State.h5]
Further details concerning the capabilities of FLEXI and the application to small testcases, including e.g., the flow around a NACA0012 airfoil, are included in the tutorials.
1.4. Tools
FLEXI comes with a comprehensive postprocessing toolchain, such as, e.g., the interpolation between different meshes, the time averaging of solution files, and the animation. Most importantly, it includes the posti_visu
tool to convert the solution files from the custom h5 format to vtu files readable by ParaView, as covered in the workflow section.