-
Notifications
You must be signed in to change notification settings - Fork 55
Description
Issue for @EveCharbie following her request during a recent discussion we had.
Get an error while trying to integrate a solution of an ocp with parameters, where the parameters if of the DM type instead of numpy type.
Error message:
Traceback (most recent call last):
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11225, in toarray
return np.array(self.T.elements()).reshape(self.shape)
^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11050, in T
@Property
KeyboardInterrupt
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/valentin/.local/share/JetBrains/Toolbox/apps/pycharm/plugins/python-ce/helpers/pydev/pydevd.py", line 1648, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/valentin/.local/share/JetBrains/Toolbox/apps/pycharm/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/valentin/PycharmProjects/hand_model_bioptim/ARMS_simulations/Custom_parameters/Index_test_custom_param.py", line 195, in
main()
~~~~^^
File "/home/valentin/PycharmProjects/hand_model_bioptim/ARMS_simulations/Custom_parameters/Index_test_custom_param.py", line 186, in main
sol2 = sol.integrate(integrator=SolutionIntegrator.SCIPY_RK45)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/optimization/solution/solution.py", line 833, in integrate
integrated_sol = solve_ivp_interface(
list_of_dynamics=[nlp.dynamics_func] * nlp.ns,
...<8 lines>...
method=integrator,
)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 90, in solve_ivp_interface
result = _solve_ivp_scipy_interface(
lambda t, x: np.array(
...<7 lines>...
method=method.value,
)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 119, in _solve_ivp_scipy_interface
result: Any = solve_ivp(dynamics, y0=x0, t_span=np.array(t_span), t_eval=t_eval, method=method)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/ivp.py", line 655, in solve_ivp
message = solver.step()
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 197, in step
success, message = self._step_impl()
~~~~~~~~~~~~~~~^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/rk.py", line 144, in _step_impl
y_new, f_new = rk_step(self.fun, t, y, self.f, h, self.A,
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self.B, self.C, self.K)
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/rk.py", line 64, in rk_step
K[s] = fun(t + c * h, y + dy)
~~~^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 154, in fun
return self.fun_single(t, y)
~~~~~~~~~~~~~~~^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 23, in fun_wrapped
return np.asarray(fun(t, y), dtype=dtype)
~~~^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 91, in
lambda t, x: np.array(
~~~~~~~~^
list_of_dynamics[node](
^^^^^^^^^^^^^^^^^^^^^^^
t, x, _control_function(control_type, t, t_span, u[node]), p, a[node], d[node]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
)[:, 0],
^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11187, in array
return self.array_custom(*args,**kwargs)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
SystemError: <function DM.array_custom at 0x7fd2de958ea0> returned a result with an exception set