Skip to content

Commit 9a0733b

Browse files
feat: implement initialize_dae! for SDEIntegrator
1 parent 34fefbc commit 9a0733b

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

src/StochasticDiffEq.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ end
119119
include("cache_utils.jl")
120120
include("integrators/integrator_interface.jl")
121121
include("iterator_interface.jl")
122+
include("initialize_dae.jl")
122123
include("solve.jl")
123124
include("initdt.jl")
124125
include("perform_step/low_order.jl")

src/initialize_dae.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
struct SDEDefaultInit <: DiffEqBase.DAEInitializationAlgorithm end
2+
3+
function DiffEqBase.initialize_dae!(integrator::SDEIntegrator, initializealg = integrator.initializealg)
4+
OrdinaryDiffEq._initialize_dae!(integrator, integrator.sol.prob, initializealg, Val(DiffEqBase.isinplace(integrator.sol.prob)))
5+
end
6+
7+
function OrdinaryDiffEq._initialize_dae!(integrator::SDEIntegrator, prob, ::SDEDefaultInit, isinplace)
8+
if SciMLBase.has_initializeprob(prob.f)
9+
OrdinaryDiffEq._initialize_dae!(integrator, prob, SciMLBase.OverrideInit(), isinplace)
10+
else
11+
OrdinaryDiffEq._initialize_dae!(integrator, prob, SciMLBase.CheckInit(), isinplace)
12+
end
13+
end
14+

src/solve.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,7 @@ function DiffEqBase.__init(
602602
QT(qoldinit),q11,stats,initializealg)
603603

604604
if initialize_integrator
605+
DiffEqBase.initialize_dae!(integrator)
605606
initialize_callbacks!(integrator, initialize_save)
606607
initialize!(integrator,integrator.cache)
607608
save_start && alg isa Union{StochasticDiffEqCompositeAlgorithm,

0 commit comments

Comments
 (0)