Get Feel++ Programming Environment
Difficulty: advanced! |
We present here the Feel++ toolchain with both required and suggested tools to either compile Feel++ or use with Feel++.
1. System Environments
Feel++ is compiled and tested on various systems:
Flavor |
Version |
Compiler |
Notes |
Ubuntu |
20.04 |
clang |
Docker images and packages available |
Ubuntu |
22.04 |
clang |
Docker images and packages available |
Ubuntu |
22.10 |
clang |
Scheduled build once per week |
Debian |
11 |
clang |
Docker images and packages available |
Debian |
testing |
clang |
Scheduled build once per week |
Debian |
unstable |
clang |
Scheduled build once per week |
Fedora |
36 |
clang |
Scheduled build once per week |
Fedora |
37 |
clang |
Scheduled build once per week |
2. Compilers
Feel++ uses C++17 compilers such as GCC8 and Clang (\(\geq 5\)).
It is mandatory not only to have a C++17 compiler but also C++ stantard library compatible with C++17 We don’t use yet C++17 standard library features |
Compiler |
Minimal Version |
Recommended Version |
Standard Library |
Clang++ |
6 |
>= 9 |
libstdc++ 7 |
Clang++ |
6 |
>= 9 |
libc++ (corresponding clang version) |
G++ |
8 |
>=11 |
libstdc++ 7 |
Clang++ is the preferred compiler by far for Feel++, it compiles much faster and use far less memory than G++ |
A few applications are not built with GCC, GCC ICEs (Internal Compiler Error) on them.
|
3. Required tools and libraries
Other than C++17 compilers, Feel++ requires only a few tools and libraries, namely CMake, Boost C++ libraries and an MPI implementation such as open-mpi or mpich. The table below provides information regarding the minimum and maximum version supported. A — means it has not necessarily been tested with the latest version but we do not expect any issues. Note that for MPI, an implementation with MPI-IO support would be best.
Name | Minimum Version | Recommended Version | Maximum Version | Notes |
---|---|---|---|---|
3.13.0 |
>= 3.21 |
— |
||
MPI |
— |
— |
— |
|
1.61 |
>= 1.70 |
— |
Boost C++ libraries |
|
3.8 |
>= 3.8 |
— |
Version 2 has never been tested |
4. Recommended libraries
Here is a list of libraries that we recommend to use jointly with Feel++.
Library | Minimum Version | Maximum Version | Notes |
---|---|---|---|
1.8.6 |
— |
||
3.5 |
— |
We strongly recommand to install PETSc with MUMPS packages. Others packages like Suitesparse, Trilinos/ML, Boomeramg can be appreciable. |
|
3.5 |
— |
Depends on PETSc |
|
2.8.7 |
— |
||
3.0 |
|||
1.1 |
Python 3 module sympy |
5. Recommended tools
Here is a list of tools that we recommend to use jointly with Feel++.
Tool | License | Notes |
---|---|---|
Computer Aided Design |
||
Gmsh |
Open Source |
|
Mesh Generation |
||
Gmsh |
Open Source |
|
MeshGems |
Commercial |
|
Post-Processing |
||
Paraview |
Open Source |
|
Ensight |
Commercial |
|
Octave |
Open Source |
|
Gmsh |
Open Source |
|
Scripting Languages |
||
Python |
Open Source |
Python 3 interpreter |
Note that all these packages are available under Debian GNU/Linux and Ubuntu. Once you have installed those dependencies, you can go to Compiling.
6. Suggested tools
Here is a list of tools that we suggest to use jointly with Feel++.
Tool | License | Notes |
---|---|---|
Computer Aided Design (CAD) |
||
Freecad |
Open Source |
|
Salome |
Open Source |
HDF5 version in Debian/sid currently breaks MED format support. |
Modeling, Compilation and Simulation Environment |
||
Open Modelica |
Open Source |
|
Debugging and Profiling |
||
Google perftools |
Open Source |
|
Valgrind |
Open Source |