@@ -54,7 +54,7 @@ prob_ode_fitzhughnagumo = ODEProblem(fitz, [1.0; 1.0], (0.0, 1.0),
5454
5555eqs = [D (y) ~ μ * ((1 - x^ 2 ) * y - x),
5656 D (x) ~ y]
57- van = ODESystem (eqs, t; name = :van_der_pol ) |> structural_simplify |> complete
57+ van = System (eqs, t; name = :van_der_pol ) |> mtkcompile
5858
5959"""
6060Van der Pol Equations
@@ -70,7 +70,7 @@ with ``μ=1.0`` and ``u_0=[x => \\sqrt{3}, y => 0]``
7070
7171Non-stiff parameters.
7272"""
73- prob_ode_vanderpol = ODEProblem (van, [y => 0 , x => sqrt (3 )], ( 0.0 , 1.0 ), [μ => 1.0 ] , jac= true , eval_module = @__MODULE__ )
73+ prob_ode_vanderpol = ODEProblem (van, [y => 0 , x => sqrt (3 ), μ => 1.0 ], ( 0.0 , 1.0 ) , jac= true , eval_module = @__MODULE__ )
7474
7575"""
7676Van der Pol Equations
@@ -86,7 +86,7 @@ with ``μ=10^6`` and ``u_0=[x => \\sqrt{3}, y => 0]``
8686
8787Stiff parameters.
8888"""
89- prob_ode_vanderpol_stiff = ODEProblem (van, [y => 0 , x => sqrt (3 )], (0.0 , 1.0 ), [μ => 1e6 ] , jac= true , eval_module = @__MODULE__ )
89+ prob_ode_vanderpol_stiff = ODEProblem (van, [y => 0 , x => sqrt (3 ), μ => 1e6 ], (0.0 , 1.0 ), jac= true , eval_module = @__MODULE__ )
9090
9191# ROBER
9292@parameters k₁ k₂ k₃
@@ -95,7 +95,7 @@ prob_ode_vanderpol_stiff = ODEProblem(van, [y => 0, x => sqrt(3)], (0.0, 1.0), [
9595eqs = [D (y₁) ~ - k₁ * y₁ + k₃ * y₂ * y₃,
9696 D (y₂) ~ k₁ * y₁ - k₂ * y₂^ 2 - k₃ * y₂ * y₃,
9797 D (y₃) ~ k₂ * y₂^ 2 ]
98- rober = ODESystem (eqs, t; name = :rober ) |> structural_simplify |> complete
98+ rober = System (eqs, t; name = :rober ) |> mtkcompile
9999
100100"""
101101The Robertson biochemical reactions: (Stiff)
@@ -116,7 +116,7 @@ Hairer Norsett Wanner Solving Ordinary Differential Equations I - Nonstiff Probl
116116
117117Usually solved on ``[0,1e11]``
118118"""
119- prob_ode_rober = ODEProblem (rober, [y₁, y₂, y₃] .=> [1.0 ; 0.0 ; 0.0 ], ( 0.0 , 1e11 ), [k₁, k₂, k₃] .=> (0.04 , 3e7 , 1e4 ), jac = true , eval_module = @__MODULE__ )
119+ prob_ode_rober = ODEProblem (rober, [[ y₁, y₂, y₃] .=> [1.0 ; 0.0 ; 0.0 ]; [k₁, k₂, k₃] .=> (0.04 , 3e7 , 1e4 )], ( 0.0 , 1e11 ), jac = true , eval_module = @__MODULE__ )
120120
121121# Three Body
122122const threebody_μ = big (0.012277471 );
@@ -175,7 +175,7 @@ prob_ode_threebody = ODEProblem(threebody,
175175eqs = [D (y₁) ~ I₁ * y₂ * y₃,
176176 D (y₂) ~ I₂ * y₁ * y₃,
177177 D (y₃) ~ I₃ * y₁ * y₂]
178- rigid = ODESystem (eqs, t; name = :rigid_body ) |> structural_simplify |> complete
178+ rigid = System (eqs, t; name = :rigid_body ) |> mtkcompile
179179
180180"""
181181Rigid Body Equations (Non-stiff)
@@ -200,9 +200,8 @@ or Hairer Norsett Wanner Solving Ordinary Differential Equations I - Nonstiff Pr
200200
201201Usually solved from 0 to 20.
202202"""
203- prob_ode_rigidbody = ODEProblem (rigid, [y₁, y₂, y₃] .=> [1.0 , 0.0 , 0.9 ], (0.0 , 20.0 ),
204- [I₁, I₂, I₃] .=> (- 2.0 , 1.25 , - 0.5 ), jac = true ,
205- eval_module = @__MODULE__ )
203+ prob_ode_rigidbody = ODEProblem (rigid, [[y₁, y₂, y₃] .=> [1.0 , 0.0 , 0.9 ]; [I₁, I₂, I₃] .=> (- 2.0 , 1.25 , - 0.5 )], (0.0 , 20.0 ),
204+ jac = true , eval_module = @__MODULE__ )
206205
207206# Pleiades Problem
208207
@@ -359,12 +358,16 @@ eqs = [D(y1) ~ -p1 * y1 + p2 * y2 + p3 * y3 + p4,
359358 p2 * y6 + p11 * y7,
360359 D (y7) ~ p10 * y6 * y8 - p12 * y7,
361360 D (y8) ~ - p10 * y6 * y8 + p12 * y7]
362- hires = ODESystem (eqs, t; name = :hires ) |> structural_simplify |> complete
361+ hires = System (eqs, t; name = :hires ) |> mtkcompile
363362
364363u0 = zeros (8 )
365364u0[1 ] = 1
366365u0[8 ] = 0.0057
367366
367+ u0 = [y1, y2, y3, y4, y5, y6, y7, y8] .=> u0
368+ p = [p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12] .=> (1.71 , 0.43 , 8.32 , 0.0007 , 8.75 ,
369+ 10.03 , 0.035 , 1.12 , 1.745 , 280.0 , 0.69 , 1.81 )
370+
368371"""
369372Hires Problem (Stiff)
370373
@@ -387,18 +390,15 @@ where ``f`` is defined by
387390Reference: [demohires.pdf](http://www.radford.edu/~thompson/vodef90web/problems/demosnodislin/Demos_Pitagora/DemoHires/demohires.pdf)
388391Notebook: [Hires.ipynb](http://nbviewer.jupyter.org/github/JuliaDiffEq/DiffEqBenchmarks.jl/blob/master/StiffODE/Hires.ipynb)
389392"""
390- prob_ode_hires = ODEProblem (hires, [y1, y2, y3, y4, y5, y6, y7, y8] .=> u0, (0.0 , 321.8122 ),
391- [p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12] .=> (1.71 , 0.43 , 8.32 , 0.0007 , 8.75 ,
392- 10.03 , 0.035 , 1.12 , 1.745 , 280.0 ,
393- 0.69 , 1.81 ), jac = true , eval_module = @__MODULE__ )
393+ prob_ode_hires = ODEProblem (hires, [u0; p], (0.0 , 321.8122 ), jac = true , eval_module = @__MODULE__ )
394394
395395@parameters p1 p2 p3
396396@variables y1 (t) y2 (t) y3 (t)
397397
398398eqs = [D (y1) ~ p1 * (y2 + y1 * (1 - p2 * y1 - y2)),
399399 D (y2) ~ (y3 - (1 + y1) * y2) / p1,
400400 D (y3) ~ p3 * (y1 - y3)]
401- orego = ODESystem (eqs, t; name = :orego ) |> structural_simplify |> complete
401+ orego = System (eqs, t; name = :orego ) |> mtkcompile
402402
403403"""
404404Orego Problem (Stiff)
@@ -418,4 +418,4 @@ where ``s=77.27``, ``w=0.161`` and ``q=8.375⋅10^{-6}``.
418418Reference: [demoorego.pdf](http://www.radford.edu/~thompson/vodef90web/problems/demosnodislin/Demos_Pitagora/DemoOrego/demoorego.pdf)
419419Notebook: [Orego.ipynb](http://nbviewer.jupyter.org/github/JuliaDiffEq/DiffEqBenchmarks.jl/blob/master/StiffODE/Orego.ipynb)
420420"""
421- prob_ode_orego = ODEProblem (orego, [y1, y2, y3] .=> [1.0 , 2.0 , 3.0 ], ( 0.0 , 30.0 ), [p1, p2, p3] .=> [77.27 , 8.375e-6 , 0.161 ], jac = true , eval_module = @__MODULE__ )
421+ prob_ode_orego = ODEProblem (orego, [[ y1, y2, y3] .=> [1.0 , 2.0 , 3.0 ]; [p1, p2, p3] .=> [77.27 , 8.375e-6 , 0.161 ]], ( 0.0 , 30.0 ) , jac = true , eval_module = @__MODULE__ )
0 commit comments