@@ -2,21 +2,26 @@ using OrdinaryDiffEq, Test, ADTypes
2
2
import ODEProblemLibrary: prob_ode_vanderpol
3
3
using ForwardDiff: Dual
4
4
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])
7
9
function __van (du, u, p, t)
10
+ x, y = u[1 ], u[2 ]
8
11
μ = 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)
11
14
end
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 )])
13
17
# out-of-place test
14
18
function _van (u, p, t)
19
+ x, y = u[1 ], u[2 ]
15
20
μ = 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)
18
23
end
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 )] )
20
25
probArr = [prob1, prob2, prob3]
21
26
22
27
for prob in [prob2, prob3], u0 in [prob. u0, Dual .(prob. u0, prob. u0)]
0 commit comments