11using  OrdinaryDiffEq, ModelingToolkit, DataStructures, Test
22using  Optimization, RecursiveArrayTools, OptimizationOptimJL
3- using  LabelledArrays,  SymbolicIndexingInterface
3+ using  SymbolicIndexingInterface
44using  ModelingToolkit:  t_nounits as t, D_nounits as D
55using  SciMLBase:  parameterless_type
66
@@ -210,54 +210,6 @@ tspan = (0.0, 1.0)
210210prob =  ODEProblem (k, x0, tspan)
211211sys =  modelingtoolkitize (prob)
212212
213- # # https://github.com/SciML/ModelingToolkit.jl/issues/1054
214- using  LabelledArrays
215- using  ModelingToolkit
216- 
217- #  ODE model: simple SIR model with seasonally forced contact rate
218- function  SIR! (du, u, p, t)
219- 
220-     #  Unknowns
221-     (S, I, R) =  u[1 : 3 ]
222-     N =  S +  I +  R
223- 
224-     #  params
225-     β =  p. β
226-     η =  p. η
227-     φ =  p. φ
228-     ω =  1.0  /  p. ω
229-     μ =  p. μ
230-     σ =  p. σ
231- 
232-     #  FOI
233-     βeff =  β *  (1.0  +  η *  cos (2.0  *  π *  (t -  φ) /  365.0 ))
234-     λ =  βeff *  I /  N
235- 
236-     #  change in unknowns
237-     du[1 ] =  (μ *  N -  λ *  S -  μ *  S +  ω *  R)
238-     du[2 ] =  (λ *  S -  σ *  I -  μ *  I)
239-     du[3 ] =  (σ *  I -  μ *  R -  ω *  R)
240-     du[4 ] =  (σ *  I) #  cumulative incidence
241- end 
242- 
243- #  Solver settings
244- tmin =  0.0 
245- tmax =  10.0  *  365.0 
246- tspan =  (tmin, tmax)
247- 
248- #  Initiate ODE problem
249- theta_fix =  [1.0  /  (80  *  365 )]
250- theta_est =  [0.28 , 0.07 , 1.0  /  365.0 , 1.0 , 1.0  /  5.0 ]
251- p =  @LArray  [theta_est; theta_fix] (:β , :η , :ω , :φ , :σ , :μ )
252- u0 =  @LArray  [9998.0 , 1.0 , 1.0 , 1.0 ] (:S , :I , :R , :C )
253- 
254- #  Initiate ODE problem
255- problem =  ODEProblem (SIR!, u0, tspan, p)
256- sys =  complete (modelingtoolkitize (problem))
257- 
258- @test  all (isequal .(parameters (sys), getproperty .(@variables (β, η, ω, φ, σ, μ), :val )))
259- @test  all (isequal .(Symbol .(unknowns (sys)), Symbol .(@variables (S (t), I (t), R (t), C (t)))))
260- 
261213#  https://github.com/SciML/ModelingToolkit.jl/issues/1158
262214
263215function  ode_prob (du, u, p:: NamedTuple , t)
@@ -361,10 +313,6 @@ sys = modelingtoolkitize(prob)
361313            (1.0 , [:p ]),
362314            (1.0 , Dict (1  =>  :p )),
363315            (Dict (:a  =>  2 , :b  =>  4 ), Dict (:a  =>  :p , :b  =>  :q )),
364-             (LVector (a =  1 , b =  2 ), [:p , :q ]),
365-             (SLVector (a =  1 , b =  2 ), [:p , :q ]),
366-             (LVector (a =  1 , b =  2 ), Dict (1  =>  :p , 2  =>  :q )),
367-             (SLVector (a =  1 , b =  2 ), Dict (1  =>  :p , 2  =>  :q )),
368316            ((a =  1 , b =  2 ), (a =  :p , b =  :q )),
369317            ((a =  1 , b =  2 ), Dict (:a  =>  :p , :b  =>  :q ))
370318        ]
@@ -390,10 +338,6 @@ sys = modelingtoolkitize(prob)
390338            (1.0 , [:p , :q ]),
391339            (1.0 , Dict (1  =>  :p , 2  =>  :q )),
392340            (Dict (:a  =>  2 , :b  =>  4 ), Dict (:a  =>  :p , :b  =>  :q , :c  =>  :r )),
393-             (LVector (a =  1 , b =  2 ), [:p , :q , :r ]),
394-             (SLVector (a =  1 , b =  2 ), [:p , :q , :r ]),
395-             (LVector (a =  1 , b =  2 ), Dict (1  =>  :p , 2  =>  :q , 3  =>  :r )),
396-             (SLVector (a =  1 , b =  2 ), Dict (1  =>  :p , 2  =>  :q , 3  =>  :r )),
397341            ((a =  1 , b =  2 ), (a =  :p , b =  :q , c =  :r )),
398342            ((a =  1 , b =  2 ), Dict (:a  =>  :p , :b  =>  :q , :c  =>  :r ))
399343        ]
0 commit comments