Skip to content

Commit 9a96d68

Browse files
Handle the u0 === nothing case
Co-authored-by: "Chris Rackauckas" <[email protected]>
1 parent 6d8493c commit 9a96d68

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,13 @@ function process_DEProblem(constructor, sys::AbstractODESystem,u0map,parammap;
244244
kwargs...)
245245
dvs = states(sys)
246246
ps = parameters(sys)
247-
u0map′ = lower_mapnames(u0map,get_iv(sys))
248-
u0 = varmap_to_vars(u0map′,dvs; defaults=default_u0(sys))
247+
248+
if u0map !== nothing
249+
u0map′ = lower_mapnames(u0map,get_iv(sys))
250+
u0 = varmap_to_vars(u0map′,dvs; defaults=default_u0(sys))
251+
else
252+
u0 = nothing
253+
end
249254

250255
if !(parammap isa DiffEqBase.NullParameters)
251256
parammap′ = lower_mapnames(parammap)

src/systems/diffeqs/sdesystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ function SDEProblemExpr{iip}(sys::SDESystem,u0map,tspan,
369369
I,J,V = findnz(SparseArrays.sparse(noiseeqs))
370370
noise_rate_prototype = SparseArrays.sparse(I,J,zero(eltype(u0)))
371371
else
372-
noise_rate_prototype = zeros(eltype(u0),size(noiseeqs))
372+
T = u0 === nothing ? Float64 : eltype(u0)
373+
noise_rate_prototype = zeros(T,size(get_noiseeqs(sys)))
373374
end
374375
ex = quote
375376
f = $f

test/sdesystem.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ solexpr = solve(eval(probexpr),SRIW1(),seed=1)
2828

2929
@test all(x->x==0,Array(sol-solexpr))
3030

31+
# Test no error
32+
SDEProblem(de,nothing,nothing,SciMLBase.NullParameters())
33+
3134
noiseeqs_nd = [0.01*x 0.01*x*y 0.02*x*z
3235
σ 0.01*y 0.02*x*z
3336
ρ β 0.01*z ]

0 commit comments

Comments
 (0)