/basix

FEniCS finite element basis evaluation library

Primary LanguageC++MIT LicenseMIT

Basix

Basix CI

Basix is a finite element definition and tabulation runtime library. Basix allows users to:

  • evaluate finite element basis functions and their derivatives at a set of points;
  • access geometric and topological information about reference cells;
  • apply push forward and pull back operations to map data between a reference cell and a physical cell;
  • permute and transform DOFs to allow higher-order elements to be use on arbitrary meshes; and
  • interpolate into a finite element space and between finite element spaces.

Basix includes a range of built-in elements, and also allows the user to define their own custom elements.

Basix is one of the components of FEniCSx, alongside UFL, FFCx, and DOLFINx.

Installing Basix

To install the latest stable version of Basix from pypi.org:

pip install fenics-basix

We currently build binary wheels for Linux and macOS x86-64 architectures.

To install the main (development) branch of Basix:

pip install git+https://github.com/FEniCS/basix.git

For advanced installation instructions see the detailed install instructions

Documentation

Documentation of Basix can be found at https://docs.fenicsproject.org/basix/main/.

Support

If you find a bug in Basix, you can report it on the GitHub issue tracker.

Questions about using Basix can be asked on the FEniCS discourse group.

Contributing

Information about how to contribute to Basix can be found here.

Supported elements

Interval

In Basix, the sub-entities of the reference interval are numbered as follows:

The numbering of a reference interval

The following elements are supported on an interval:

Triangle

In Basix, the sub-entities of the reference triangle are numbered as follows:

The numbering of a reference triangle

The following elements are supported on a triangle:

Quadrilateral

In Basix, the sub-entities of the reference quadrilateral are numbered as follows:

The numbering of a reference quadrilateral

The following elements are supported on a quadrilateral:

Tetrahedron

In Basix, the sub-entities of the reference tetrahedron are numbered as follows:

The numbering of a reference tetrahedron

The following elements are supported on a tetrahedron:

Hexahedron

In Basix, the sub-entities of the reference hexahedron are numbered as follows:

The numbering of a reference hexahedron

The following elements are supported on a hexahedron:

Prism

In Basix, the sub-entities of the reference prism are numbered as follows:

The numbering of a reference prism

The following elements are supported on a prism:

Pyramid

In Basix, the sub-entities of the reference pyramid are numbered as follows:

The numbering of a reference pyramid

The following elements are supported on a pyramid: