Events
May
2024

Utopia - a performance-portable C++ library for non-linear algebra

People

 

Zulian P.

(Contributor)

Kapanicakova A.

(Contributor)

Nestola M.

(Contributor)

Krause R.

(Contributor)

Krause R.

(Contributor)

Abstract

Utopia is a C++ embedded domain specific language designed for parallel non-linear solution strategies. Utopia combines advantages of high-level programming interfaces with the advantages of scripting languages. On the one hand, it allows using high-level abstractions while providing access to the native low-level data-structures. On the other hand, it facilitates expressing complex numerical procedures by means of few lines of code. This is achieved by separating the model from the computation, thus allowing us to keep the implementation details hidden from the code of applications such as non-linear solution algorithms and finite element assembly. This separation is realized by using C++ meta-programming and particular evaluation strategies which allow mapping an abstract representation of the computation to the actual code computing the result.

Additional information

Licence
The software is realized with NO WARRANTY and it is licenzed under BSD 3-Clause license (https://opensource.org/licenses/BSD-3-Clause)
Repository
https://bitbucket.org/zulianp/utopia
Related publications