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.SROCK1
— TypeSROCK1(;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
: ChooseAlgorithmInterpretation.Ito
(default) orAlgorithmInterpretation.Stratonovich
eigen_est
: Eigenvalue estimation for stability region (automatic ifnothing
)
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
SROCKEM - Stabilized Euler-Maruyama
StochasticDiffEq.SROCKEM
— TypeSROCKEM(;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 ifnothing
)
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.SKSROCK
— TypeSKSROCK(;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 ifnothing
)
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.TangXiaoSROCK2
— TypeTangXiaoSROCK2(;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 characteristicseigen_est
: Eigenvalue estimation for stability (automatic ifnothing
)
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
- SROCK1: Basic first-order method, most robust
- SROCK2: Higher accuracy, good general choice
- SROCKEM: When Euler-Maruyama structure is preferred
- SKSROCK: Advanced features, post-processing options
- 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