Announcing Elfel.jl: finite element programming the Julian way

The package is intended to facilitate construction of mixed methods. The library provides low-level building blocks rather than prepackaged procedures. In addition to the usual nodal bases, edge, face, and cell basis functions are supported. Finite element spaces may be combined arbitrarily. Arbitrary mesh topologies are supported by the MeshCore library. High performance is supported with consistent use of stack variables. Current limitations: only H1 and L2 elements are included at the moment. The implementation is proof-of-concept rather than production-ready.

Many thanks to Kristofer (@kristoffer.carlsson) and Fredrik (@fredrikekre). Their JuAFEM package and their views concerning Julia programming were very helpful.


This looks fairly similar to my concept ideas in Adapode.jl for making building blocks of finite element methods. Likewise, my package is designed to be modular. However, the meshing for Adapode is built on a Grassmann.jl style interface for global & local manifolds instead.