Skip to content

Commit f1f4d12

Browse files
test: use t_nounits and D_nounits in tests
1 parent 61928ab commit f1f4d12

33 files changed

+178
-310
lines changed

test/ccompile.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
using ModelingToolkit, Test
2-
@parameters t a
2+
using ModelingToolkit: t_nounits as t, D_nounits as D
3+
4+
@parameters a
35
@variables x y
4-
D = Differential(t)
56
eqs = [D(x) ~ a * x - x * y,
67
D(y) ~ -3y + x * y]
78
f = build_function([x.rhs for x in eqs], [x, y], [a], t, expression = Val{false},

test/clock.jl

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using ModelingToolkit, Test, Setfield, OrdinaryDiffEq, DiffEqCallbacks
22
using ModelingToolkit: Continuous
3+
using ModelingToolkit: t_nounits as t, D_nounits as D
34

45
function infer_clocks(sys)
56
ts = TearingState(sys)
@@ -9,9 +10,8 @@ end
910

1011
@info "Testing hybrid system"
1112
dt = 0.1
12-
@variables t x(t) y(t) u(t) yd(t) ud(t) r(t)
13+
@variables x(t) y(t) u(t) yd(t) ud(t) r(t)
1314
@parameters kp
14-
D = Differential(t)
1515
# u(n + 1) := f(u(n))
1616

1717
eqs = [yd ~ Sample(t, dt)(y)
@@ -89,9 +89,8 @@ d = Clock(t, dt)
8989

9090
@info "Testing shift normalization"
9191
dt = 0.1
92-
@variables t x(t) y(t) u(t) yd(t) ud(t) r(t) z(t)
92+
@variables x(t) y(t) u(t) yd(t) ud(t) r(t) z(t)
9393
@parameters kp
94-
D = Differential(t)
9594
d = Clock(t, dt)
9695
k = ShiftIndex(d)
9796

@@ -161,9 +160,8 @@ sol2 = solve(prob, Tsit5())
161160
@info "Testing multi-rate hybrid system"
162161
dt = 0.1
163162
dt2 = 0.2
164-
@variables t x(t) y(t) u(t) r(t) yd1(t) ud1(t) yd2(t) ud2(t)
163+
@variables x(t) y(t) u(t) r(t) yd1(t) ud1(t) yd2(t) ud2(t)
165164
@parameters kp
166-
D = Differential(t)
167165

168166
eqs = [
169167
# controller (time discrete part `dt=0.1`)
@@ -196,14 +194,12 @@ d2 = Clock(t, dt2)
196194
@info "test composed systems"
197195

198196
dt = 0.5
199-
@variables t
200197
d = Clock(t, dt)
201198
k = ShiftIndex(d)
202199
timevec = 0:0.1:4
203200

204201
function plant(; name)
205202
@variables x(t)=1 u(t)=0 y(t)=0
206-
D = Differential(t)
207203
eqs = [D(x) ~ -x + u
208204
y ~ x]
209205
ODESystem(eqs, t; name = name)
@@ -253,9 +249,8 @@ ci, varmap = infer_clocks(cl)
253249
@info "Testing multi-rate hybrid system"
254250
dt = 0.1
255251
dt2 = 0.2
256-
@variables t x(t)=0 y(t)=0 u(t)=0 yd1(t)=0 ud1(t)=0 yd2(t)=0 ud2(t)=0
252+
@variables x(t)=0 y(t)=0 u(t)=0 yd1(t)=0 ud1(t)=0 yd2(t)=0 ud2(t)=0
257253
@parameters kp=1 r=1
258-
D = Differential(t)
259254

260255
eqs = [
261256
# controller (time discrete part `dt=0.1`)
@@ -326,7 +321,6 @@ end
326321
using ModelingToolkitStandardLibrary.Blocks
327322

328323
dt = 0.05
329-
@variables t
330324
d = Clock(t, dt)
331325
k = ShiftIndex(d)
332326

test/components.jl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ using ModelingToolkit, OrdinaryDiffEq
33
using ModelingToolkit: get_component_type
44
using ModelingToolkit.BipartiteGraphs
55
using ModelingToolkit.StructuralTransformations
6+
using ModelingToolkit: t_nounits as t, D_nounits as D
67
include("../examples/rc_model.jl")
78

89
function check_contract(sys)
@@ -155,7 +156,7 @@ sys = structural_simplify(ll_model)
155156
@test length(equations(sys)) == 2
156157
u0 = unknowns(sys) .=> 0
157158
@test_nowarn ODEProblem(sys, u0, (0, 10.0))
158-
prob = DAEProblem(sys, Differential(t).(unknowns(sys)) .=> 0, u0, (0, 0.5))
159+
prob = DAEProblem(sys, D.(unknowns(sys)) .=> 0, u0, (0, 0.5))
159160
sol = solve(prob, DFBDF())
160161
@test sol.retcode == SciMLBase.ReturnCode.Success
161162

@@ -165,17 +166,14 @@ u0 = unknowns(sys) .=> 0
165166
prob = ODEProblem(sys, u0, (0, 10.0))
166167
@test_nowarn sol = solve(prob, FBDF())
167168

168-
@variables t x1(t) x2(t) x3(t) x4(t)
169-
D = Differential(t)
169+
@variables x1(t) x2(t) x3(t) x4(t)
170170
@named sys1_inner = ODESystem([D(x1) ~ x1], t)
171171
@named sys1_partial = compose(ODESystem([D(x2) ~ x2], t; name = :foo), sys1_inner)
172172
@named sys1 = extend(ODESystem([D(x3) ~ x3], t; name = :foo), sys1_partial)
173173
@named sys2 = compose(ODESystem([D(x4) ~ x4], t; name = :foo), sys1)
174174
@test_nowarn sys2.sys1.sys1_inner.x1 # test the correct nesting
175175

176176
# compose tests
177-
@parameters t
178-
179177
function record_fun(; name)
180178
pars = @parameters a=10 b=100
181179
ODESystem(Equation[], t, [], pars; name)

test/dae_jacobian.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using ModelingToolkit
22
using Sundials, Test, SparseArrays
3+
using ModelingToolkit: t_nounits as t, D_nounits as D
34

45
# Comparing solution obtained by defining explicit Jacobian function with solution obtained from
56
# symbolically generated Jacobian
@@ -29,11 +30,9 @@ sol1 = solve(prob1, IDA(linear_solver = :KLU))
2930

3031
# Now MTK style solution with generated Jacobian
3132

32-
@variables t u1(t) u2(t)
33+
@variables u1(t) u2(t)
3334
@parameters p1 p2
3435

35-
D = Differential(t)
36-
3736
eqs = [D(u1) ~ p1 * u1 - u1 * u2,
3837
D(u2) ~ u1 * u2 - p2 * u2]
3938

test/dep_graphs.jl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
using Test
22
using ModelingToolkit, Graphs, JumpProcesses
3-
3+
using ModelingToolkit: t_nounits as t, D_nounits as D
44
import ModelingToolkit: value
55

66
#################################
77
# testing for Jumps / all dgs
88
#################################
99
@parameters k1 k2
10-
@variables t S(t) I(t) R(t)
10+
@variables S(t) I(t) R(t)
1111
j₁ = MassActionJump(k1, [0 => 1], [S => 1])
1212
j₂ = MassActionJump(k1, [S => 1], [S => -1])
1313
j₃ = MassActionJump(k2, [S => 1, I => 1], [S => -1, I => 1])
@@ -76,8 +76,7 @@ dg4 = varvar_dependencies(depsbg, deps2)
7676
# testing for ODE/SDEs
7777
#####################################
7878
@parameters k1 k2
79-
@variables t S(t) I(t) R(t)
80-
D = Differential(t)
79+
@variables S(t) I(t) R(t)
8180
eqs = [D(S) ~ k1 - k1 * S - k2 * S * I - k1 * k2 / (1 + t) * S,
8281
D(I) ~ k2 * S * I,
8382
D(R) ~ -k2 * S^2 * R / 2 + k1 * I + k1 * k2 * S / (1 + t)]
@@ -93,7 +92,7 @@ eq_sdeps = [[S, I], [S, I], [S, I, R]]
9392
@test all(i -> isequal(Set(eq_sdeps[i]), Set(deps[i])), 1:length(deps))
9493

9594
@parameters k1 k2
96-
@variables t S(t) I(t) R(t)
95+
@variables S(t) I(t) R(t)
9796
@named sdes = SDESystem(eqs, noiseeqs, t, [S, I, R], [k1, k2])
9897
deps = equation_dependencies(sdes)
9998
@test all(i -> isequal(Set(eq_sdeps[i]), Set(deps[i])), 1:length(deps))

test/distributed.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ using Distributed
33
addprocs(2)
44

55
@everywhere using ModelingToolkit, OrdinaryDiffEq
6+
@everywhere using ModelingToolkit: t_nounits as t, D_nounits as D
67

78
# create the Lorenz system
8-
@everywhere @parameters t σ ρ β
9+
@everywhere @parameters σ ρ β
910
@everywhere @variables x(t) y(t) z(t)
10-
@everywhere D = Differential(t)
1111

1212
@everywhere eqs = [D(x) ~ σ * (y - x),
1313
D(y) ~ x *- z) - y,

test/domain_connectors.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
using ModelingToolkit
2+
using ModelingToolkit: t_nounits as t, D_nounits as D
23
using Test
34
using IfElse: ifelse
45

5-
@parameters t
6-
D = Differential(t)
7-
86
@connector function HydraulicPort(; p_int, name)
97
pars = @parameters begin
108
ρ

test/dq_units.jl

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using ModelingToolkit, OrdinaryDiffEq, JumpProcesses, IfElse, DynamicQuantities
22
using Test
33
MT = ModelingToolkit
4+
using ModelingToolkit: t, D
45
@parameters τ [unit = u"s"] γ
5-
@variables t [unit = u"s"] E(t) [unit = u"J"] P(t) [unit = u"W"]
6-
D = Differential(t)
6+
@variables E(t) [unit = u"J"] P(t) [unit = u"W"]
77

88
# Basic access
99
@test MT.get_unit(t) == u"s"
@@ -66,22 +66,11 @@ good_eqs = [connect(p1, p2)]
6666
@named sys = ODESystem(good_eqs, t, [], [])
6767

6868
# Array variables
69-
@variables t [unit = u"s"] x(t)[1:3] [unit = u"m"]
69+
@variables x(t)[1:3] [unit = u"m"]
7070
@parameters v[1:3]=[1, 2, 3] [unit = u"m/s"]
71-
D = Differential(t)
7271
eqs = D.(x) .~ v
7372
ODESystem(eqs, name = :sys)
7473

75-
# Difference equation
76-
@parameters t [unit = u"s"] a [unit = u"s"^-1]
77-
@variables x(t) [unit = u"kg"]
78-
δ = Differential(t)
79-
D = Difference(t; dt = 0.1u"s")
80-
eqs = [
81-
δ(x) ~ a * x,
82-
]
83-
de = ODESystem(eqs, t, [x], [a], name = :sys)
84-
8574
# Nonlinear system
8675
@parameters a [unit = u"kg"^-1]
8776
@variables x [unit = u"kg"]
@@ -92,8 +81,7 @@ eqs = [
9281

9382
# SDE test w/ noise vector
9483
@parameters τ [unit = u"s"] Q [unit = u"W"]
95-
@variables t [unit = u"s"] E(t) [unit = u"J"] P(t) [unit = u"W"]
96-
D = Differential(t)
84+
@variables E(t) [unit = u"J"] P(t) [unit = u"W"]
9785
eqs = [D(E) ~ P - E / τ
9886
P ~ Q]
9987

@@ -112,9 +100,8 @@ noiseeqs = [0.1u"W" 0.1u"W"
112100
@test !MT.validate(eqs, noiseeqs)
113101

114102
# Non-trivial simplifications
115-
@variables t [unit = u"s"] V(t) [unit = u"m"^3] L(t) [unit = u"m"]
103+
@variables V(t) [unit = u"m"^3] L(t) [unit = u"m"]
116104
@parameters v [unit = u"m/s"] r [unit = u"m"^3 / u"s"]
117-
D = Differential(t)
118105
eqs = [D(L) ~ v,
119106
V ~ L^3]
120107
@named sys = ODESystem(eqs)
@@ -126,7 +113,7 @@ eqs = [D(V) ~ r,
126113
sys_simple = structural_simplify(sys)
127114

128115
@variables V [unit = u"m"^3] L [unit = u"m"]
129-
@parameters v [unit = u"m/s"] r [unit = u"m"^3 / u"s"] t [unit = u"s"]
116+
@parameters v [unit = u"m/s"] r [unit = u"m"^3 / u"s"]
130117
eqs = [V ~ r * t,
131118
V ~ L^3]
132119
@named sys = NonlinearSystem(eqs, [V, L], [t, r])
@@ -138,7 +125,7 @@ eqs = [L ~ v * t,
138125
sys_simple = structural_simplify(sys)
139126

140127
#Jump System
141-
@parameters β [unit = u"(mol^2*s)^-1"] γ [unit = u"(mol*s)^-1"] t [unit = u"s"] jumpmol [
128+
@parameters β [unit = u"(mol^2*s)^-1"] γ [unit = u"(mol*s)^-1"] jumpmol [
142129
unit = u"mol",
143130
]
144131
@variables S(t) [unit = u"mol"] I(t) [unit = u"mol"] R(t) [unit = u"mol"]
@@ -164,9 +151,9 @@ maj2 = MassActionJump(γ, [I => 1], [I => -1, R => 1])
164151
@named js3 = JumpSystem([maj1, maj2], t, [S, I, R], [β, γ])
165152

166153
#Test unusual jump system
167-
@parameters β γ t
154+
@parameters β γ
168155
@variables S(t) I(t) R(t)
169156

170157
maj1 = MassActionJump(2.0, [0 => 1], [S => 1])
171158
maj2 = MassActionJump(γ, [S => 1], [S => -1])
172-
@named js4 = JumpSystem([maj1, maj2], t, [S], [β, γ])
159+
@named js4 = JumpSystem([maj1, maj2], ModelingToolkit.t_nounits, [S], [β, γ])

test/funcaffect.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
using ModelingToolkit, Test, OrdinaryDiffEq
2+
using ModelingToolkit: t_nounits as t, D_nounits as D
23

3-
@parameters t
44
@constants h=1 zr=0
55
@variables u(t)
6-
D = Differential(t)
76

87
eqs = [D(u) ~ -u]
98

@@ -168,7 +167,6 @@ function Capacitor2(; name, C = 1.0)
168167
@named oneport = OnePort()
169168
@unpack v, i = oneport
170169
ps = @parameters C = C
171-
D = Differential(t)
172170
eqs = [
173171
D(v) ~ i / C,
174172
]

test/function_registration.jl

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
# ------------------------------------------------
88
module MyModule
99
using ModelingToolkit, DiffEqBase, LinearAlgebra, Test
10-
@parameters t x
10+
using ModelingToolkit: t_nounits as t, D_nounits as Dt
11+
@parameters x
1112
@variables u(t)
12-
Dt = Differential(t)
1313

1414
function do_something(a)
1515
a + 10
@@ -30,9 +30,9 @@ end
3030
module MyModule2
3131
module MyNestedModule
3232
using ModelingToolkit, DiffEqBase, LinearAlgebra, Test
33-
@parameters t x
33+
using ModelingToolkit: t_nounits as t, D_nounits as Dt
34+
@parameters x
3435
@variables u(t)
35-
Dt = Differential(t)
3636

3737
function do_something_2(a)
3838
a + 20
@@ -52,9 +52,9 @@ end
5252
# TEST: Function registration outside any modules.
5353
# ------------------------------------------------
5454
using ModelingToolkit, DiffEqBase, LinearAlgebra, Test
55-
@parameters t x
55+
using ModelingToolkit: t_nounits as t, D_nounits as Dt
56+
@parameters x
5657
@variables u(t)
57-
Dt = Differential(t)
5858

5959
function do_something_3(a)
6060
a + 30
@@ -72,9 +72,8 @@ u0 = 7.0
7272
# TEST: Function registration works with derivatives.
7373
# ---------------------------------------------------
7474
foo(x, y) = sin(x) * cos(y)
75-
@parameters t;
7675
@variables x(t) y(t) z(t);
77-
D = Differential(t);
76+
D = Dt
7877
@register_symbolic foo(x, y)
7978

8079
using ModelingToolkit: value, arguments, operation
@@ -97,9 +96,8 @@ function do_something_4(a)
9796
end
9897
@register_symbolic do_something_4(a)
9998
function build_ode()
100-
@parameters t x
99+
@parameters x
101100
@variables u(t)
102-
Dt = Differential(t)
103101
eq = Dt(u) ~ do_something_4(x) + (@__MODULE__).do_something_4(x)
104102
@named sys = ODESystem([eq], t, [u], [x])
105103
sys = complete(sys)

0 commit comments

Comments
 (0)