Template Class AsyncIntegrator

Nested Relationships

Nested Types

Class Documentation

template<system_state S>
class AsyncIntegrator

Lightweight async integrator wrapper.

This provides async capabilities without heavy communication dependencies. It uses only standard C++ facilities and focuses on the core integration functionality with minimal external dependencies.

Public Types

using base_integrator_type = core::AbstractIntegrator<S>
using state_type = typename base_integrator_type::state_type
using time_type = typename base_integrator_type::time_type
using value_type = typename base_integrator_type::value_type
using system_function = typename base_integrator_type::system_function
using step_callback = std::function<void(const state_type&, time_type)>
using parameter_callback = std::function<void(const std::string&, double)>
using emergency_callback = std::function<void()>

Public Functions

inline explicit AsyncIntegrator(std::unique_ptr<base_integrator_type> integrator, Config config = {})
inline ~AsyncIntegrator()
inline void start()

Start async operation.

inline void stop()

Stop async operation.

inline std::future<void> step_async(state_type &state, time_type dt)

Async integration step.

inline std::future<void> integrate_async(state_type &state, time_type dt, time_type end_time)

Async integration over time interval.

inline void step(state_type &state, time_type dt)

Synchronous delegation to base integrator.

inline void integrate(state_type &state, time_type dt, time_type end_time)
inline time_type current_time() const
inline void set_time(time_type t)
inline void set_system(system_function sys)
inline void set_step_callback(step_callback callback)

Register callbacks for different events.

inline void set_parameter_callback(parameter_callback callback)
inline void set_emergency_callback(emergency_callback callback)
inline std::future<void> update_parameter_async(const std::string &name, double value)

Update parameter asynchronously.

inline void emergency_stop()

Emergency stop.

inline void reset_emergency_stop()

Reset emergency stop.

inline state_type get_current_state() const

Get current state (thread-safe)

struct Config

Configuration for async operation.

Public Members

bool enable_async_stepping = false
bool enable_state_monitoring = false
std::chrono::microseconds monitoring_interval = {1000}
size_t max_concurrent_operations = 4