fez is a collection of finite element solvers in C++ for the resolution of single and multiphase flows and fluid-structure interaction (FSI) problems, in a continuous Galerkin setting. The solvers use an implicit and monolithic approach, solving all the flow variables in a single system and allowing for the resolution of numerically challenging problems, such as FSI simulations at low or zero structure-to-fluid mass ratio.
fez is built on deal.II, an open-source framework for parallel finite element computations, and borrows design patterns from Lethe, a collection of deal.II-based open-source solvers for computational fluid dynamics (CFD) and discrete element methods (DEM).
An installation of deal.II is required to compile and run fez, see for instance here for the steps. In addition to the base installation, deal.II should be compiled with the following dependencies :
- PETSc for the parallel linear algebra structures and solvers, which should be configured with the direct solver MUMPS, as it is currently used by most solvers.
- The Gmsh software development kit (SDK) to allow reading and writing meshes in .msh format
- METIS for mesh partitioning
To run the test suite, SymEngine is also required to compute symbolically the source terms required by the method of manufactured solutions.
After your version of deal.II was compiled and installed with these libraries, clone fez from this repository with:
$ git clone https://github.com/arthurbawin/fez
$ cd fez
Then configure and compile with:
$ mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j<N>
If deal.II was installed in, say, $HOME/local instead of your default install directory (such as /usr/local), simply specify the path to the installed deal.II by adding to the CMake call:
$ -DCMAKE_PREFIX_PATH=$HOME/local
If deal.II was compiled with SymEngine and CMake was run with -DENABLE_TESTING=1, you can optionally run the test suite with:
$ ctest
To be added.
- Arthur Bawin
- Joan Le Pouhaër
- Malo Le Scoul
- Marcin Stepien