Skip to content

Reproducibility repository for the paper "Multirate Time-Integration based on Dynamic ODE Partitioning through Adaptively Refined Meshes for Compressible Fluid Dynamics"

License

Notifications You must be signed in to change notification settings

trixi-framework/paper-2024-amr-paired-rk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multirate Time-Integration based on Dynamic ODE Partitioning through Adaptively Refined Meshes for Compressible Fluid Dynamics

License: MIT DOI

This repository contains information and code to reproduce the results presented in the article

@online{doehring2024multirate,
  title={Multirate Time-Integration based on Dynamic ODE Partitioning
         through Adaptively Refined Meshes for Compressible Fluid Dynamics},
  author={Doehring, Daniel and Schlottke-Lakemper, Michael and Gassner, Gregor J.
          and Torrilhon, Manuel},
  year={2024},
  eprint={2403.05144},
  eprinttype={arxiv},
  eprintclass={math.NA},
  url={https://arxiv.org/abs/2403.05144},
  journal={arXiv preprint arXiv:2402.12140},
  doi={10.48550/arXiv.2403.05144}
}

If you find these results useful, please cite the article mentioned above. If you use the implementations provided here, please also cite this repository as

@misc{doehring2024multirateRepro,
  title={Reproducibility repository for "{M}ultirate Time-Integration based on
         Dynamic ODE Partitioning through Adaptively Refined Meshes for
         Compressible Fluid Dynamics"},
  author={Doehring, Daniel and Schlottke-Lakemper, Michael and Gassner, Gregor J.
          and Torrilhon, Manuel},
  year={2024},
  howpublished={\url{https://github.com/trixi-framework/paper-2024-amr-paired-rk}},
  doi={https://doi.org/10.5281/zenodo.10792779}
}

Abstract

In this paper, we apply the Paired-Explicit Runge-Kutta (P-ERK) schemes by Vermeire et. al. [1,2] to dynamically partitioned systems arising from adaptive mesh refinement. The P-ERK schemes enable multirate time-integration with no changes in the spatial discretization methodology, making them readily implementable in existing codes that employ a method-of-lines approach.

We show that speedup compared to a range of state of the art Runge-Kutta methods can be realized, despite additional overhead due to the dynamic re-assignment of flagging variables and restricting nonlinear stability properties. The effectiveness of the approach is demonstrated for a range of simulation setups for viscous and inviscid convection-dominated compressible flows for which we provide a reproducibility repository.

In addition, we perform a thorough investigation of the nonlinear stability properties of the Paired-Explicit Runge-Kutta schemes regarding limitations due to the violation of monotonicity properties of the underlying spatial discretization. Furthermore, we present a novel approach for estimating the relevant eigenvalues of large Jacobians required for the optimization of stability polynomials.

Reproducing the results

Installation

To download the code using git, use

git clone git@github.com:trixi-framework/paper-2024-amr-paired-rk.git

If you do not have git installed you can obtain a .zip and unpack it:

wget https://github.com/trixi-framework/paper-2024-amr-paired-rk/archive/main.zip
unzip paper-2024-amr-paired-rk.zip

To instantiate the environment execute the following two commands:

cd paper-2024-amr-paired-rk/elixirs
julia --project=. -e 'using Pkg; Pkg.instantiate()'

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

Project initialization

If you installed Trixi.jl this way, you always have to start Julia with the --project flag set to your elixirs directory, e.g.,

julia --project=.

if already inside the elixirs directory.

If you do not execute from the paper-2024-amr-paired-rk/elixirs/ directory, you have to call julia with

julia --project=/YOUR/PATH/TO/paper-2024-amr-paired-rk/elixirs/

Running the code

The scripts for validations and applications are located in the elixirs directory.

To execute them provide the respective path:

julia --project=. ./sec5_validation/error_comparison/PERK2_3.jl

For all cases in the 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 specified, i.e.,

julia --project=. --threads 8 ./sec7_applications/sec_7.1_hyperbolic_parabolic/doubly_periodic_shear_layer/PERK3_3_4_7.jl

The precise number of threads for the different cases is given in elixirs/sec7_applications/README.md.

Authors

Note that the Trixi authors are listed separately here.

Disclaimer

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

About

Reproducibility repository for the paper "Multirate Time-Integration based on Dynamic ODE Partitioning through Adaptively Refined Meshes for Compressible Fluid Dynamics"

Topics

Resources

License

Stars

Watchers

Forks

Languages