Template Class ImplicitEulerMaruyamaIntegrator

Inheritance Relationships

Base Type

Class Documentation

template<system_state StateType>
class ImplicitEulerMaruyamaIntegrator : public diffeq::sde::AbstractSDEIntegrator<StateType>

Implicit Euler-Maruyama method.

Implicit version for better stability with stiff SDEs: X_{n+1} = X_n + f(t_{n+1}, X_{n+1}) * dt + g(t_n, X_n) * dW_n

Uses fixed-point iteration to solve the implicit equation.

Public Types

using base_type = sde::AbstractSDEIntegrator<StateType>
using state_type = typename base_type::state_type
using time_type = typename base_type::time_type
using value_type = typename base_type::value_type

Public Functions

inline explicit ImplicitEulerMaruyamaIntegrator(std::shared_ptr<typename base_type::sde_problem_type> problem, std::shared_ptr<typename base_type::wiener_process_type> wiener = nullptr, int max_iterations = 10, value_type tolerance = 1e-8)
inline virtual void step(state_type &state, time_type dt) override
inline virtual std::string name() const override
inline void set_iteration_parameters(int max_iterations, value_type tolerance)