@@ -153,32 +153,6 @@ du = [0.0]
153
153
f (du, [1.0 ], [t -> t + 2 ], 5.0 )
154
154
@test du ≈ [27561 ]
155
155
156
- @testset " Issue#17: Conversion to first order ODEs" begin
157
- D3 = D^ 3
158
- D2 = D^ 2
159
- @variables u (t) uˍtt (t) uˍt (t) xˍt (t)
160
- eqs = [D3 (u) ~ 2 (D2 (u)) + D (u) + D (x) + 1
161
- D2 (x) ~ D (x) + 2 ]
162
- @named de = System (eqs, t)
163
- de1 = ode_order_lowering (de)
164
-
165
- @testset " Issue#219: Ordering of equations in `ode_order_lowering`" begin
166
- lowered_eqs = [D (uˍtt) ~ 2 uˍtt + uˍt + xˍt + 1
167
- D (xˍt) ~ xˍt + 2
168
- D (uˍt) ~ uˍtt
169
- D (u) ~ uˍt
170
- D (x) ~ xˍt]
171
- @test isequal (
172
- [ModelingToolkit. var_from_nested_derivative (eq. lhs)[1 ] for eq in equations (de1)],
173
- unknowns (@named lowered = System (lowered_eqs, t)))
174
- end
175
-
176
- test_diffeq_inference (" first-order transform" , de1, t, [uˍtt, xˍt, uˍt, u, x], [])
177
- du = zeros (5 )
178
- ODEFunction (complete (de1))(du, ones (5 ), nothing , 0.1 )
179
- @test du == [5.0 , 3.0 , 1.0 , 1.0 , 1.0 ]
180
- end
181
-
182
156
# Internal calculations
183
157
@parameters σ
184
158
a = y - x
@@ -348,16 +322,6 @@ eqs = [D(x) ~ σ * (y - x),
348
322
@test issym (equations (sys)[1 ]. rhs)
349
323
end
350
324
351
- @testset " Issue#708" begin
352
- @parameters a
353
- @variables x (t) y (t) z (t)
354
- @named sys = System ([D (x) ~ y, 0 ~ x + z, 0 ~ x - y], t, [z, y, x], [])
355
-
356
- sys2 = ode_order_lowering (sys)
357
- M = ModelingToolkit. calculate_massmatrix (sys2)
358
- @test M == Diagonal ([1 , 0 , 0 ])
359
- end
360
-
361
325
# issue #609
362
326
@variables x1 (t) x2 (t)
363
327
@@ -416,22 +380,6 @@ eqs = [
416
380
]
417
381
@test_throws ArgumentError ModelingToolkit. System (eqs, t, vars, pars, name = :foo )
418
382
419
- @variables x (t)
420
- @parameters M b k
421
- eqs = [D (D (x)) ~ - b / M * D (x) - k / M * x]
422
- ps = [M, b, k]
423
- default_u0 = [D (x) => 0.0 , x => 10.0 ]
424
- default_p = [M => 1.0 , b => 1.0 , k => 1.0 ]
425
- @named sys = System (eqs, t, [x], ps; defaults = [default_u0; default_p])
426
- sys = ode_order_lowering (sys)
427
- sys = complete (sys)
428
- prob = ODEProblem (sys, nothing , tspan)
429
- sol = solve (prob, Tsit5 ())
430
- @test sol. t[end ] == tspan[end ]
431
- @test sum (abs, sol. u[end ]) < 1
432
- prob = ODEProblem {false} (sys, nothing , tspan; u0_constructor = x -> SVector (x... ))
433
- @test prob. u0 isa SVector
434
-
435
383
# check_eqs_u0 kwarg test
436
384
@variables x1 (t) x2 (t)
437
385
eqs = [D (x1) ~ - x1]
@@ -1530,64 +1478,6 @@ end
1530
1478
@test osys1 != = osys2
1531
1479
end
1532
1480
1533
- @testset " dae_order_lowering basic test" begin
1534
- @parameters a
1535
- @variables x (t) y (t) z (t)
1536
- @named dae_sys = System ([
1537
- D (x) ~ y,
1538
- 0 ~ x + z,
1539
- 0 ~ x - y + z
1540
- ], t, [z, y, x], [])
1541
-
1542
- lowered_dae_sys = dae_order_lowering (dae_sys)
1543
- @variables x1 (t) y1 (t) z1 (t)
1544
- expected_eqs = [
1545
- 0 ~ x + z,
1546
- 0 ~ x - y + z,
1547
- Differential (t)(x) ~ y
1548
- ]
1549
- lowered_eqs = equations (lowered_dae_sys)
1550
- sorted_lowered_eqs = sort (lowered_eqs, by = string)
1551
- sorted_expected_eqs = sort (expected_eqs, by = string)
1552
- @test sorted_lowered_eqs == sorted_expected_eqs
1553
-
1554
- expected_vars = Set ([z, y, x])
1555
- lowered_vars = Set (unknowns (lowered_dae_sys))
1556
- @test lowered_vars == expected_vars
1557
- end
1558
-
1559
- @testset " dae_order_lowering test with structural_simplify" begin
1560
- @variables x (t) y (t) z (t)
1561
- @parameters M b k
1562
- eqs = [
1563
- D (D (x)) ~ - b / M * D (x) - k / M * x,
1564
- 0 ~ y - D (x),
1565
- 0 ~ z - x
1566
- ]
1567
- ps = [M, b, k]
1568
- default_u0 = [
1569
- D (x) => 0.0 , x => 10.0 , y => 0.0 , z => 10.0
1570
- ]
1571
- default_p = [M => 1.0 , b => 1.0 , k => 1.0 ]
1572
- @named dae_sys = System (eqs, t, [x, y, z], ps; defaults = [default_u0; default_p])
1573
-
1574
- simplified_dae_sys = structural_simplify (dae_sys)
1575
-
1576
- lowered_dae_sys = dae_order_lowering (simplified_dae_sys)
1577
- lowered_dae_sys = complete (lowered_dae_sys)
1578
-
1579
- tspan = (0.0 , 10.0 )
1580
- prob = ODEProblem (lowered_dae_sys, nothing , tspan)
1581
- sol = solve (prob, Tsit5 ())
1582
-
1583
- @test sol. t[end ] == tspan[end ]
1584
- @test sum (abs, sol. u[end ]) < 1
1585
-
1586
- prob = ODEProblem {false} (
1587
- lowered_dae_sys, nothing , tspan; u0_constructor = x -> SVector (x... ))
1588
- @test prob. u0 isa SVector
1589
- end
1590
-
1591
1481
@testset " Constraint system construction" begin
1592
1482
@variables x (.. ) y (.. ) z (.. )
1593
1483
@parameters a b c d e
0 commit comments