@@ -54,42 +54,38 @@ jac = calculate_jacobian(de)
5454jacfun = eval (jac_expr[2 ])
5555
5656de = complete (de)
57- for f in [
58- ODEFunction (de, [x, y, z], [σ, ρ, β], tgrad = true , jac = true ),
59- eval (ODEFunctionExpr (de, [x, y, z], [σ, ρ, β], tgrad = true , jac = true ))
60- ]
61- # system
62- @test f. sys === de
63-
64- # iip
65- du = zeros (3 )
66- u = collect (1 : 3 )
67- p = ModelingToolkit. MTKParameters (de, [σ, ρ, β] .=> 4.0 : 6.0 )
68- f. f (du, u, p, 0.1 )
69- @test du == [4 , 0 , - 16 ]
70-
71- # oop
72- du = @SArray zeros (3 )
73- u = SVector (1 : 3 ... )
74- p = ModelingToolkit. MTKParameters (de, SVector {3} ([σ, ρ, β] .=> 4.0 : 6.0 ))
75- @test f. f (u, p, 0.1 ) === @SArray [4.0 , 0.0 , - 16.0 ]
76-
77- # iip vs oop
78- du = zeros (3 )
79- g = similar (du)
80- J = zeros (3 , 3 )
81- u = collect (1 : 3 )
82- p = ModelingToolkit. MTKParameters (de, [σ, ρ, β] .=> 4.0 : 6.0 )
83- f. f (du, u, p, 0.1 )
84- @test du == f (u, p, 0.1 )
85- f. tgrad (g, u, p, t)
86- @test g == f. tgrad (u, p, t)
87- f. jac (J, u, p, t)
88- @test J == f. jac (u, p, t)
89- end
57+ f = ODEFunction (de, [x, y, z], [σ, ρ, β], tgrad = true , jac = true ),
58+ # system
59+ @test f. sys === de
60+
61+ # iip
62+ du = zeros (3 )
63+ u = collect (1 : 3 )
64+ p = ModelingToolkit. MTKParameters (de, [σ, ρ, β] .=> 4.0 : 6.0 )
65+ f. f (du, u, p, 0.1 )
66+ @test du == [4 , 0 , - 16 ]
67+
68+ # oop
69+ du = @SArray zeros (3 )
70+ u = SVector (1 : 3 ... )
71+ p = ModelingToolkit. MTKParameters (de, SVector {3} ([σ, ρ, β] .=> 4.0 : 6.0 ))
72+ @test f. f (u, p, 0.1 ) === @SArray [4.0 , 0.0 , - 16.0 ]
73+
74+ # iip vs oop
75+ du = zeros (3 )
76+ g = similar (du)
77+ J = zeros (3 , 3 )
78+ u = collect (1 : 3 )
79+ p = ModelingToolkit. MTKParameters (de, [σ, ρ, β] .=> 4.0 : 6.0 )
80+ f. f (du, u, p, 0.1 )
81+ @test du == f (u, p, 0.1 )
82+ f. tgrad (g, u, p, t)
83+ @test g == f. tgrad (u, p, t)
84+ f. jac (J, u, p, t)
85+ @test J == f. jac (u, p, t)
9086
9187# check iip_config
92- f = eval ( ODEFunctionExpr ( de, [x, y, z], [σ, ρ, β], iip_config = (false , true ) ))
88+ f = ODEFunction ( de, [x, y, z], [σ, ρ, β], iip_config = (false , true ))
9389du = zeros (3 )
9490u = collect (1 : 3 )
9591p = ModelingToolkit. MTKParameters (de, [σ, ρ, β] .=> 4.0 : 6.0 )
@@ -146,7 +142,7 @@ eqs = [D(x) ~ σ′ * (y - x),
146142@named de = ODESystem (eqs, t)
147143test_diffeq_inference (" global iv-varying" , de, t, (x, y, z), (σ′, ρ, β))
148144
149- f = eval ( generate_function (de, [x, y, z], [σ′, ρ, β])[2 ])
145+ f = generate_function (de, [x, y, z], [σ′, ρ, β], expression = Val{ false } )[2 ]
150146du = [0.0 , 0.0 , 0.0 ]
151147f (du, [1.0 , 2.0 , 3.0 ], [x -> x + 7 , 2 , 3 ], 5.0 )
152148@test du ≈ [11 , - 3 , - 7 ]
@@ -157,15 +153,15 @@ eqs = [D(x) ~ σ(t - 1) * (y - x),
157153 D (z) ~ x * y - β * z * κ]
158154@named de = ODESystem (eqs, t)
159155test_diffeq_inference (" single internal iv-varying" , de, t, (x, y, z), (σ, ρ, β))
160- f = eval ( generate_function (de, [x, y, z], [σ, ρ, β])[2 ])
156+ f = generate_function (de, [x, y, z], [σ, ρ, β], expression = Val{ false } )[2 ]
161157du = [0.0 , 0.0 , 0.0 ]
162158f (du, [1.0 , 2.0 , 3.0 ], [x -> x + 7 , 2 , 3 ], 5.0 )
163159@test du ≈ [11 , - 3 , - 7 ]
164160
165161eqs = [D (x) ~ x + 10 σ (t - 1 ) + 100 σ (t - 2 ) + 1000 σ (t^ 2 )]
166162@named de = ODESystem (eqs, t)
167163test_diffeq_inference (" many internal iv-varying" , de, t, (x,), (σ,))
168- f = eval ( generate_function (de, [x], [σ])[2 ])
164+ f = generate_function (de, [x], [σ], expression = Val{ false } )[2 ]
169165du = [0.0 ]
170166f (du, [1.0 ], [t -> t + 2 ], 5.0 )
171167@test du ≈ [27561 ]
0 commit comments