|
1 | 1 | using OrdinaryDiffEq, ModelingToolkit, DataStructures, Test
|
2 | 2 | using Optimization, RecursiveArrayTools, OptimizationOptimJL
|
3 |
| -using LabelledArrays, SymbolicIndexingInterface |
| 3 | +using SymbolicIndexingInterface |
4 | 4 | using ModelingToolkit: t_nounits as t, D_nounits as D
|
5 | 5 | using SciMLBase: parameterless_type
|
6 | 6 |
|
@@ -210,54 +210,6 @@ tspan = (0.0, 1.0)
|
210 | 210 | prob = ODEProblem(k, x0, tspan)
|
211 | 211 | sys = modelingtoolkitize(prob)
|
212 | 212 |
|
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 |
| - |
261 | 213 | # https://github.com/SciML/ModelingToolkit.jl/issues/1158
|
262 | 214 |
|
263 | 215 | function ode_prob(du, u, p::NamedTuple, t)
|
|
0 commit comments