Implementation of PFASST (parallel full approximation scheme in space and time) algorithm in Nektar++. PFASST is a parallel-in-time algorithm based on both Parareal and SDC (spectral deferred correction method). Interested readers are referred to:
https://msp.org/camcos/2012/7-1/camcos-v7-n1-p04-s.pdf https://link.springer.com/article/10.1007/s10543-014-0517-x https://onlinelibrary.wiley.com/doi/epdf/10.1002/nla.2110 https://www.sciencedirect.com/sdfe/reader/pii/S0021999119309155/pdf
The proposed implementation re-use components developed for the Parareal driver and the SDC time-integration algorithm. Although multi-level PFASST algorithms have been suggested in the literature, the current implementation only assume two level (coarse/fine) as in the original Parareal method. The implementation of the PFASST driver follows the algorithms described in the reference mentioned above.
Additionally, while provision for both time and space coarsening have been provided. The scheme is currently being tested with time coarsening only.
Additionally the following changes have been made:
Polylib.cpphas been slightly tidy-up by removing unused and/or duplicate function declaration.
InterpExp1ToExp2has been removed from
Interpolator.cppand moved to
ophas been added as member variable
m_opacross the TimeIntegration class/subclasses.
- The Driver class and subclasses have been tidy-up.
The following test has been added:
Please suggest any people who would be appropriate to review your code.
Functions and classes, or changes to them, are documented. [ ] User guide/documentation is updated.
Changelog is updated.
Suitable tests added for new functionality.
Contributed code is correctly formatted. (See the contributing guidelines).
License added to any new files.
No extraneous files have been added (e.g. compiler output or test data files).