Skip to content

Release of v0.4 (Ganymede)

On our journey to Ikarus v1.0, we've taken another significant step forward. Explore the latest release, v0.4 (Ganymede). This release not only focuses on refactoring various interfaces but also introduces exciting features such as Python bindings, result evaluators, the Kirchhoff-Love shell element, added support for Clang 16, and more.

Python bindings

As mentioned in the (v0.3.md) of the v0.3 (Prometheus) release, Ikarus is a C++ library for finite element analysis. In this version, we've introduced Python bindings, allowing users to work seamlessly within Python while still using Ikarus' powerful C++ backend. These bindings are now available on (https://pypi.org/project/pyikarus/), making it easy to install Ikarus with pip install pyikarus. These Python bindings depend on other DUNE libraries because they are compiled just-in-time (JIT). The easiest way to use the Python bindings is therefore within the provided Docker images (https://hub.docker.com/r/ikarusproject/ikarus-dev) we provide. This addition aims to expand Ikarus's usage in academia for teaching purposes, providing a simpler interface for Python users. Now, Ikarus can thus be integrated with popular libraries like (https://www.tensorflow.org/) and (https://scipy.org/) for data-driven simulations.

!(https://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/Ganymede_receives_the_bowl_from_Hebe%2C_by_Peter_Paul_Rubens.jpg/1030px-Ganymede_receives_the_bowl_from_Hebe%2C_by_Peter_Paul_Rubens.jpg)

The Rape of Ganymede by Peter Paul Rubens

!(https://upload.wikimedia.org/wikipedia/commons/8/81/PIA24681-1041-Ganymede-JupiterMoon-Juno-20210607.jpg)

Ganymede photographed by Juno in 2021. Moon of Jupiter and largest moon in the solar system.

Finite element technology

While linear-elastic finite elements and geometrically non-linear elements based on automatic differentiation were already present in Ikarus, this release introduces a more explicit implementation of non-linear elements for increased efficiency. Post-processing capabilities have been enhanced with wrappers for evaluating results like Von-Mises stress, principal stresses, and other stress measures specific to different finite elements. Assemblers now allow the study of raw matrices and vectors before applying any boundary conditions. The release also integrates an interface for a material library, including material models like the St. Venant-Kirchhoff and a Neo-Hookean model. One can directly use these in the finite element analysis, even for plane stress problems, by utilizing a vanishing stress wrapper ((../../doxygen/html/a01321.html)). Improved control loggers enable static non-linear analysis, providing relevant information to users. Additionally, a non-linear Kirchhoff-Love shell element is now available for studying thin-walled structures.

Documentation

This release includes detailed documentation for all examples in ikarus-examples and adds (../../doxygen/html/index.html) class documentation. Each class and public function now have Doxygen comment blocks that provide comprehensive descriptions.

Miscellaneous

In addition to the mentioned features, some miscellaneous additions have been made. Changes in the directory structure and file naming now follow the convention of using only lowercase letters.

In addition, we've introduced Clang 16 support in this release, giving users the flexibility to choose their preferred compiler. Ikarus continues to support GCC 12, ensuring compatibility with multiple compilers.

Conferences

During 2023, Ikarus gained popularity and was presented at two conferences: the (https://iga2023.sciencesconf.org/) and the (https://dune-project.org/community/meetings/2023-09-usermeeting/). A snapshot from the IGA conference is shared, where Ikarus was presented alongside the dune-iga module.

!(../../auxiliaryImages/blogs/iga2023.jpg){width = "400"}

Ikarus presented at the 11th International Conference on Isogeometric Analysis (Alex (left) and Tarun(right))

What next?

The following are some key milestones that have been completed or are planned to be released as stepping stones to version 1.0.

Comments