DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
Loading...
Searching...
No Matches
diffeq::core::composable::SDESynchronizer< S, T > Class Template Reference

SDE synchronization helper for coordinating noise processes. More...

#include <sde_synchronization.hpp>

Classes

struct  SyncStats
 Get synchronization statistics. More...
 

Public Member Functions

 SDESynchronizer (SDESyncConfig config={})
 Construct SDE synchronizer.
 
NoiseData< T > get_noise_increment (T current_time, T dt)
 Get noise increment for SDE integration.
 
void submit_noise_data (const NoiseData< T > &noise_data)
 Submit noise data from external process.
 
template<typename IPCDecorator >
void configure_with_ipc (IPCDecorator &ipc_decorator)
 Configure for use with InterprocessDecorator.
 
SyncStats get_statistics () const
 
void reset_statistics ()
 Reset statistics.
 

Static Public Member Functions

template<typename ProducerIntegrator , typename ConsumerIntegrator >
static std::pair< std::unique_ptr< AbstractIntegrator< S, T > >, std::unique_ptr< AbstractIntegrator< S, T > > > create_synchronized_pair (std::unique_ptr< ProducerIntegrator > producer_integrator, std::unique_ptr< ConsumerIntegrator > consumer_integrator, InterprocessConfig ipc_config, SDESyncConfig sync_config={})
 Create synchronized SDE integrator pair.
 

Detailed Description

template<system_state S, can_be_time T = double>
class diffeq::core::composable::SDESynchronizer< S, T >

SDE synchronization helper for coordinating noise processes.

This class provides utilities for synchronizing SDE integrators that need to receive noise data from external processes. It handles:

  • Noise data buffering and interpolation
  • Time synchronization between processes
  • Multiple noise process types
  • Robust error handling and recovery

Definition at line 163 of file sde_synchronization.hpp.

Constructor & Destructor Documentation

◆ SDESynchronizer()

template<system_state S, can_be_time T = double>
diffeq::core::composable::SDESynchronizer< S, T >::SDESynchronizer ( SDESyncConfig  config = {})
inlineexplicit

Construct SDE synchronizer.

Parameters
configSDE synchronization configuration

Definition at line 186 of file sde_synchronization.hpp.

Member Function Documentation

◆ configure_with_ipc()

template<system_state S, can_be_time T = double>
template<typename IPCDecorator >
void diffeq::core::composable::SDESynchronizer< S, T >::configure_with_ipc ( IPCDecorator &  ipc_decorator)
inline

Configure for use with InterprocessDecorator.

Parameters
ipc_decoratorInterprocess decorator to coordinate with

Definition at line 246 of file sde_synchronization.hpp.

◆ create_synchronized_pair()

template<system_state S, can_be_time T = double>
template<typename ProducerIntegrator , typename ConsumerIntegrator >
static std::pair< std::unique_ptr< AbstractIntegrator< S, T > >, std::unique_ptr< AbstractIntegrator< S, T > > > diffeq::core::composable::SDESynchronizer< S, T >::create_synchronized_pair ( std::unique_ptr< ProducerIntegrator >  producer_integrator,
std::unique_ptr< ConsumerIntegrator >  consumer_integrator,
InterprocessConfig  ipc_config,
SDESyncConfig  sync_config = {} 
)
inlinestatic

Create synchronized SDE integrator pair.

Parameters
producer_integratorIntegrator that generates noise
consumer_integratorIntegrator that receives noise
ipc_configIPC configuration
Returns
Pair of configured integrators

Definition at line 268 of file sde_synchronization.hpp.

◆ get_noise_increment()

template<system_state S, can_be_time T = double>
NoiseData< T > diffeq::core::composable::SDESynchronizer< S, T >::get_noise_increment ( current_time,
dt 
)
inline

Get noise increment for SDE integration.

Parameters
current_timeCurrent integration time
dtTime step
Returns
Noise data for the time step
Exceptions
std::runtime_errorif noise cannot be obtained within timeout

Definition at line 200 of file sde_synchronization.hpp.

◆ get_statistics()

template<system_state S, can_be_time T = double>
SyncStats diffeq::core::composable::SDESynchronizer< S, T >::get_statistics ( ) const
inline

Definition at line 305 of file sde_synchronization.hpp.

◆ reset_statistics()

template<system_state S, can_be_time T = double>
void diffeq::core::composable::SDESynchronizer< S, T >::reset_statistics ( )
inline

Reset statistics.

Definition at line 312 of file sde_synchronization.hpp.

◆ submit_noise_data()

template<system_state S, can_be_time T = double>
void diffeq::core::composable::SDESynchronizer< S, T >::submit_noise_data ( const NoiseData< T > &  noise_data)
inline

Submit noise data from external process.

Parameters
noise_dataNoise data received

Definition at line 221 of file sde_synchronization.hpp.


The documentation for this class was generated from the following file: