Modern C++17 finite element method and shape optimization framework..
Rodin is a lightweight and modular shape optimization 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.
git clone --recursive https://github.com/carlos-brito-pacheco/rodin cd rodin mkdir build && cd build cmake .. make -j4
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.
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.
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.