Juliacon 2024

libtrixi: Serving legacy Fortran codes with simulations in Julia
07-12, 16:02–16:24 (Europe/Amsterdam), Function (4.1)

With libtrixi we present a blueprint for connecting established research codes to modern software packages written in Julia without sacrificing performance. Specifically, libtrixi provides an API to Trixi.jl, a Julia package for adaptive numerical simulations of conservation laws.


In computational fluid dynamics a broad range of spatial and temporal length scales has to be considered, rendering finely resolved computational grids indispensable and calling for high-performance computing techniques. Consequently, many simulation libraries are written in traditional HPC languages, which offer high performance, but are complex to learn and maintain. Julia often acts as a glue code to enable the reuse of such libraries. With libtrixi, we reverse this workflow: The computational fluid dynamics (CFD) solver Trixi.jl is controlled from a main program written in C, C++, or Fortran. This allows one to take advantage of Julia's rapid prototyping capabilities and its performance. In this talk, we will provide some insights into the Julia C API and the PackageCompiler.jl project. We will show numerical applications in earth system modeling, controlled by a Fortran code and running in parallel using MPI.

See also:

Studies in Mathematics and Computer Science, University of Bonn, Germany
Dissertation, Institute for Numerical Simulation, University of Bonn, Germany
Research Assistant, Institute of Propulsion Technology, German Aerospace Center (DLR)
Postdoctoral Researcher, Division of Mathematics, University of Cologne, Germany