
ryujin
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.

Video gallery
A selection of simulation results obtained with ryujin.
Full-resolution renderings of these and other simulations are available in the video archive, or on YouTube.
Compressible Euler equations with Jones-Wilkins-Lee equation of state
Transonic 2D flow around an Onera OAT15a airfoil at Mach 0.73
Supersonic Mach 3 flow around a cylinder, high resolution
Shallow water dam break simulation with realistic topography data
Supersonic Mach 3 flow around a cylinder
Double Mach reflection at Mach 10