RDC: Rational Deferred Corrections

In this project, we integrate the rational deferred correction (RDC) method by Guettel & Klein from this paper. This is done by deriving from the equidistant collocation class, but replacing Scipy’s standard BarycentricInterpolator with a custom MyBarycentricInterpolator, where the blended nodes are used. The rest is standard pySDC and all features are available.

Testing RDC convergence

In a first test we try to reproduce parts of Figure 4.5 (left) of the original paper. We compute a high-resolution reference for Van der Pol’s oscillator with SDC, see vanderpol_reference.py. Then, for RDC we use d=15 for the blending parameter and vary the number of maximum iterations from 1 to 10. The results can be found in vanderpol_error_test.py

Multi-level RDC and PFASST with RDC

The obvious next step is to try the multi-level variant of RDC as well as a PFASST-version of RDC. Both are not straightforward and it seems that only for smaller numbers of nodes multi-level RDC does actually converge, at least if collocation-based coarsening is used. Yet, in vanderpol_MLSDC_PFASST_test.py we show one example where the errors as well as the mean number of iterations look fine. Note that we use very aggressive node coarsening here, going from 20 to 2 nodes.