Skip to content
Transonic flow around an airfoil

ryujin

A high-performance, high-order collocation-type finite element solver for conservation equations such as the compressible Navier-Stokes and Euler equations of gas dynamics.

A solver that is robust by design

  • Invariant-domain preserving

    The numerical solution stays in the set of admissible states of the underlying system at every time step. Crucial thermodynamic quantities remain physical, and stability does not depend on tuning parameters.

  • High-order convex limiting

    Convex limiting blends an invariant-domain preserving low-order update with a high-order update while enforcing local bounds. The result is high-order accurate in smooth regions and stays admissible at shocks.

  • Various equation modules

    Compressible Euler and Navier-Stokes with general and tabulated equations of state, shallow water, Euler-Poisson, and scalar conservation laws. The equation-specific parts sit behind a small interface, so further hyperbolic systems can be added.

  • GPU support

    The compute kernels run on GPUs through deal.II and Kokkos. One code base serves CPUs and accelerators, with no separate GPU port to maintain.

  • Parallel at every level

    Distributed-memory parallelism with MPI, thread parallelism, and explicit SIMD vectorization. The same executable runs on a laptop and on large clusters.

  • Open source

    Released under the Apache License 2.0 with LLVM Exception and hosted on GitHub. The numerical methods behind the code are documented in a decade of peer-reviewed publications.

Schlieren rendering of supersonic flow past a cylinder: a bow shock, two shear layers, and a turbulent vortex wake