Template Class TimeoutIntegrator
Defined in File timeout_integrator.hpp
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