@@ -2,21 +2,26 @@ using OrdinaryDiffEq, Test, ADTypes
22import ODEProblemLibrary: prob_ode_vanderpol
33using ForwardDiff: Dual
44
5- sys = prob_ode_vanderpol. f. sys
6- prob1 = ODEProblem (sys, [sys. y => 0 , sys. x => 2.0 , sys. μ => inv (0.003 )], (0.0 , 6 ))
5+ # Create Van der Pol problem with same structure as the new ODEProblemLibrary implementation
6+ # New implementation uses: u[1] = x, u[2] = y, p[1] = μ
7+ # Van der Pol equations: dx/dt = y, dy/dt = μ * ((1 - x^2) * y - x)
8+ # Initial conditions: [x, y] = [2.0, 0] (matching the original [sys.x => 2.0, sys.y => 0])
79function __van (du, u, p, t)
10+ x, y = u[1 ], u[2 ]
811 μ = p[1 ]
9- du[1 ] = μ * (( 1 - u[ 2 ] ^ 2 ) * u[ 1 ] - u[ 2 ])
10- du[2 ] = 1 * u[ 1 ]
12+ du[1 ] = y # dx/dt = y
13+ du[2 ] = μ * (( 1 - x ^ 2 ) * y - x) # dy/dt = μ * ((1 - x^2) * y - x)
1114end
12- prob2 = ODEProblem (__van, [0 , 2.0 ], (0.0 , 6 ), inv (0.003 ))
15+ prob1 = ODEProblem (__van, [2.0 , 0.0 ], (0.0 , 6 ), [inv (0.003 )])
16+ prob2 = ODEProblem (__van, [2.0 , 0.0 ], (0.0 , 6 ), [inv (0.003 )])
1317# out-of-place test
1418function _van (u, p, t)
19+ x, y = u[1 ], u[2 ]
1520 μ = p[1 ]
16- [μ * (( 1 - u[ 2 ] ^ 2 ) * u[ 1 ] - u[ 2 ]),
17- 1 * u[ 1 ]]
21+ [y, # dx/dt = y
22+ μ * (( 1 - x ^ 2 ) * y - x)] # dy/dt = μ * ((1 - x^2) * y - x)
1823end
19- prob3 = ODEProblem (_van, [0 , 2 .0 ], (0.0 , 6 ), inv (0.003 ))
24+ prob3 = ODEProblem (_van, [2. 0 , 0 .0 ], (0.0 , 6 ), [ inv (0.003 )] )
2025probArr = [prob1, prob2, prob3]
2126
2227for prob in [prob2, prob3], u0 in [prob. u0, Dual .(prob. u0, prob. u0)]
0 commit comments