Feel++
Feel is an open-source, high-performance C framework for solving complex PDE and ODE-based mathematical models using advanced Galerkin methods (finite element, discontinuous Galerkin, and spectral methods) and efficient reduced-order modeling (ROM) techniques, including Reduced Basis (RB), Proper Orthogonal Decomposition (POD), and Empirical Interpolation Methods (EIM). It features specialized application toolboxes (CFD, CSM, FSI, thermoelectric, Maxwell), modern parallel computing with seamless Python integration (Pybind11), and extensive DevOps support (CI/CD, benchmarking, and containers). Feel++ is used in academia and industry for multiphysics simulations, inverse problems, uncertainty quantification, data assimilation, and machine learning applications.
Overview
Repository
License
- OSS
LGPL v*,
- OSS
GPL v*
Documentation
Discussion
Slack (feelpp.slack.com), GitHub Discussions (github.com/feelpp/discussions)__
1. Criteria Evaluation
1.1. Packaging
Software should be packaged (preferably using Spack or Guix package formats) and published in public repositories.
-
Packages exist
-
Available in Spack
-
Available in Guix-HPC
-
Docker image available
-
Apptainer/Singularity available
-
Spack: github.com/numpex/spack.numpex/blob/main/packages/feelpp/package.py
-
Guix: gitlab.inria.fr/numpex-pc5/wp3/guix-hpc/-/blob/feelpp/guix-hpc/packages/math.scm?ref_type=heads
1.2. Testing & CI/CD
Software should include validation tests triggered through automated mechanisms.
-
Unit tests exist
-
Continuous Integration configured
-
CI runs on each release
-
Benchmarking tests exist
1.3. Repository & Contributions
-
Public source repository available
-
Supports contributions via pull requests
Repository: github.com/feelpp/feelpp
2. Work Packages
This framework is involved in the following work packages:
2.1. WP1
Topics: unstructured mesh, mesh adaptation, cG, dG/hdG, parallel in time, multiphysics coupling, multiscale coupling, inhouse, interface, finite element, spectral element Benchmarked in this WP
3. Technical Details
Languages: C17, Python, C20, C++
Parallelism: MPI, Parallelism - C17 and after, Task based - C
Data Formats: Json, YAML, HDF5, Data-management system, VTK, in-house format, VTK, Ensight, Gmsh and asssociated formats
Resilience: Checkpoint restart