Skip to content

Commit 2ba4c8d

Browse files
Fix ODEFunction
1 parent 1fde3a4 commit 2ba4c8d

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

src/systems/diffeqs/diffeqsystem.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ function (f::DiffEqToExpr)(O::Operation)
113113
end
114114
(f::DiffEqToExpr)(x) = convert(Expr, x)
115115

116-
function generate_function(sys::ODESystem, vs, ps; version::FunctionVersion = ArrayFunction)
116+
function generate_function(sys::ODESystem, dvs, ps; version::FunctionVersion = ArrayFunction)
117117
rhss = [deq.rhs for deq sys.eqs]
118-
vs= [clean(v) for v vs]
118+
dvs= [clean(dv) for dv dvs]
119119
ps′ = [clean(p) for p ps]
120-
return build_function(rhss, vs′, ps′, (sys.iv.name,), DiffEqToExpr(sys); version = version)
120+
return build_function(rhss, dvs′, ps′, (sys.iv.name,), DiffEqToExpr(sys); version = version)
121121
end
122122

123123

@@ -148,8 +148,8 @@ function generate_ode_iW(sys::ODESystem, simplify=true; version::FunctionVersion
148148
return (iW_func, iW_t_func)
149149
end
150150

151-
function DiffEqBase.ODEFunction(sys::ODESystem; version::FunctionVersion = ArrayFunction)
152-
expr = generate_function(sys; version = version)
151+
function DiffEqBase.ODEFunction(sys::ODESystem, dvs, ps; version::FunctionVersion = ArrayFunction)
152+
expr = generate_function(sys, dvs, ps; version = version)
153153
if version === ArrayFunction
154154
ODEFunction{true}(eval(expr))
155155
elseif version === SArrayFunction

test/system_construction.jl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ generate_function(de, [x,y,z], [σ,ρ,β])
3535
generate_function(de, [x,y,z], [σ,ρ,β]; version=ModelingToolkit.SArrayFunction)
3636
jac_expr = generate_jacobian(de)
3737
jac = calculate_jacobian(de)
38-
@test_broken begin
39-
f = ODEFunction(de)
40-
end
38+
f = ODEFunction(de, [x,y,z], [σ,ρ,β])
4139
ModelingToolkit.generate_ode_iW(de)
4240

4341
@testset "time-varying parameters" begin
@@ -101,9 +99,7 @@ eqs = [D(x) ~ σ*a,
10199
de = ODESystem(eqs)
102100
generate_function(de, [x,y,z], [σ,ρ,β])
103101
jac = calculate_jacobian(de)
104-
@test_broken begin
105-
f = ODEFunction(de)
106-
end
102+
f = ODEFunction(de, [x,y,z], [σ,ρ,β])
107103

108104
# Define a nonlinear system
109105
eqs = [0 ~ σ*(y-x),

0 commit comments

Comments
 (0)