Fast-Wave-Slow-Wave SDC

In this project, we explore semi-implicit spectral deferred corrections (SISDC) in which the stiff, fast dynamics correspond to fast propagating waves. We study the performance of the method compared to standard integrators like RK-IMEX or DIRK schemes and analyze the convergence properties for scalar test problems. This project contains the code for the publication Spectral deferred corrections with fast-wave-slow-wave splitting of pySDC v2, while the original code can be found under The fast-wave-slow-wave release, v2. Note that due to the long runtime, not all results are generated via CI. For the Boussinesq example and the convergence test of the acoustic-advection equation, only the visualization (and therefore the existence of the data files) is tested. We omit the codes in this documentation, since they are rather long and slightly complex.

Theoretical results

Here, we review FWSW-SDC from two different viewpoints: as a split method with a fixed order set by a fixed number of iterations K for a sufficiently large number of nodes M, or as an iterative solver for the collocation problem where iterations are performed until the norm of the residual reaches a prescribed tolerance. We investigate fwsw-SDC from both viewpoints for the scalar test problem and analyze:

Results:

../_images/stifflimit-specrad.png ../_images/stifflimit-norm.png ../_images/stability-K3-M3.png ../_images/stab_vs_k_resolved.png ../_images/stab_vs_k_unresolved.png ../_images/phase-K3-M3.png ../_images/ampfactor-K3-M3.png

Acoustic-advection example

In a first more complex example, we consider the 1D acoustic-advection example. We show:

Results:

../_images/convergence.png ../_images/iteration.png ../_images/multiscale-K2-M2.png

Boussinesq example

In a second, even more complex example, we test FWSW-SDC for the 2D Boussinesq equation. In particular, we are interested in the number of GMRES iterations each time integrator needs to achieve a certain error.

Results (generated with plotgmrescounter_boussinesq.py):

../_images/boussinesq.png