|
DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
|
General interface for ODE integration with real-time signal processing. More...
#include <integration_interface.hpp>
Classes | |
| struct | OutputStream |
| Output stream descriptor. More... | |
| struct | SignalInfluence |
| Signal influence descriptor. More... | |
Public Types | |
| enum class | InfluenceMode { DISCRETE_EVENT , CONTINUOUS_SHIFT , PARAMETER_UPDATE , OUTPUT_TRIGGER } |
| Signal influence modes. More... | |
| using | state_type = StateType |
| using | time_type = TimeType |
| using | signal_processor_type = signal::SignalProcessor< StateType > |
Public Member Functions | |
| IntegrationInterface (std::shared_ptr< signal_processor_type > processor=nullptr) | |
| template<typename SignalDataType > | |
| void | register_signal_influence (std::string_view signal_type, InfluenceMode mode, std::function< void(const SignalDataType &, state_type &, time_type)> handler, double priority=1.0) |
| Register a signal influence on the ODE system. | |
| void | register_output_stream (std::string_view stream_id, std::function< void(const state_type &, time_type)> output_func, std::chrono::microseconds interval=std::chrono::microseconds{1000}) |
| Register an output stream for real-time data export. | |
| void | add_trajectory_modifier (std::function< void(time_type, state_type &, state_type &)> modifier) |
| Add a continuous trajectory modifier. | |
| template<typename OriginalODE > | |
| auto | make_signal_aware_ode (OriginalODE &&original_ode) |
| ODE system wrapper that incorporates signal influences. | |
| void | apply_discrete_event (const std::string &signal_type, const std::any &signal_data) |
| Process discrete events (instantaneous state modifications) | |
| std::optional< state_type > | get_current_state () const |
| Get current integration state. | |
| time_type | get_current_time () const |
| Get current time. | |
| void | set_signal_influence_active (const std::string &signal_type, bool active) |
| Enable/disable signal influence. | |
| void | set_output_stream_active (const std::string &stream_id, bool active) |
| Enable/disable output stream. | |
| std::shared_ptr< signal_processor_type > | get_signal_processor () |
| Get signal processor for direct access. | |
General interface for ODE integration with real-time signal processing.
This unified interface handles all integration scenarios:
Definition at line 24 of file integration_interface.hpp.
| using diffeq::interfaces::IntegrationInterface< StateType, TimeType >::signal_processor_type = signal::SignalProcessor<StateType> |
Definition at line 28 of file integration_interface.hpp.
| using diffeq::interfaces::IntegrationInterface< StateType, TimeType >::state_type = StateType |
Definition at line 26 of file integration_interface.hpp.
| using diffeq::interfaces::IntegrationInterface< StateType, TimeType >::time_type = TimeType |
Definition at line 27 of file integration_interface.hpp.
|
strong |
Signal influence modes.
Definition at line 33 of file integration_interface.hpp.
|
inlineexplicit |
Definition at line 75 of file integration_interface.hpp.
|
inline |
Add a continuous trajectory modifier.
These functions are called during ODE evaluation to modify the dynamics based on accumulated signal influences.
Definition at line 139 of file integration_interface.hpp.
|
inline |
Process discrete events (instantaneous state modifications)
Definition at line 176 of file integration_interface.hpp.
|
inline |
Get current integration state.
Definition at line 192 of file integration_interface.hpp.
|
inline |
Get current time.
Definition at line 199 of file integration_interface.hpp.
|
inline |
Get signal processor for direct access.
Definition at line 228 of file integration_interface.hpp.
|
inline |
ODE system wrapper that incorporates signal influences.
This function should be passed to your integrator. It wraps your original ODE system and adds signal-based modifications.
Definition at line 151 of file integration_interface.hpp.
|
inline |
Register an output stream for real-time data export.
Definition at line 117 of file integration_interface.hpp.
|
inline |
Register a signal influence on the ODE system.
Definition at line 84 of file integration_interface.hpp.
|
inline |
Enable/disable output stream.
Definition at line 217 of file integration_interface.hpp.
|
inline |
Enable/disable signal influence.
Definition at line 206 of file integration_interface.hpp.