|
| OutputDecorator (std::unique_ptr< AbstractIntegrator< S > > integrator, OutputConfig config={}, std::function< void(const S &, typename IntegratorDecorator< S >::time_type, size_t)> handler=nullptr) |
| Construct output decorator.
|
|
| ~OutputDecorator () |
| Destructor ensures proper cleanup and final output flush.
|
|
void | step (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt) override |
| Override step to add output handling.
|
|
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 handle different output modes.
|
|
void | set_output_handler (std::function< void(const S &, typename IntegratorDecorator< S >::time_type, size_t)> handler) |
| Set or change output handler function.
|
|
const std::vector< std::tuple< S, typename IntegratorDecorator< S >::time_type, size_t > > & | get_buffer () const |
| Get current output buffer contents.
|
|
void | clear_buffer () |
| Clear the output buffer.
|
|
void | flush_output () |
| Force immediate output flush.
|
|
const OutputStats & | get_statistics () const |
| Get output statistics.
|
|
void | reset_statistics () |
| Reset output statistics.
|
|
OutputConfig & | config () |
| Access and modify output configuration.
|
|
const OutputConfig & | config () const |
|
void | update_config (OutputConfig new_config) |
| Update output configuration with validation.
|
|
| 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::OutputDecorator< S >
Output decorator - adds configurable output to any integrator.
This decorator provides comprehensive output capabilities with the following features:
- Online, offline, and hybrid output modes
- Configurable output intervals and buffering
- Optional file output with compression
- Detailed statistics and performance monitoring
Key Design Principles:
- Single Responsibility: ONLY handles output functionality
- No Dependencies: Works with any integrator type
- Flexible: Multiple output modes and configurations
- Efficient: Minimal performance impact on integration
Definition at line 97 of file output_decorator.hpp.