@@ -2,7 +2,7 @@ using ModelingToolkit
2
2
using NonlinearSolve
3
3
using Test
4
4
5
- @variables x y z
5
+ @variables x y z u
6
6
@parameters σ ρ β
7
7
8
8
eqs = [0 ~ σ* (y- x),
@@ -14,22 +14,30 @@ par = [
14
14
ρ => 0.1 + σ,
15
15
β => ρ* 1.1
16
16
]
17
- ns = NonlinearSystem (eqs, [x,y,z],[σ,ρ,β], name= :ns , default_p= par)
17
+ u0 = [
18
+ x => u,
19
+ y => u,
20
+ z => u,
21
+ ]
22
+ ns = NonlinearSystem (eqs, [x,y,z],[σ,ρ,β], name= :ns , default_p= par, default_u0= u0)
18
23
ModelingToolkit. default_p (ns)
19
24
resolved = ModelingToolkit. varmap_to_vars (Dict (), parameters (ns), defaults= ModelingToolkit. default_p (ns))
20
25
@test resolved == [1 , 0.1 + 1 , (0.1 + 1 )* 1.1 ]
21
26
22
- prob = NonlinearProblem (ns, ones ( 3 ) , Pair[])
27
+ prob = NonlinearProblem (ns, [u => 1.0 ] , Pair[])
23
28
@show sol = solve (prob,NewtonRaphson ())
24
29
25
30
@variables a
26
31
@parameters b
27
- top = NonlinearSystem ([0 ~ - a + ns. x+ 1 ], [a], [b], systems= [ns], name= :top )
28
- flat = flatten (top)
29
- flat. b = ns. σ* 0.5
32
+ top = NonlinearSystem ([0 ~ - a + ns. x+ b], [a], [b], systems= [ns], name= :top )
33
+ top. b = ns. σ* 0.5
34
+
35
+ res = ModelingToolkit. varmap_to_vars (Dict (), parameters (top), defaults= ModelingToolkit. default_p (top))
36
+ @test res == [0.5 , 1 , 0.1 + 1 , (0.1 + 1 )* 1.1 ]
30
37
31
- flatres = ModelingToolkit . varmap_to_vars ( Dict (), parameters (flat), defaults = ModelingToolkit . default_p (flat) )
32
- @test flatres == [ 0.5 , 1 , 0.1 + 1 , ( 0.1 + 1 ) * 1.1 ]
38
+ prob = NonlinearProblem (top, [ states (ns, u) => 1.0 , a => 1.0 ], Pair[] )
39
+ @show sol = solve (prob, NewtonRaphson ())
33
40
34
- prob = NonlinearProblem (flat, ones (4 ), Pair[])
41
+ # test NullParameters+defaults
42
+ prob = NonlinearProblem (top, [states (ns, u)=> 1.0 , a=> 1.0 ])
35
43
@show sol = solve (prob,NewtonRaphson ())
0 commit comments