Skip to content

Commit 912663e

Browse files
committed
fix _varmap_to_vars, re-enable dde.jl test
1 parent 539fe81 commit 912663e

File tree

4 files changed

+13
-15
lines changed

4 files changed

+13
-15
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1205,7 +1205,7 @@ function DiffEqBase.SDDEProblem{iip}(sys::AbstractODESystem, u0map = [],
12051205
h_oop, h_iip = generate_history(sys, u0)
12061206
h(out, p, t) = h_iip(out, p, t)
12071207
h(p, t) = h_oop(p, t)
1208-
u0 = h(p, tspan[1])
1208+
u0 = h(p..., tspan[1])
12091209
cbs = process_events(sys; callback, kwargs...)
12101210
inits = []
12111211
if has_discrete_subsystems(sys) && (dss = get_discrete_subsystems(sys)) !== nothing

src/variables.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,7 @@ function _varmap_to_vars(varmap::Dict, varlist; defaults = Dict(), check = false
193193
for var in varlist
194194
var = unwrap(var)
195195
val = unwrap(fixpoint_sub(fixpoint_sub(var, varmap), defaults))
196-
if symbolic_type(val) === NotSymbolic()
197-
values[var] = val
198-
end
196+
values[var] = val
199197
end
200198
missingvars = setdiff(varlist, collect(keys(values)))
201199
check && (isempty(missingvars) || throw(MissingVariablesError(missingvars)))

test/dde.jl

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using ModelingToolkit, DelayDiffEq, Test
2+
using ModelingToolkit: t_nounits as t, D_nounits as D
3+
24
p0 = 0.2;
35
q0 = 0.3;
46
v0 = 1;
@@ -29,21 +31,21 @@ prob2 = DDEProblem(bc_model, u0, h2, tspan, constant_lags = lags)
2931
sol2 = solve(prob2, alg, reltol = 1e-7, abstol = 1e-10)
3032

3133
@parameters p0=0.2 p1=0.2 q0=0.3 q1=0.3 v0=1 v1=1 d0=5 d1=1 d2=1 beta0=1 beta1=1
32-
@variables t x₀(t) x₁(t) x₂(..)
34+
@variables x₀(t) x₁(t) x₂(..)
3335
tau = 1
34-
D = Differential(t)
3536
eqs = [D(x₀) ~ (v0 / (1 + beta0 * (x₂(t - tau)^2))) * (p0 - q0) * x₀ - d0 * x₀
3637
D(x₁) ~ (v0 / (1 + beta0 * (x₂(t - tau)^2))) * (1 - p0 + q0) * x₀ +
3738
(v1 / (1 + beta1 * (x₂(t - tau)^2))) * (p1 - q1) * x₁ - d1 * x₁
3839
D(x₂(t)) ~ (v1 / (1 + beta1 * (x₂(t - tau)^2))) * (1 - p1 + q1) * x₁ - d2 * x₂(t)]
39-
@named sys = System(eqs)
40-
prob = DDEProblem(sys,
40+
@named sys = System(eqs, t)
41+
final_sys = structural_simplify(sys)
42+
prob = DDEProblem(final_sys,
4143
[x₀ => 1.0, x₁ => 1.0, x₂(t) => 1.0],
4244
tspan,
4345
constant_lags = [tau])
4446
sol_mtk = solve(prob, alg, reltol = 1e-7, abstol = 1e-10)
4547
@test sol_mtk.u[end] sol.u[end]
46-
prob2 = DDEProblem(sys,
48+
prob2 = DDEProblem(final_sys,
4749
[x₀ => 1.0 - t * q1 * 10, x₁ => 1.0 - t * q1 * 10, x₂(t) => 1.0 - t * q1 * 10],
4850
tspan,
4951
constant_lags = [tau])
@@ -70,21 +72,18 @@ prob = SDDEProblem(hayes_modelf, hayes_modelg, [1.0], h, tspan, pmul;
7072
constant_lags = (pmul[1],));
7173
sol = solve(prob, RKMil())
7274

73-
@variables t x(..)
75+
@variables x(..)
7476
@parameters a=-4.0 b=-2.0 c=10.0 α=-1.3 β=-1.2 γ=1.1
75-
D = Differential(t)
7677
@brownian η
7778
τ = 1.0
7879
eqs = [D(x(t)) ~ a * x(t) + b * x(t - τ) + c +* x(t) + γ) * η]
79-
@named sys = System(eqs)
80+
@named sys = System(eqs, t)
8081
sys = structural_simplify(sys)
8182
@test equations(sys) == [D(x(t)) ~ a * x(t) + b * x(t - τ) + c]
8283
@test isequal(ModelingToolkit.get_noiseeqs(sys), [α * x(t) + γ;;])
8384
prob_mtk = SDDEProblem(sys, [x(t) => 1.0 + t], tspan; constant_lags = (τ,));
8485
@test_nowarn sol_mtk = solve(prob_mtk, RKMil())
8586

86-
@variables t
87-
D = Differential(t)
8887
@parameters x(..) a
8988

9089
function oscillator(; name, k = 1.0, τ = 0.01)
@@ -93,7 +92,7 @@ function oscillator(; name, k = 1.0, τ = 0.01)
9392
eqs = [D(x(t)) ~ y,
9493
D(y) ~ -k * x(t - τ) + jcn,
9594
delx ~ x(t - τ)]
96-
return System(eqs; name = name)
95+
return System(eqs, t; name = name)
9796
end
9897

9998
systems = @named begin

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ end
3535
@safetestset "Mass Matrix Test" include("mass_matrix.jl")
3636
@safetestset "SteadyStateSystem Test" include("steadystatesystems.jl")
3737
@safetestset "SDESystem Test" include("sdesystem.jl")
38+
@safetestset "DDESystem Test" include("dde.jl")
3839
@safetestset "NonlinearSystem Test" include("nonlinearsystem.jl")
3940
@safetestset "InitializationSystem Test" include("initializationsystem.jl")
4041
@safetestset "PDE Construction Test" include("pde.jl")

0 commit comments

Comments
 (0)