https://github.com/danieldoehring/paper-2025-perrk

Reproducibility Repository for the paper "Paired Explicit Relaxation Runge-Kutta Methods: Entropy Conservative/Stable High-Order Optimized Multirate Time Integration"

https://github.com/danieldoehring/paper-2025-perrk

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

computational-fluid-dynamics multirate-schemes runge-kutta
Last synced: 6 months ago · JSON representation

Repository

Reproducibility Repository for the paper "Paired Explicit Relaxation Runge-Kutta Methods: Entropy Conservative/Stable High-Order Optimized Multirate Time Integration"

Basic Info
  • Host: GitHub
  • Owner: DanielDoehring
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 14.6 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 3
Topics
computational-fluid-dynamics multirate-schemes runge-kutta
Created 9 months ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

paper-2025-perrk

License: MIT DOI

This repository contains information and code to reproduce the results presented in the article bibtex @online{doehring2025Paired title={Paired Explicit Relaxation Runge-Kutta Methods: Entropy-Conservative and Entropy-Stable High-Order Optimized Multirate Time Integration}, author={Doehring, Daniel and Ranocha, Hendrik and Torrilhon, Manuel}, year={2025}, eprint={2507.04991}, eprinttype={arxiv}, eprintclass={math.NA}, url={https://arxiv.org/abs/2507.04991}, journal={arXiv preprint arXiv:2507.04991}, doi={10.48550/arXiv.2507.04991} }

If you use the implementations provided here, please also cite this repository as bibtex @misc{doehring2025PERRK_ReproRepo, title={Reproducibility repository for "Paired Explicit Relaxation Runge-Kutta Methods: Entropy Conservative/Stable High-Order Optimized Multirate Time Integration"}, author={Doehring, Daniel and Ranocha, Hendrik and Torrilhon, Manuel}, year={2025}, howpublished={\url{https://github.com/DanielDoehring/paper-2025-perrk}}, doi={https://doi.org/10.5281/zenodo.15601890} }

Abstract

We present novel entropy conservative and entropy stable multirate Runge-Kutta methods based on Paired Explicit Runge-Kutta (P-ERK) schemes with relaxation for conservation laws and related systems of partial differential equations. Optimized schemes up to fourth-order of accuracy are derived and validated in terms of order of consistency, conservation of linear invariants, and entropy conservation/stability.

We demonstrate the effectiveness of these P-ERRK methods when combined with a high-order, entropy-conservative/stable discontinuous Galerkin spectral element method on unstructured meshes. The Paired Explicit Relaxation Runge-Kutta methods (P-ERRK) are readily implemented for partitioned semidiscretizations arising from problems with equation-based scale separation such as non-uniform meshes. We highlight that the relaxation approach acts as a time-limiting technique which improves the nonlinear stability and thus robustness of the multirate schemes.

The P-ERRK methods are applied to a range of problems, ranging from compressible Euler over compressible Navier-Stokes to the visco-resistive magnetohydrodynamics equations in two and three spatial dimensions. For each test case, we compare computational load and runtime to standalone relaxed Runge-Kutta methods which are outperformed by factors up to four. All results can be reproduced using a publicly available repository.

Reproducing the results

Installation

To download the code using git, use

bash git clone git@github.com:DanielDoehring/paper-2025-perrk.git

If you do not have git installed you can obtain a .zip and unpack it: bash wget https://github.com/DanielDoehring/paper-2025-perrk/archive/refs/heads/main.zip unzip main.zip mv mv paper-2025-perrk-main/ paper-2025-perrk

To instantiate the Julia environment execute the following two commands: bash cd paper-2025-perrk/ julia --project=. -e 'using Pkg; Pkg.instantiate()'

Note that the results are obtained using Julia 1.10.9, which is also set in the Manifest.toml. Thus, you might need to install the Julia 1.10.9 LTS release first and replace the julia calls from this README with /YOUR/PATH/TO/julia-1.10.9/bin/julia

Project initialization

If you installed Trixi.jl this way, you always have to start Julia with the --project flag set to your paper-2025-perrk directory, e.g., bash julia --project=. if already inside the paper-2025-perrk directory.

If you do not execute from the paper-2025-perrk directory, you have to call julia with bash julia --project=/YOUR/PATH/TO/paper-2025-perrk

Running the code

The scripts for validations and applications are located in the 3_PERRK_Methods, 4_Validation, and 5_Applications directory, respectively.

To execute them provide the respective path:

bash julia --project=. ./4_Validation/4_1_EntropyConservation/4_1_1_WeakBlastWave_Euler_MHD/elixir_euler_weak_blast_er.jl

For all cases in the 5_Applications directory the solution has been computed using a specific number of threads. To specify the number of threads the --threads flag needs to be given, i.e., bash julia --project=. --threads 6 ./5_Applications/5_3_NACA0012_AMR/elixir_euler_NACA0012airfoil_mach08.jl The number of threads used for the examples are given in the README.md in 5_Applications.

Authors

Note that the Trixi authors are listed separately here.

Disclaimer

Everything is provided as is and without warranty. Use at your own risk!

Owner

  • Name: Daniel Doehring
  • Login: DanielDoehring
  • Kind: user

Graduate/PhD Computational Engineering & Science student

GitHub Events

Total
  • Release event: 2
  • Public event: 1
  • Push event: 9
  • Create event: 2
Last Year
  • Release event: 2
  • Public event: 1
  • Push event: 9
  • Create event: 2