Stabilized Methods (SROCK Family)

Stabilized Runge-Kutta Chebyshev (SROCK) methods provide stability for mildly stiff problems through extended stability regions rather than implicit treatment. These methods are particularly effective for parabolic PDEs discretized by method of lines.

SROCK Methods

SROCK1 - First Order Stabilized Method

StochasticDiffEq.SROCK1Type
SROCK1(;interpretation=AlgorithmInterpretation.Ito, eigen_est=nothing)

SROCK1: First-Order Stabilized Runge-Kutta Chebyshev Method

Fixed step size stabilized explicit method designed for mildly stiff SDE problems, particularly effective for parabolic PDEs discretized by method of lines.

Method Properties

  • Strong Order: 0.5 (optimized to 1.0 for scalar/diagonal noise)
  • Weak Order: 1.0
  • Time stepping: Fixed step size with extended stability
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive)
  • SDE interpretation: Configurable (Itô or Stratonovich)
  • Stability: Extended along negative real axis

Parameters

  • interpretation: Choose AlgorithmInterpretation.Ito (default) or AlgorithmInterpretation.Stratonovich
  • eigen_est: Eigenvalue estimation for stability region (automatic if nothing)

When to Use

  • Parabolic PDEs with stochastic terms
  • Mildly stiff problems where implicit methods are too expensive
  • Large sparse systems from method of lines
  • When stability region extension is more important than high accuracy

Stability

  • Extends stability region to approximately [-s², 0] where s is number of stages
  • Number of stages chosen based on eigenvalue estimates
  • More efficient than implicit methods for moderate stiffness

References

  • Chebyshev methods for parabolic stochastic PDEs
  • ROCK methods for stiff problems

SROCK2, KomBurSROCK2, SROCKC2 - Second Order Methods

Missing docstring.

Missing docstring for SROCK2. Check Documenter's build log for details.

Missing docstring.

Missing docstring for KomBurSROCK2. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SROCKC2. Check Documenter's build log for details.

SROCKEM - Stabilized Euler-Maruyama

StochasticDiffEq.SROCKEMType
SROCKEM(;strong_order_1=true, eigen_est=nothing)

SROCKEM: ROCK-Stabilized Euler-Maruyama Method

Fixed step Euler-Maruyama method with first-order ROCK stabilization for handling stiff problems.

Method Properties

  • Strong Order: 1.0 (default) or 0.5 (if strong_order_1=false)
  • Weak Order: 1.0 (default) or 0.5 (if strong_order_1=false)
  • Time stepping: Fixed step size with ROCK stabilization
  • Noise types: 1-dimensional, diagonal, and multi-dimensional noise
  • SDE interpretation: Itô only
  • Stability: ROCK stabilization for moderate stiffness

Parameters

  • strong_order_1::Bool = true: Use strong/weak order 1.0 (true) or 0.5 (false)
  • eigen_est: Eigenvalue estimation for stability (automatic if nothing)

When to Use

  • Stiff problems where standard EM fails
  • When ROCK stabilization is preferred over full implicit treatment
  • Problems requiring Euler-Maruyama structure with enhanced stability
  • Multi-dimensional stiff SDEs

Algorithm Description

Combines Euler-Maruyama discretization with ROCK stabilization techniques to extend the stability region without requiring linear solves.

References

  • ROCK stabilization techniques applied to SDEs
  • Stabilized Euler methods for stiff problems

SKSROCK - Stabilized Method with Post-Processing

StochasticDiffEq.SKSROCKType
SKSROCK(;post_processing=false, eigen_est=nothing)

SKSROCK: SK-SROCK Stabilized Method

Fixed step stabilized explicit method for stiff Itô problems with enhanced stability domain and optional post-processing.

Method Properties

  • Strong Order: 0.5 (up to 2.0 with post-processing)
  • Weak Order: 1.0 (up to 2.0 with post-processing)
  • Time stepping: Fixed step size with enhanced stability
  • Noise types: 1-dimensional, diagonal, and multi-dimensional noise
  • SDE interpretation: Itô only
  • Stability: Better stability domain than SROCK1

Parameters

  • post_processing::Bool = false: Enable post-processing for higher accuracy (experimental)
  • eigen_est: Eigenvalue estimation for stability (automatic if nothing)

