# 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:

the spectral radius of the iteration matrix (Fig. 1 in the above mentioned publication)

the stability domains of different configurations (Fig. 2)

stability with respect to the iteration number k (Fig. 3)

the dispersion relation (Fig. 4)

Results:

## Acoustic-advection example¶

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

convergence of FWSW-SDC with orders 3, 4, and 5 versus number of time steps (Fig. 5, left)

convergence rate of the FWSW-SDC iteration (Fig. 5, right)

the numerical solution of the acoustic-advection equation with multiscale initial data (Fig. 6)

Results:

## 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):