implementations.convergence_controller_classes.hotrod module

class HotRod(controller, params, description, **kwargs)[source]

Bases: ConvergenceController

Class that incorporates the Hot Rod detector [1] for soft faults. Based on comparing two estimates of the local error.

Default control order is -40.

See for the reference: [1]: Lightweight and Accurate Silent Data Corruption Detection in Ordinary Differential Equation Solvers, Guhur et al. 2016, Springer. DOI: https://doi.org/10.1007/978-3-319-43659-3_47

check_parameters(controller, params, description, **kwargs)[source]

Check whether parameters are compatible with whatever assumptions went into the step size functions etc.

Parameters:
  • controller (pySDC.Controller) – The controller

  • params (dict) – The params passed for this specific convergence controller

  • description (dict) – The description object used to instantiate the controller

Returns:

Whether the parameters are compatible str: Error message

Return type:

bool

dependencies(controller, description, **kwargs)[source]

Load the dependencies of Hot Rod, which are the two error estimators

Parameters:
  • controller (pySDC.Controller) – The controller

  • description (dict) – The description object used to instantiate the controller

Returns:

None

determine_restart(controller, S, MS, **kwargs)[source]

Check if the difference between the error estimates exceeds the allowed tolerance

Parameters:
  • controller (pySDC.Controller) – The controller

  • S (pySDC.Step) – The current step

  • MS (list) – List of steps

Returns:

None

post_iteration_processing(controller, S, **kwargs)[source]

Throw away the final sweep to match the error estimates.

Parameters:
  • controller (pySDC.Controller) – The controller

  • S (pySDC.Step) – The current step

Returns:

None

setup(controller, params, description, **kwargs)[source]

Setup default values for crucial parameters.

Parameters:
  • controller (pySDC.Controller) – The controller

  • params (dict) – The params passed for this specific convergence controller

  • description (dict) – The description object used to instantiate the controller

Returns:

The updated params

Return type:

dict