When to Use

  • Stiff Itô problems requiring better stability than SROCK1
  • Ergodic dynamical systems (with post-processing)
  • Problems where enhanced stability domain is crucial
  • When experimenting with post-processing techniques

Post-Processing (Experimental)

  • Can achieve order 2 accuracy for ergodic systems
  • Particularly useful for Brownian dynamics
  • Currently under development - use with caution

Algorithm Features

  • Enhanced stability compared to SROCK1
  • Handles various noise structures
  • Optional post-processing for specialized applications

References

  • SK-SROCK methods for stochastic problems
  • Post-processing techniques for ergodic systems

TangXiaoSROCK2 - Alternative Second Order Method

StochasticDiffEq.TangXiaoSROCK2Type
TangXiaoSROCK2(;version_num=5, eigen_est=nothing)

TangXiaoSROCK2: Tang-Xiao Second-Order SROCK Method

Fixed step size stabilized explicit method with multiple variants offering different stability domains.

Method Properties

  • Strong Order: 1.0
  • Weak Order: 2.0
  • Time stepping: Fixed step size with extended stability
  • Noise types: Various (depends on version)
  • SDE interpretation: Itô only
  • Stability: Version-dependent stability domains

Parameters

  • version_num::Int = 5: Choose version 1-5 with different stability characteristics
  • eigen_est: Eigenvalue estimation for stability (automatic if nothing)

When to Use

  • When experimenting with different stability domains
  • Problems requiring weak order 2.0 with fixed steps
  • Benchmarking different ROCK variants
  • Note: Currently under development

Versions

  • Versions 1-5 offer different stability domains
  • Version 5 (default) typically provides good general performance
  • Choose version based on problem-specific stability requirements

Development Status

  • Method is under active development
  • Use with caution in production code
  • Consider more established ROCK methods for critical applications

References

  • Tang and Xiao, "Second-order SROCK methods for stochastic problems"

When to Use Stabilized Methods

Ideal for:

  • Parabolic PDEs discretized by method of lines
  • Problems with moderate stiffness (not extremely stiff)
  • Large systems where implicit methods are expensive
  • When eigenvalue spectrum is primarily negative real

Advantages over implicit methods:

  • No linear system solves required
  • Better for large systems
  • Parallelizable
  • No Jacobian computation needed

Disadvantages:

  • Limited to moderate stiffness
  • May require eigenvalue estimation
  • Not effective for highly oscillatory problems

Stability Regions

SROCK methods extend stability along the negative real axis:

  • Standard explicit: Stability region ~ [-2, 0]
  • SROCK methods: Stability region ~ [-s², 0] where s is the number of stages

The number of stages s is chosen based on estimated eigenvalues.

Eigenvalue Estimation

Most SROCK methods accept an eigen_est parameter:

# Automatic estimation (default)
SROCK1()

# Manual estimation
SROCK1(eigen_est = -100.0)  # Largest eigenvalue magnitude

# Custom estimation function
SROCK1(eigen_est = my_estimator)

Method Selection Guide

  1. SROCK1: Basic first-order method, most robust
  2. SROCK2: Higher accuracy, good general choice
  3. SROCKEM: When Euler-Maruyama structure is preferred
  4. SKSROCK: Advanced features, post-processing options
  5. SROCKC2: Conservative second-order variant

Problem Suitability

Well-suited:

  • Reaction-diffusion equations
  • Heat equations with stochastic terms
  • Large sparse systems
  • Method of lines discretizations

Not well-suited:

  • Highly stiff problems (use implicit methods)
  • Problems with complex eigenvalue spectra
  • Small dense systems (overhead not justified)

Configuration Tips

# For PDE problems
SROCK2(eigen_est = estimate_spectral_radius(A))

# For uncertain problems, start conservatively
SROCK1()  # Most robust

# For higher accuracy
SROCK2()  # Good balance

Performance Considerations

  • Stage count increases with stiffness
  • Eigenvalue estimation cost
  • Memory requirements for internal stages
  • Better scalability than implicit methods

References

  • Chebyshev methods for parabolic problems
  • ROCK methods for stiff ODEs
  • Stabilized explicit methods for PDEs