@@ -7,10 +7,9 @@ include("../testutils.jl")
7
7
@variables x (t)
8
8
@parameters τ
9
9
@variables RHS (t)
10
- @mtkbuild fol_separate = ODESystem ([RHS ~ (1 - x) / τ,
11
- D (x) ~ RHS], t)
10
+ @mtkcompile fol_separate = System ([RHS ~ (1 - x) / τ, D (x) ~ RHS], t)
12
11
13
- prob = ODEProblem (fol_separate, [x => 0.0 ], (0.0 , 10.0 ), [τ => 3.0 ] )
12
+ prob = ODEProblem (fol_separate, [x => 0.0 , τ => 3.0 ], (0.0 , 10.0 ))
14
13
sol = solve (prob, Tsit5 ())
15
14
16
15
sol_new = DiffEqArray (sol. u[1 : 10 ],
@@ -50,11 +49,10 @@ test_tables_interface(sol_new, [:timestamp, Symbol("x(t)")], hcat(sol_new[t], so
50
49
# Two components
51
50
@variables y (t)
52
51
@parameters α β γ δ
53
- @mtkbuild lv = ODESystem ([D (x) ~ α * x - β * x * y,
52
+ @mtkcompile lv = System ([D (x) ~ α * x - β * x * y,
54
53
D (y) ~ δ * x * y - γ * x * y], t)
55
54
56
- prob = ODEProblem (lv, [x => 1.0 , y => 1.0 ], (0.0 , 10.0 ),
57
- [α => 1.5 , β => 1.0 , γ => 3.0 , δ => 1.0 ])
55
+ prob = ODEProblem (lv, [x => 1.0 , y => 1.0 , α => 1.5 , β => 1.0 , γ => 3.0 , δ => 1.0 ], (0.0 , 10.0 ))
58
56
sol = solve (prob, Tsit5 ())
59
57
60
58
ts = 0 : 0.5 : 10
@@ -69,7 +67,7 @@ sts = @variables x(t)[1:3]=[1, 2, 3.0] y(t)=1.0
69
67
ps = @parameters p[1 : 3 ] = [1 , 2 , 3 ]
70
68
eqs = [collect (D .(x) .~ x)
71
69
D (y) ~ norm (collect (x)) * y - x[1 ]]
72
- @mtkbuild sys = ODESystem (eqs, t, sts, ps)
70
+ @mtkcompile sys = ODESystem (eqs, t, sts, ps)
73
71
prob = ODEProblem (sys, [], (0 , 1.0 ))
74
72
sol = solve (prob, Tsit5 ())
75
73
@test sol[x .+ [y, 2 y, 3 y]] ≈ vcat .(getindex .((sol,), [x[1 ] + y, x[2 ] + 2 y, x[3 ] + 3 y])... )
0 commit comments