Skip to content

Commit 9ac0d0f

Browse files
authored
fix _varmap_to_vars, re-enable dde.jl test (#2545)
fix useage of `h`. update project re-trigger CI clean whitespace don't store self in `values` use `@mtkbuild`
1 parent f0ce857 commit 9ac0d0f

File tree

6 files changed

+14
-14
lines changed

6 files changed

+14
-14
lines changed

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ AmplNLWriter = "7c4d4715-977e-5154-bfe0-e096adeac482"
115115
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
116116
ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e"
117117
DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6"
118+
DelayDiffEq = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb"
118119
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
119120
Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9"
120121
Ipopt_jll = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7"
@@ -136,4 +137,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4"
136137
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
137138

138139
[targets]
139-
test = ["AmplNLWriter", "BenchmarkTools", "ControlSystemsBase", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg"]
140+
test = ["AmplNLWriter", "BenchmarkTools", "ControlSystemsBase", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg"]

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,6 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
957957
ddvs = nothing
958958
end
959959
check_eqs_u0(eqs, dvs, u0; kwargs...)
960-
961960
f = constructor(sys, dvs, ps, u0; ddvs = ddvs, tgrad = tgrad, jac = jac,
962961
checkbounds = checkbounds, p = p,
963962
linenumbers = linenumbers, parallel = parallel, simplify = simplify,
@@ -1243,6 +1242,8 @@ function DiffEqBase.SDDEProblem{iip}(sys::AbstractODESystem, u0map = [],
12431242
h_oop, h_iip = generate_history(sys, u0)
12441243
h(out, p, t) = h_iip(out, p, t)
12451244
h(p, t) = h_oop(p, t)
1245+
h(p::MTKParameters, t) = h_oop(p..., t)
1246+
h(out, p::MTKParameters, t) = h_iip(out, p..., t)
12461247
u0 = h(p, tspan[1])
12471248
cbs = process_events(sys; callback, kwargs...)
12481249
if has_discrete_subsystems(sys) && (dss = get_discrete_subsystems(sys)) !== nothing

src/systems/parameter_buffer.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ function MTKParameters(
9090
for (sym, val) in p
9191
sym = unwrap(sym)
9292
ctype = concrete_symtype(sym)
93-
val = symconvert(ctype, fixpoint_sub(val, p))
93+
val = symconvert(ctype, unwrap(fixpoint_sub(val, p)))
9494
done = set_value(sym, val)
9595
if !done && Symbolics.isarraysymbolic(sym)
9696
done = all(set_value.(collect(sym), val))

src/variables.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ function _varmap_to_vars(varmap::Dict, varlist; defaults = Dict(), check = false
197197
for var in varlist
198198
var = unwrap(var)
199199
val = unwrap(fixpoint_sub(var, varmap; operator = Symbolics.Operator))
200-
if symbolic_type(val) === NotSymbolic()
200+
if !isequal(val, var)
201201
values[var] = val
202202
end
203203
end

test/dde.jl

Lines changed: 7 additions & 10 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,14 +31,13 @@ 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+
@mtkbuild sys = System(eqs, t)
4041
prob = DDEProblem(sys,
4142
[x₀ => 1.0, x₁ => 1.0, x₂(t) => 1.0],
4243
tspan,
@@ -70,21 +71,17 @@ prob = SDDEProblem(hayes_modelf, hayes_modelg, [1.0], h, tspan, pmul;
7071
constant_lags = (pmul[1],));
7172
sol = solve(prob, RKMil())
7273

73-
@variables t x(..)
74+
@variables x(..)
7475
@parameters a=-4.0 b=-2.0 c=10.0 α=-1.3 β=-1.2 γ=1.1
75-
D = Differential(t)
7676
@brownian η
7777
τ = 1.0
7878
eqs = [D(x(t)) ~ a * x(t) + b * x(t - τ) + c +* x(t) + γ) * η]
79-
@named sys = System(eqs)
80-
sys = structural_simplify(sys)
79+
@mtkbuild sys = System(eqs, t)
8180
@test equations(sys) == [D(x(t)) ~ a * x(t) + b * x(t - τ) + c]
8281
@test isequal(ModelingToolkit.get_noiseeqs(sys), [α * x(t) + γ;;])
8382
prob_mtk = SDDEProblem(sys, [x(t) => 1.0 + t], tspan; constant_lags = (τ,));
8483
@test_nowarn sol_mtk = solve(prob_mtk, RKMil())
8584

86-
@variables t
87-
D = Differential(t)
8885
@parameters x(..) a
8986

9087
function oscillator(; name, k = 1.0, τ = 0.01)
@@ -93,7 +90,7 @@ function oscillator(; name, k = 1.0, τ = 0.01)
9390
eqs = [D(x(t)) ~ y,
9491
D(y) ~ -k * x(t - τ) + jcn,
9592
delx ~ x(t - τ)]
96-
return System(eqs; name = name)
93+
return System(eqs, t; name = name)
9794
end
9895

9996
systems = @named begin

test/runtests.jl

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

0 commit comments

Comments
 (0)