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.