@@ -40,11 +40,11 @@ begin
4040 loss = kd * (k1 - X)^ 2 + k2 * (kp * Y - X^ 2 )^ 2
4141
4242 # Create systems (without structural_simplify, since that might modify systems to affect intended tests).
43- osys = complete (ODESystem (diff_eqs, t; observed, name = :osys ))
44- ssys = complete (SDESystem (
45- diff_eqs, noise_eqs, t, [X, Y], [kp, kd, k1, k2]; observed, name = :ssys ))
43+ osys = complete (System (diff_eqs, t; observed, name = :osys ))
44+ ssys = complete (System (
45+ diff_eqs, t, [X, Y], [kp, kd, k1, k2]; noise_eqs, observed, name = :ssys ))
4646 jsys = complete (JumpSystem (jumps, t, [X, Y], [kp, kd, k1, k2]; observed, name = :jsys ))
47- nsys = complete (NonlinearSystem (alg_eqs; observed, name = :nsys ))
47+ nsys = complete (System (alg_eqs; observed, name = :nsys ))
4848 optsys = complete (OptimizationSystem (
4949 loss, [X, Y], [kp, kd, k1, k2]; observed, name = :optsys ))
5050end
@@ -57,14 +57,14 @@ begin
5757 p_vals = [kp => 1.0 , kd => 0.1 , k1 => 0.25 , k2 => 0.5 ]
5858
5959 # Creates problems.
60- oprob = ODEProblem (osys, u0_vals, tspan, p_vals )
61- sprob = SDEProblem (ssys, u0_vals, tspan, p_vals )
62- dprob = DiscreteProblem (jsys, u0_vals, tspan, p_vals )
63- jprob = JumpProblem (jsys, deepcopy (dprob), Direct (); rng)
64- nprob = NonlinearProblem (nsys, u0_vals, p_vals)
60+ oprob = ODEProblem (osys, [ u0_vals; p_vals], tspan )
61+ sprob = SDEProblem (ssys, [ u0_vals; p_vals], tspan )
62+ dprob = DiscreteProblem (jsys, )
63+ jprob = JumpProblem (jsys, [u0_vals; p_vals], tspan; aggregator = Direct (), rng)
64+ nprob = NonlinearProblem (nsys, [ u0_vals; p_vals] )
6565 hcprob = NonlinearProblem (HomotopyNonlinearFunction (nprob. f), nprob. u0, nprob. p)
66- ssprob = SteadyStateProblem (osys, u0_vals, p_vals)
67- optprob = OptimizationProblem (optsys, u0_vals, p_vals, grad = true , hess = true )
66+ ssprob = SteadyStateProblem (osys, [ u0_vals; p_vals] )
67+ optprob = OptimizationProblem (optsys, [ u0_vals; p_vals] , grad = true , hess = true )
6868 problems = [oprob, sprob, dprob, jprob, nprob, hcprob, ssprob, optprob]
6969 systems = [osys, ssys, jsys, jsys, nsys, nsys, osys, optsys]
7070
358358 ps = @parameters p[1 : 3 ] = [1 , 2 , 3 ]
359359 eqs = [collect (D .(x) .~ x)
360360 D (y) ~ norm (x) * y - x[1 ]]
361- @named sys = ODESystem (eqs, t, [sts... ;], ps)
361+ @named sys = System (eqs, t, [sts... ;], ps)
362362 sys = complete (sys)
363363 prob = ODEProblem (sys, [], (0 , 1.0 ))
364364 sol = solve (prob, Tsit5 ())
510510# Issue https://github.com/SciML/ModelingToolkit.jl/issues/2697
511511@testset " Interpolation of derivative of observed variables" begin
512512 @variables x (t) y (t) z (t) w (t)[1 : 2 ]
513- @named sys = ODESystem (
513+ @named sys = System (
514514 [D (x) ~ 1 , y ~ x^ 2 , z ~ 2 y^ 2 + 3 x, w[1 ] ~ x + y + z, w[2 ] ~ z * x * y], t)
515- sys = structural_simplify (sys)
515+ sys = mtkcompile (sys)
516516 prob = ODEProblem (sys, [x => 0.0 ], (0.0 , 1.0 ))
517517 sol = solve (prob, Tsit5 ())
518518 @test_throws ErrorException sol (1.0 , Val{1 }, idxs = y)
912912@testset " Continuous interpolation before discrete save" begin
913913 @variables x (t)
914914 @parameters c (t)
915- @mtkbuild sys = ODESystem (
916- D (x) ~ c * cos (x), t, [x], [c]; discrete_events = [1.0 => [c ~ c + 1 ]])
917- prob = ODEProblem (sys, [x => 0.0 ], ( 0.0 , 2pi ), [ c => 1.0 ])
915+ @mtkcompile sys = System (
916+ D (x) ~ c * cos (x), t, [x], [c]; discrete_events = [1.0 => [c ~ Pre (c) + 1 ]])
917+ prob = ODEProblem (sys, [x => 0.0 , c => 1.0 ], ( 0.0 , 2pi ) )
918918 sol = solve (prob, Tsit5 ())
919919 @test_nowarn sol (- 0.1 ; idxs = sys. x)
920920 @test_nowarn sol (- 0.1 ; idxs = [sys. x, 2 sys. x])
939939 osc2. jcn ~ osc1. delx]
940940 @named coupledOsc = System (eqs, t)
941941 @named coupledOsc = compose (coupledOsc, systems)
942- sys = structural_simplify (coupledOsc)
942+ sys = mtkcompile (coupledOsc)
943943 prob = DDEProblem (sys, [], (0.0 , 10.0 ); constant_lags = [sys. osc1. τ, sys. osc2. τ])
944944 sym = sys. osc1. delx
945945 delay = sys. osc1. τ
970970 osc2. jcn ~ osc1. delx]
971971 @named coupledOsc = System (eqs, t)
972972 @named coupledOsc = compose (coupledOsc, systems)
973- sys = structural_simplify (coupledOsc)
973+ sys = mtkcompile (coupledOsc)
974974 prob = SDDEProblem (sys, [], (0.0 , 10.0 ); constant_lags = [sys. osc1. τ, sys. osc2. τ])
975975 sym = sys. osc1. delx
976976 delay = sys. osc1. τ
@@ -983,14 +983,14 @@ end
983983@testset " RODESolutions save discretes" begin
984984 @parameters k (t)
985985 @variables A (t)
986- function affect2! (integ, u, p, ctx )
987- integ . ps[p . k] += 1.0
986+ function affect2! (m, o, ctx, integ )
987+ return (; k = m . k + 1.0 )
988988 end
989- db = 1.0 => (affect2!, [], [k], [k], nothing )
989+ db = 1.0 => ModelingToolkit . ImperativeAffect (affect2!; modified = (; k) )
990990
991- @named ssys = SDESystem (D (A) ~ k * A, [ 0.0 ], t, [A], [k], discrete_events = db)
991+ @named ssys = System (D (A) ~ k * A, t, [A], [k]; noise_eqs = [ 0.0 ] discrete_events = db)
992992 ssys = complete (ssys)
993- prob = SDEProblem (ssys, [A => 1.0 ], (0.0 , 4.0 ), [k => 1.0 ] )
993+ prob = SDEProblem (ssys, [A => 1.0 , k => 1.0 ], (0.0 , 4.0 ))
994994 sol = solve (prob, RI5 ())
995995 @test sol[k] isa AbstractVector
996996 @test sol[k] == [1.0 , 2.0 , 3.0 , 4.0 ]
0 commit comments