Skip to content

benchmark00_heat_equation

BenMql edited this page Oct 17, 2024 · 5 revisions

Benchmark00: the Heat equation

The accuracy of the Ascher-Ruuth-Spiteri IMEX Runge-Kutta schemes is investigated on a simple example with an analytic solution: the heat equation. When running the code, the RK scheme is selected by parameter 13 in coral.parameters.in. For this benchmark, all necessary files for preparing the initial condition, running the code, and analyzing the output are located in $CORAL/etc/benchmarks/00_heat_equation.

We march in time similar, uncoupled diffusion equations for three scalar fields u, v, and w, subjected to different boundary conditions (all combinations of Dirichlet and Neuman). The initial condition are prepared using generate_initial_condition.py.

We let the code run for a few timesteps, outputting vertical profiles every 10 steps. For each Runge-Kutta algorithm (ARS-111, ARS-222, and ARS-443) and a collection of time-step sizes $\delta t$, the L2 norm of the error is computed between two consecutive profiles. As expected, the error scales as $(\delta t)^2$ for ARS-111, $(\delta t)^3$ for ARS-222 and $(\delta t)^4$ for ARS-443.

accuracy of Ascher-Ruuth-Spiteri RK schemes