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

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.

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

1.4. License

Sources should be published under a clearly-identified free software license.

  • License clearly stated

  • FLOSS license (FSF/OSI conformant)

  • SPDX identifiers used

  • REUSE compliant

  • LGPL v*

  • GPL v*

1.5. Documentation

  • Documentation exists

  • Easily browsable online

Documentation: docs.feelpp.org

1.6. API Compatibility

  • API changes documented

  • Semantic versioning used

  • Release policy defined

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

2.2. WP2

Topics: "ROM-DA: GEIM PBDW, …​", ROM: NIRB, "ROM: RB, POD, …​" Benchmarked in this WP

2.3. WP3

Topics: domain decomposition methods, algebraic multiphysics coupling Benchmarked in this WP

2.4. WP4

Topics: stochastic data assimilation: ensemble Benchmarked in this WP

2.5. WP5

Topics: Iterative methods Benchmarked in this WP

2.6. WP6

Topics: interface

2.7. WP7

Topics: Health, Environment, Energy, Physics, mini-apps 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

4. Partners

Lead Partner: Unistra, Inria Grenoble, CNRS

Consortium: Feel++ Consortium

5. Used by Applications

The following Exa-MA applications use Feel++:

Application Type Status

Discretization

Extended Mini App

Benchmark Ready

Distance

Mini App

Benchmark Ready

Nonlinear Compressive Reduced Basis

Extended Mini App

Planned

Reduced Basis

Extended Mini App

Benchmark Ready

Test I/O at large scale

Mini App

Planned

Fichera corner

Extended Mini App

Benchmark Ready