Add default SDE algorithm with type-stable approach #626
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a default solver algorithm for StochasticDiffEq.jl similar to OrdinaryDiffEq.jl's OrdinaryDiffEqDefault's DefaultSolverAlg, using a type-stable sumtype approach as requested.
Key Features
DefaultSDEAlgorithm()
: Basic default algorithm that switches between SOSRI (non-stiff) and ImplicitRKMil (stiff)DefaultAdaptiveSDEAlgorithm()
: Adaptive algorithm that selects solvers based on problem characteristicssolve(prob, nothing)
now uses the default algorithm automaticallyImplementation Details
AutoAlgSwitch
mechanism for automatic switchingsde_default_alg.jl
Algorithm Mappings
The default algorithm selection follows this logic:
Tests
Added comprehensive test suite (
test/default_alg_test.jl
) covering:solve(prob, nothing)
isdefaultalg
checksAll tests pass successfully.
Example Usage
Process Documentation
This implementation was created following the pattern from OrdinaryDiffEq.jl's DefaultODEAlgorithm:
🤖 Generated with Claude Code
Co-Authored-By: Claude [email protected]