All Projects → FEniCS → basix

FEniCS / basix

Licence: MIT license
FEniCS finite element basis evaluation library

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to basix

Laghos
High-order Lagrangian Hydrodynamics Miniapp
Stars: ✭ 131 (+403.85%)
Mutual labels:  finite-elements, high-order
raccoon
Massively parallel FEM code for phase-field for fracture by Dolbow Lab at Duke University
Stars: ✭ 21 (-19.23%)
Mutual labels:  finite-elements
Polyfem
A polyvalent C++ FEM library
Stars: ✭ 147 (+465.38%)
Mutual labels:  finite-elements
AsFem
A Simple Finite Element Method program (AsFem)
Stars: ✭ 108 (+315.38%)
Mutual labels:  finite-elements
Ngsolve
Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily.
Stars: ✭ 171 (+557.69%)
Mutual labels:  finite-elements
Gimli
Geophysical Inversion and Modeling Library 🌍
Stars: ✭ 156 (+500%)
Mutual labels:  finite-elements
Solidspy
2D-Finite Element Analysis with Python
Stars: ✭ 142 (+446.15%)
Mutual labels:  finite-elements
FreeFem-modules
A collection of mathematically validated modules (EDP) for FreeFEM
Stars: ✭ 28 (+7.69%)
Mutual labels:  finite-elements
calfem-matlab
CALFEM - a finite element toolbox for MATLAB
Stars: ✭ 53 (+103.85%)
Mutual labels:  finite-elements
FinEtools.jl
Finite Element tools in Julia
Stars: ✭ 126 (+384.62%)
Mutual labels:  finite-elements
fem
Notes on finite element method
Stars: ✭ 20 (-23.08%)
Mutual labels:  finite-elements
Ibamr
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Stars: ✭ 196 (+653.85%)
Mutual labels:  finite-elements
RBniCS
RBniCS - reduced order modelling in FEniCS
Stars: ✭ 5 (-80.77%)
Mutual labels:  finite-elements
PSyclone
Domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran
Stars: ✭ 67 (+157.69%)
Mutual labels:  finite-elements
Feelpp
💎 Feel++: Finite Element Embedded Language and Library in C++
Stars: ✭ 229 (+780.77%)
Mutual labels:  finite-elements
Sparselizard
C++ FEM library | user-friendly | multi-physics | hp-adaptive
Stars: ✭ 145 (+457.69%)
Mutual labels:  finite-elements
Tensors.jl
Efficient computations with symmetric and non-symmetric tensors with support for automatic differentiation.
Stars: ✭ 142 (+446.15%)
Mutual labels:  finite-elements
FreeFem-doc
FreeFEM user documentation
Stars: ✭ 98 (+276.92%)
Mutual labels:  finite-elements
MinimalFem
podgorskiy.com/spblog/304/writing-a-fem-solver-in-less-the-180-lines-of-code
Stars: ✭ 23 (-11.54%)
Mutual labels:  finite-elements
FreeFem-website
FreeFEM website
Stars: ✭ 13 (-50%)
Mutual labels:  finite-elements

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 Basix:

pip install .

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:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].