Template Class TimeoutIntegrator

Class Documentation

template<typename Integrator>
class TimeoutIntegrator

Timeout-enabled integration wrapper.

This class provides timeout protection for any integrator by wrapping the integration call in an async operation with configurable timeout.

Features:

  • Configurable timeout duration

  • Progress monitoring with callbacks

  • Detailed result information

  • Exception vs return value error handling

  • Compatible with all integrator types

Template Parameters:

Integrator – The integrator type to wrap

Public Types

using integrator_type = Integrator
using state_type = typename Integrator::state_type
using time_type = typename Integrator::time_type

Public Functions

inline explicit TimeoutIntegrator(Integrator integrator, TimeoutConfig config = {})

Construct timeout integrator with an existing integrator.

Parameters:
  • integrator – The integrator to wrap (moved)

  • config – Timeout configuration

template<typename ...Args>
inline explicit TimeoutIntegrator(TimeoutConfig config, Args&&... args)

Construct timeout integrator with integrator parameters.

Parameters:
  • config – Timeout configuration

  • args – Arguments forwarded to integrator constructor

inline IntegrationResult integrate_with_timeout(state_type &state, time_type dt, time_type end_time)

Perform timeout-protected integration.

Parameters:
  • state – State vector to integrate (modified in-place)

  • dt – Time step size

  • end_time – Final integration time

Returns:

Integration result with timing and success information

inline bool integrate_with_timeout_simple(state_type &state, time_type dt, time_type end_time, std::chrono::milliseconds timeout = std::chrono::milliseconds{0})

Simple timeout integration (backwards compatibility)

Parameters:
  • state – State vector to integrate

  • dt – Time step size

  • end_time – Final integration time

  • timeout – Optional timeout override

Returns:

true if completed successfully, false if timed out

inline Integrator &integrator()

Access the underlying integrator.

Returns:

Reference to the wrapped integrator

inline const Integrator &integrator() const
inline TimeoutConfig &config()

Access timeout configuration.

Returns:

Reference to the timeout configuration

inline const TimeoutConfig &config() const