DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
|
Base decorator interface for integrator enhancements. More...
#include <integrator_decorator.hpp>
Public Types | |
using | base_type = AbstractIntegrator< S > |
using | state_type = typename base_type::state_type |
using | time_type = typename base_type::time_type |
using | system_function = typename base_type::system_function |
![]() | |
using | state_type = S |
using | time_type = typename S::value_type |
using | value_type = typename S::value_type |
using | system_function = std::function< void(time_type, const state_type &, state_type &)> |
Public Member Functions | |
IntegratorDecorator (std::unique_ptr< base_type > integrator) | |
Construct decorator wrapping another integrator. | |
virtual | ~IntegratorDecorator ()=default |
Virtual destructor for proper cleanup. | |
void | step (state_type &state, time_type dt) override |
void | integrate (state_type &state, time_type dt, time_type end_time) override |
time_type | current_time () const override |
void | set_time (time_type t) override |
void | set_system (system_function sys) override |
base_type & | wrapped () |
Access to wrapped integrator for advanced use. | |
const base_type & | wrapped () const |
bool | has_wrapped_integrator () const |
Check if wrapped integrator exists. | |
![]() | |
AbstractIntegrator (system_function sys) | |
time_type | current_time () const |
void | set_time (time_type t) |
void | set_system (system_function sys) |
Protected Attributes | |
std::unique_ptr< base_type > | wrapped_integrator_ |
![]() | |
system_function | sys_ |
time_type | current_time_ |
Additional Inherited Members | |
![]() | |
void | advance_time (time_type dt) |
Base decorator interface for integrator enhancements.
This provides the foundation for the decorator pattern, allowing facilities to be stacked independently without tight coupling.
Design Principles:
Definition at line 22 of file integrator_decorator.hpp.
using diffeq::core::composable::IntegratorDecorator< S >::base_type = AbstractIntegrator<S> |
Definition at line 24 of file integrator_decorator.hpp.
using diffeq::core::composable::IntegratorDecorator< S >::state_type = typename base_type::state_type |
Definition at line 25 of file integrator_decorator.hpp.
using diffeq::core::composable::IntegratorDecorator< S >::system_function = typename base_type::system_function |
Definition at line 27 of file integrator_decorator.hpp.
using diffeq::core::composable::IntegratorDecorator< S >::time_type = typename base_type::time_type |
Definition at line 26 of file integrator_decorator.hpp.
|
inlineexplicit |
Construct decorator wrapping another integrator.
integrator | The integrator to wrap (takes ownership) |
Definition at line 37 of file integrator_decorator.hpp.
|
inlineoverride |
Definition at line 54 of file integrator_decorator.hpp.
|
inline |
Check if wrapped integrator exists.
Definition at line 79 of file integrator_decorator.hpp.
|
inlineoverridevirtual |
Reimplemented from diffeq::core::AbstractIntegrator< S >.
Definition at line 50 of file integrator_decorator.hpp.
|
inlineoverride |
Definition at line 63 of file integrator_decorator.hpp.
|
inlineoverride |
Definition at line 58 of file integrator_decorator.hpp.
|
inlineoverridevirtual |
Implements diffeq::core::AbstractIntegrator< S >.
Definition at line 46 of file integrator_decorator.hpp.
|
inline |
Access to wrapped integrator for advanced use.
Definition at line 72 of file integrator_decorator.hpp.
|
inline |
Definition at line 73 of file integrator_decorator.hpp.
|
protected |
Definition at line 30 of file integrator_decorator.hpp.