@@ -161,6 +161,7 @@ function DiffEqBase.SDEProblem{iip}(sys::SDESystem,u0map,tspan,p=parammap;
161
161
version = nothing, tgrad=false,
162
162
jac = false, Wfact = false,
163
163
checkbounds = false, sparse = false,
164
+ sparsenoise = sparse,
164
165
linenumbers = true, parallel=SerialForm(),
165
166
kwargs...)
166
167
```
@@ -172,6 +173,7 @@ function DiffEqBase.SDEProblem{iip}(sys::SDESystem,u0map,tspan,parammap=DiffEqBa
172
173
version = nothing , tgrad= false ,
173
174
jac = false , Wfact = false ,
174
175
checkbounds = false , sparse = false ,
176
+ sparsenoise = sparse,
175
177
linenumbers = true , parallel= SerialForm (),
176
178
kwargs... ) where iip
177
179
@@ -180,7 +182,16 @@ function DiffEqBase.SDEProblem{iip}(sys::SDESystem,u0map,tspan,parammap=DiffEqBa
180
182
sparse= sparse)
181
183
u0 = varmap_to_vars (u0map,states (sys))
182
184
p = varmap_to_vars (parammap,parameters (sys))
183
- SDEProblem (f,f. g,u0,tspan,p;kwargs... )
185
+ if typeof (sys. noiseeqs) <: AbstractVector
186
+ noise_rate_prototype = nothing
187
+ elseif sparsenoise
188
+ I,J,V = findnz (SparseArrays. sparse (sys. noiseeqs))
189
+ noise_rate_prototype = SparseArrays. sparse (I,J,zero (eltype (u0)))
190
+ else
191
+ noise_rate_prototype = zeros (eltype (u0),size (sys. noiseeqs))
192
+ end
193
+
194
+ SDEProblem (f,f. g,u0,tspan,p;noise_rate_prototype= noise_rate_prototype,kwargs... )
184
195
end
185
196
186
197
function DiffEqBase. SDEProblem (sys:: SDESystem , args... ; kwargs... )
0 commit comments