I would like to start this thread for Ferrite.jl release announcements. However, since this package have not been properly announced in this forum to begin with, so I guess I should do that first.
Ferrite.jl is a library for finite element analysis in Julia. It has been around since 2016, but it dwelled in the shadows of unregisteredness back then under the name JuAFEM.jl. Around two years ago, after gaining some developers and users, we changed the name, and finally registered it.
Ferrite.jl shares some similarities (at least in spirit) with the C++ library deal.ii. It provides the “puzzle pieces” of a typical FEM program, for example:
- Grid/mesh functionality
- Degree of freedom distribution
- Finite element “kernel” functionality (evaluation of values, gradients, etc, of shape functions, numerical quadrature, …)
- Global assembly routines
- Constraint and boundary condition handling (e.g.Dirichlet, Neumann, and periodic boundary conditions, general affine constraints)
- Postprocessing (evaluating primary and secondary quantities, export data)
One of the core ideas of Ferrite.jl is that you can pick and chose which pieces you use, and which ones your want to bring yourself. This means that Ferrite.jl composes nicely with other packages in the Julia ecosystem. For example, BlockArrays.jl for blocked local and/or global arrays, DifferentialEquations.jl/SciML stack for time integration, Tensors.jl for automatic differentiation and material modeling, ForwardDiff.jl for computing element tangents, etc.
For a more detailed overview you can have a look at my presentation from the Ferrite.jl User & Developer Conference that we organized in September of 2022 (see the program for other interesting presentations).
The documentation include a bunch of examples which showcases how Ferrite.jl can be used, and how it can be combined with other parts of the ecosystem.
If you have any questions about Ferrite.jl, a bunch of users and developers are hanging out in the
#ferrite-fem channel on the Julia slack workspace and we are happy to help you out!
Since about a year (actually, exactly one year on the day) we have recorded changes in a CHANGELOG* and now include the changes for releases 0.3.2 to 0.3.11. If you are interested in what we have been working on, please scroll through it! I personally think that a lot of cools tuff have been added over the last year, and there are many exciting things still in the works.
As I mentioned in the beginning, this thread will be used to post future release announcements as well, so if you are curious, feel free to follow along!
*Sidenote, but I wich this is something more packages did. Ferrite.jl uses the keep a changelog format, which I find quite nice. It takes a bit getting used to adding a note in the changelog for changes, but it is very valuable for consumers of your package!