/ryujin

High-performance high-order collocation-type finite-element scheme for solving hyperbolic conservation equations such as the compressible Navier-Stokes and Euler equations of gas dynamics

Primary LanguageC++OtherNOASSERTION

ryujin

Ryujin is 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. The solver is based on the convex limiting technique to ensure invariant domain preservation and uses the finite element library deal.II (website) and the vector class SIMD library. As such the solver maintains important physical invariants and is guaranteed to be stable without the use of ad-hoc tuning parameters.

Ryujin is freely available under the terms of the Apache License 2.0 with LLVM Exception. Part of the contributed source code, third-party dependencies and header libraries are covered by different open source licenses. For details consult COPYING.md. Contributions to the ryujin source code are governed by the Developer Certificate of Origin version 1.1; see CONTRIBUTING.md for details.

Modules

Ryujin features the following equation modules selectable by the following parameter flags:

  • equation = euler, an optimized solver module for the compressible Euler equations with polytropic equation of state.
  • equation = euler aeos, a generalized solver module for the compressible Euler equation with an arbitrary or tabulated equation of state.
  • equation = navier stokes, an optimized solver module for the compressible Navier-Stokes equations with polytropic equation of state, Newtonian fluid model, and Fourier's law for the heat flux.
  • equation = shallow water, a module for the shallow water equations.
  • equation = scalar conservation, a module for scalar conservation equations with user-supplied flux. The module features a greedy wave-speed estimate to maintain an invariant domain, a generic indicator based on the entropy-viscosity commutator technique with a general, entropy-like function, and a customizable convex limiter.

Resources

Videos

A number of simulation results can be found on this youtube channel.

References

If you use this software for an academic publication please consider citing the following references ([1], [3]):

@article {ryujin-2021-1,
  author = {Matthias Maier and Martin Kronbichler},
  title = {Efficient parallel 3D computation of the compressible Euler
    equations with an invariant-domain preserving second-order
    finite-element scheme},
  doi = {10.1145/3470637},
  url = {https://arxiv.org/abs/2007.00094},
  journal = {ACM Transactions on Parallel Computing},
  year = {2021},
  volume = {8},
  number = {3},
  pages = {16:1-30},
}

@article{ryujin-2021-3,
  author = {Jean-Luc Guermond and Martin Kronbichler and Matthias Maier and
    Bojan Popov and Ignacio Tomas},
  title = {On the implementation of a robust and efficient finite
    element-based parallel solver for the compressible Navier-stokes
    equations},
  doi = {10.1016/j.cma.2021.114250},
  url = {https://arxiv.org/abs/2106.02159},
  journal = {Computer Methods in Applied Mechanics and Engineering},
  year = {2022},
  volume = {389},
  pages = {114250},
}

Contact

For questions either open an issue, or contact Matthias Maier (maier@tamu.edu).

Developers

  • Martin Kronbichler (@kronbichler), University of Augsburg, Germany
  • Matthias Maier (@tamiko), Texas A&M University, TX, USA
  • Ignacio Tomas (@nachosaurus), Texas Tech University, TX, USA
  • Eric Tovar (@ejtovar), Los Alamos National Laboratory, USA

Contributors