A Solver Interface between Gridap.jl and Trilinos
Please login to view abstract download link
Solving large-scale, possibly ill-conditioned linear systems arising from finite element discretizations of partial differential equations on parallel computing architectures requires mature distributed-memory solver functionalities present in libraries such as Trilinos. While Trilinos is a scalable open-source library for solving large-scale linear systems written in C++, Gridap is a modern, expressive and efficient finite element framework written in the Julia programming language. We use Gridap to develop finite element method based simulations leading to large linear systems. To solve large-scale systems with Trilinos, we developed an interface between the two libraries. We present a seamless open-source interface between Gridap.jl and Trilinos. This interface enables research groups specializing in Gridap and Trilinos to combine their expertise, accelerating collaborative development of scalable finite element simulations. The implementation utilizes CxxWrap.jl to execute C++ binaries directly from the Julia environment. The parallel linear systems from GridapDistributed are assembled as Trilinos Tpetra objects. Tpetra is the parallel linear algebra framework within Trilinos, which also enables the use of Kokkos. This enables the seamless use of Trilinos' solver and preconditioner packages. In this talk, we showcase solvers from Belos and preconditioners from FROSch. This interface is designed for parallel programs executing over the Message Passing Interface (MPI) architecture. We demonstrate the efficacy and ease of use of this interface through various numerical tests on high-performance computing clusters, including strong and weak scaling tests.
