Feel++

System requirements

Compilers

{feelpp} uses C++14 compilers such as GCC6 and Clang. Currently it is not mandatory to have a C++14 stantard library but it will be soon.

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 {feelpp} 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.

Table 1. Table C++ compilers and standard libraries 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.

Required tools and libraries

Other than C++14 compilers, {feelpp} 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.

Table 2. Table required tools to compile Feel++
Name Minimum Version Maximum Version Notes

CMake

3.0

 — 

MPI

 — 

 — 

openmpi or mpich

Boost

1.55

1.63

Here is a list of libraries that we recommend to use jointly with Feel++.

Table 3. Table optional external libraries
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.7

Last is best; a requirement for parallel and high performance computing

SLEPc

3.2

3.7

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

Here is a list of tools that we recommend to use jointly with Feel++.

Table 4. Table of recommended tools
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

Note that all these packages are available under Debian GNU/Linux and Ubuntu. Once you have installed those dependencies, you can go to Compiling.

Suggested tools

Here is a list of tools that we suggest to use jointly with Feel++.

Table 5. Table of suggested tools
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