Rodin
Modern C++20 finite element method and shape optimization framework.
What is Rodin?
Rodin is a lightweight and modular finite element framework which provides many of the associated functionalities that are needed when implementing shape and topology optimization algorithms. These functionalities range from refining and remeshing the underlying shape, to providing elegant mechanisms to specify and solve variational problems.

It is named after the French sculptor Auguste Rodin, considered the founder of modern sculpture.
Download and build
git clone --recursive https://github.com/carlos-brito-pacheco/rodin cd rodin mkdir build && cd build cmake .. make -j4
How does Rodin work?
To provide many of the functionalities, Rodin utilizes many low-level libraries such as:
Aside from wrapping most of these tools into uniform and well documented interfaces, Rodin also builds upon many of the already existing functionality to provide common features without the need to reimplement these yourself.
Where to start?
- New users: Start with the Installation guide and the First Steps tutorial
- Learn the concepts: Read about finite elements, finite element spaces, and variational formulations
- See examples: Browse the examples and tutorials including the Poisson equation and linear elasticity
- Visual showcase: Visit the Gallery for images and descriptions of simulations built with Rodin
- I/O and visualization: Learn how to export results using XDMF for ParaView visualization
Philosophy behind Rodin
From its inception, Rodin was built with a "batteries included, but screws not glued in" philosophy. We think that code should be well documented, readable, and stick very close to the mathematical notation it represents.
Development Status
The library is currently in very active and early development! Currently, some interfaces are likely to change. However, a lot of the functionality is already implemented with various extension points. Furthermore, there is a lot of code lacking documentation. Hence, contributors are always welcome! Currently it is mantained (and primarily used) by Carlos Brito-Pacheco.