|
| InterpolationDecorator (std::unique_ptr< AbstractIntegrator< S > > integrator, InterpolationConfig config={}) |
| Construct interpolation decorator.
|
|
void | step (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt) override |
| Override step to record state history.
|
|
void | integrate (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt, typename IntegratorDecorator< S >::time_type end_time) override |
| Override integrate to maintain history during integration.
|
|
S | interpolate_at (typename IntegratorDecorator< S >::time_type t) |
| Get interpolated state at arbitrary time.
|
|
std::vector< S > | interpolate_at_multiple (const std::vector< typename IntegratorDecorator< S >::time_type > &time_points) |
| Get interpolated states at multiple time points.
|
|
std::pair< std::vector< typename IntegratorDecorator< S >::time_type >, std::vector< S > > | get_dense_output (typename IntegratorDecorator< S >::time_type start_time, typename IntegratorDecorator< S >::time_type end_time, size_t num_points) |
| Get dense output over time interval.
|
|
const InterpolationStats & | get_statistics () const |
| Get current interpolation statistics.
|
|
void | reset_statistics () |
| Reset interpolation statistics.
|
|
std::pair< typename IntegratorDecorator< S >::time_type, typename IntegratorDecorator< S >::time_type > | get_time_bounds () const |
| Get time bounds of available history.
|
|
void | clear_history () |
| Clear all history.
|
|
size_t | get_history_size () const |
| Get number of stored history points.
|
|
InterpolationConfig & | config () |
| Access and modify interpolation configuration.
|
|
const InterpolationConfig & | config () const |
|
| 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) |
|
template<
system_state S>
class diffeq::core::composable::InterpolationDecorator< S >
Interpolation decorator - adds dense output capabilities to any integrator.
This decorator provides comprehensive interpolation capabilities with the following features:
- Dense output with multiple interpolation methods
- Adaptive sampling and history management
- Memory-efficient compression
- Query interface for arbitrary time points
Key Design Principles:
- Single Responsibility: ONLY handles interpolation and dense output
- Efficient: Minimal memory overhead with compression
- Flexible: Multiple interpolation methods
- Robust: Handles edge cases and extrapolation
Definition at line 226 of file interpolation_decorator.hpp.