Get Feel++ Programming Environment
Difficulty: |
We present here the Feel++ toolchain with both required and suggested tools to either compile Feel++ or use with Feel++.
1. Compilers
Feel++ uses C++14 compilers such as GCC6 and Clang (\(\geq 4\)).
It is mandatory not only to have a C++14 compiler but also C++14 stantard library. |
There used to be a major compatibility issue between llvm/clang and GCC compilers since GCC5 released the ABI tag which makes it impossible to compile Feel++ using llvm/clang with GCC5 or GCC6 standard libraries for a time. Please see the following table to understand the working C++ compiler / C++ standard library combinations. |
Compiler | Standard Library |
---|---|
clang (3.6, 3.7, 3.8) |
libstdc++ 4.9 |
clang |
libc++ (corresponding clang version) |
clang (3.8(requires patches), 3.9) |
libstdc++ 6 |
GCC 6 |
libstdc++ 6 |
GCC 6.2.1 seems to be problematic on debian/testing — the tests in the testsuite fail. — GCC 6.3.1 or GCC 6.2.0 don’t have any problems. |
2. Required tools and libraries
Other than C++14 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 | Maximum Version | Notes |
---|---|---|---|
CMake |
3.0 |
— |
|
MPI |
— |
— |
openmpi or mpich |
Boost |
1.61 |
1.63 |
3. Recommended libraries
Here is a list of libraries that we recommend to use jointly with Feel++.
Library | Minimum Version | Maximum Version | Notes |
---|---|---|---|
HDF5 |
1.8.6 |
1.8.16 |
Enables high performance I/O; Enables MED Support; Be careful on Debian/sid a more recent version of HDF5 breaks MED support |
PETSc |
3.2 |
3.8.2 |
Last is best; a requirement for parallel and high performance computing |
SLEPc |
3.2 |
3.8.1 |
last is best; a requirement for eigenvalue problem; depends on PETSc |
Gmsh |
2.8.7 |
2.16 |
last is best; a requirement if you want to be able to read many file formats; HDF5 version in Debian/sid currently breaks MED format support. |
Superlu |
superlu and superlu_dist |
||
Suitesparse |
umfpack (colamd,amd) |
||
OpenTURNS |
2.0 |
Uncertainty quantification |
|
Python Libs |
3.0 |
Python 3 libraries |
|
Python Sympy |
1.1 |
Python 3 module sympy |
4. 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.
5. 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 |