Bcube.jl

Bcube is a Julia library providing tools for the spatial discretization of partial differential equation(s) (PDE). It offers a high-level API to discretize linear or non-linear problems on unstructured mesh using continuous or discontinuous finite elements (FEM - DG).

The main features are:

  • high-level api : a(u, v) = ∫(η * ∇(u) ⋅ ∇(v))dΩ
  • 1D, 2D, 3D unstructured mesh with high-order geometrical elements (gmsh format)
  • Lagrange (continuous & discontinuous) and Taylor (discontinuous) finite elements (line, quad, tri, hexa, penta)
  • arbitrary order for hypercube Lagrange elements

Commented tutorials as well as various examples can be found in the dedicated project BcubeTutorials.jl.

Installation

Bcube can be added to your Julia environment with this simple line :

pkg> add https://github.com/bcube-project/Bcube.jl

Alternatives

Numerous FEM-DG Julia packages are available, here is a non-exhaustive list;

Contribution

Any contribution(s) and/or remark(s) are welcome! Don't hesitate to open an issue to ask a question or signal a bug. PRs improving the code (new features, new elements, fixing bugs, ...) will be greatly appreciated.

Helmholtz equationPhase field solidificationLinear transport equation

Authors

Ghislain Blanchard, Lokman Bennani and Maxime Bouyges