A simple finite element toolbox written in Julia.


Ferrite is a finite element toolbox that provides functionalities to implement finite element analysis in Julia. The aim is to be general and to keep mathematical abstractions. The main functionalities of the package include:

  • Facilitate integration using different quadrature rules.
  • Define different finite element interpolations.
  • Evaluate shape functions, derivatives of shape functions etc. for the different interpolations and quadrature rules.
  • Evaluate functions and derivatives in the finite element space.
  • Generate simple grids.
  • Export grids and solutions to VTK.

The best way to get started with Ferrite is to look at the documented examples.


Ferrite is still under development. If you find a bug, or have ideas for improvements, feel free to open an issue or make a pull request on the Ferrite GitHub page.


You can install Ferrite from the Pkg REPL (press ] in the Julia REPL to enter pkg> mode):

pkg> add Ferrite

Alternative installation method:

julia> import Pkg; Pkg.add("Ferrite")

To load the package, use

using Ferrite

Debugging Information

There is a debug mode to aid the development of new algorithms in Ferrite, as well as to help tracking down bugs. It can be turned on via

using Ferrite

followed by restarting the Julia process. It can be turned off again by calling

using Ferrite

also followed by restarting the Julia process.