@@ -576,33 +576,47 @@ sol = solve(oprob_2nd_order_2, Rosenbrock23()) # retcode: Success
576576    pmap[p] =  2 q
577577    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
578578    test_parameter (prob, p, 2.0 )
579+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
580+     prob2. ps[p] =  0.0 
581+     test_parameter (prob2, p, 2.0 )
579582    #  `missing` default, provided guess
580583    @mtkbuild  sys =  ODESystem (
581584        [D (x) ~  x, p ~  x +  y], t; defaults =  [p =>  missing ], guesses =  [p =>  0.0 ])
582585    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ))
583586    test_parameter (prob, p, 2.0 )
584587    test_initializesystem (sys, u0map, pmap, p, 0  ~  p -  x -  y)
588+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
589+     prob2. ps[p] =  0.0 
590+     test_parameter (prob2, p, 2.0 )
585591
586592    #  `missing` to ODEProblem, equation from default
587593    @mtkbuild  sys =  ODESystem ([D (x) ~  x *  q, D (y) ~  y *  p], t; defaults =  [p =>  2 q])
588594    pmap[p] =  missing 
589595    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
590596    test_parameter (prob, p, 2.0 )
591597    test_initializesystem (sys, u0map, pmap, p, 0  ~  2 q -  p)
598+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
599+     prob2. ps[p] =  0.0 
592600    test_parameter (prob2, p, 2.0 )
593601    #  `missing` to ODEProblem, provided guess
594602    @mtkbuild  sys =  ODESystem (
595603        [D (x) ~  x, p ~  x +  y], t; guesses =  [p =>  0.0 ])
596604    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
597605    test_parameter (prob, p, 2.0 )
598606    test_initializesystem (sys, u0map, pmap, p, 0  ~  x +  y -  p)
607+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
608+     prob2. ps[p] =  0.0 
609+     test_parameter (prob2, p, 2.0 )
599610
600611    #  No `missing`, default and guess
601612    @mtkbuild  sys =  ODESystem ([D (x) ~  x *  q, D (y) ~  y *  p], t; defaults =  [p =>  2 q], guesses =  [p =>  0.0 ])
602613    delete! (pmap, p)
603614    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
604615    test_parameter (prob, p, 2.0 )
605616    test_initializesystem (sys, u0map, pmap, p, 0  ~  2 q -  p)
617+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
618+     prob2. ps[p] =  0.0 
619+     test_parameter (prob2, p, 2.0 )
606620
607621    #  Should not be solved for:
608622
658672
659673@testset  " Re-creating initialization problem on remake" begin 
660674    @variables  x (t) y (t)
661-     @parameters  p
675+     @parameters  p q 
662676    @mtkbuild  sys =  ODESystem (
663677        [D (x) ~  x, p ~  x +  y], t; defaults =  [p =>  missing ], guesses =  [x =>  0.0 , p =>  0.0 ])
664678    prob =  ODEProblem (sys, [x =>  1.0 , y =>  1.0 ], (0.0 , 1.0 ))
675689    @test  solve (prob4, Tsit5 ()). retcode ==  ReturnCode. InitialFailure
676690    prob5 =  remake (prob)
677691    @test  init (prob, Tsit5 ()). ps[p] ≈  2.0 
678- 
679-     @mtkbuild  sys =  ODESystem ([D (x) ~  x, p ~  x +  y], t; guesses =  [p =>  0.0 ])
680-     prob =  ODEProblem (sys, [x =>  1.0 , y =>  1.0 ], (0.0 , 1.0 ), [p =>  2.0 ])
681-     #  No value for `p`, not `missing`
682-     @test_throws  ModelingToolkit. MissingParametersError remake (
683-         prob; u0 =  [x =>  1.0 , y =>  3 x])
684-     prob2 =  remake (prob; u0 =  [x =>  1.0 , y =>  2 x +  exp (t)], p =  [p =>  missing ])
685-     @test  init (prob2, Tsit5 ()). ps[p] ≈  4.0 
686692end 
0 commit comments