Skip to content

Commit 5d99e9c

Browse files
Merge pull request #1946 from SciML/bgc/sparsitycode
fixed sparsity bug
2 parents 6244d2e + 29a6bf5 commit 5d99e9c

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ function ODEFunctionExpr{iip}(sys::AbstractODESystem, dvs = states(sys),
562562
syms = $(Symbol.(states(sys))),
563563
indepsym = $(QuoteNode(Symbol(get_iv(sys)))),
564564
paramsyms = $(Symbol.(parameters(sys))),
565-
sparsity = $sparsity ? $(jacobian_sparsity(sys)) : $nothing)
565+
sparsity = $(sparsity ? jacobian_sparsity(sys) : nothing))
566566
end
567567
!linenumbers ? striplines(ex) : ex
568568
end

test/odesystem.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ f.f(du, u, p, 0.1)
8282
@test du == [4, 0, -16]
8383
@test_throws ArgumentError f.f(u, p, 0.1)
8484

85+
#check sparsity
86+
f = eval(ODEFunctionExpr(de, [x, y, z], [σ, ρ, β], sparsity = true))
87+
@test f.sparsity == ModelingToolkit.jacobian_sparsity(de)
88+
89+
f = eval(ODEFunctionExpr(de, [x, y, z], [σ, ρ, β], sparsity = false))
90+
@test isnothing(f.sparsity)
91+
8592
eqs = [D(x) ~ σ * (y - x),
8693
D(y) ~ x *- z) - y * t,
8794
D(z) ~ x * y - β * z * κ]

0 commit comments

Comments
 (0)