Achieving Algorithmic Resilience for Temporal Integration through Spectral Deferred Corrections

Ray Grout, Hemanth Kolla, Michael Minion, John Bell

Research output: Contribution to journalArticlepeer-review

5 Scopus Citations


Spectral deferred corrections (SDC) is an iterative approach for constructing higher-order-accurate numerical approximations of ordinary differential equations. SDC starts with an initial approximation of the solution defined at a set of Gaussian or spectral collocation nodes over a time interval and uses an iterative application of lower-order time discretizations applied to a correction equation to improve the solution at these nodes. Each deferred correction sweep increases the formal order of accuracy of the method up to the limit inherent in the accuracy defined by the collocation points. In this paper, we demonstrate that SDC is well suited to recovering from soft (transient) hardware faults in the data. A strategy where extra correction iterations are used to recover from soft errors and provide algorithmic resilience is proposed. Specifically, in this approach the iteration is continued until the residual (a measure of the error in the approximation) is small relative to the residual of the first correction iteration and changes slowly between successive iterations. We demonstrate the effectiveness of this strategy for both canonical test problems and a comprehensive situation involving a mature scientific application code that solves the reacting Navier-Stokes equations for combustion research.

Original languageAmerican English
Pages (from-to)25-50
Number of pages26
JournalCommunications in Applied Mathematics and Computational Science
Issue number1
StatePublished - 2017

NREL Publication Number

  • NREL/JA-2C00-68888


  • Combustion
  • Deferred correction
  • Resilience
  • SDC
  • Time integration


Dive into the research topics of 'Achieving Algorithmic Resilience for Temporal Integration through Spectral Deferred Corrections'. Together they form a unique fingerprint.

Cite this