DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
|
使用 boost.asio 的异步积分器包装器 More...
Public Member Functions | |
AsioIntegrationManager (std::unique_ptr< diffeq::core::AbstractIntegrator< State > > integrator, size_t thread_count=std::thread::hardware_concurrency()) | |
构造函数 | |
~AsioIntegrationManager () | |
析构函数 - 确保所有任务完成 | |
template<typename PostTask > | |
void | integrate_async (State initial_state, typename diffeq::core::AbstractIntegrator< State >::time_type dt, typename diffeq::core::AbstractIntegrator< State >::time_type end_time, PostTask &&post_integration_task) |
异步执行积分任务 | |
template<typename TaskList > | |
void | integrate_batch_async (TaskList &&tasks) |
批量执行多个积分任务 | |
void | run (std::chrono::milliseconds timeout=std::chrono::milliseconds::max()) |
运行事件循环 | |
void | wait_for_all_tasks () |
等待所有任务完成 | |
std::pair< size_t, size_t > | get_progress () const |
获取完成统计 | |
void | reset_stats () |
重置统计 | |
使用 boost.asio 的异步积分器包装器
这个示例展示了如何将 boost.asio 与我们的积分器结合使用, 实现 ODE 计算完成后的异步任务处理,如数据分析、参数调整、轨迹保存等。
设计理念:
Definition at line 27 of file asio_integration_demo.cpp.
|
inline |
构造函数
integrator | 积分器实例 |
thread_count | 线程池大小 |
Definition at line 44 of file asio_integration_demo.cpp.
|
inline |
析构函数 - 确保所有任务完成
Definition at line 57 of file asio_integration_demo.cpp.
|
inline |
获取完成统计
Definition at line 153 of file asio_integration_demo.cpp.
|
inline |
异步执行积分任务
initial_state | 初始状态 |
dt | 时间步长 |
end_time | 结束时间 |
post_integration_task | 积分完成后的回调任务 |
Definition at line 70 of file asio_integration_demo.cpp.
|
inline |
批量执行多个积分任务
tasks | 任务列表,每个任务包含初始状态、积分参数和后处理函数 |
Definition at line 117 of file asio_integration_demo.cpp.
|
inline |
重置统计
Definition at line 160 of file asio_integration_demo.cpp.
|
inline |
|
inline |
等待所有任务完成
Definition at line 144 of file asio_integration_demo.cpp.