This should get around the problem first described in https://github.com/qucontrol/krotov/issues/93, and could a major improvement for the krotov package: The overhead from time propagation with the Krotov-specific "sequential update" has always been the bottleneck for this package. If this can be resolved, the krotov package would become applicable to significantly larger systems. For example, a gate optimization for two transmons (not truncated to two levels) has not been feasible, and the equivalent Python example had to restrict itself to a dramatically simplified setup. If everything with QuTiP 5.0 works as it looks it might, I would think that would enable to krotov package to optimize the "full" example.
Obviously, this depends on compatibility with the new QuTiP version (#116)
The example at https://qutip.readthedocs.io/en/v5.0.2/guide/dynamics/dynamics-class.html#stepping-through-the-run seems to indicate that in QuTiP 5.0, it is now possible to step through the propagation timestep-by-timestep, and more importantly, to update the control field after each time step.
This should get around the problem first described in https://github.com/qucontrol/krotov/issues/93, and could a major improvement for the
krotov
package: The overhead from time propagation with the Krotov-specific "sequential update" has always been the bottleneck for this package. If this can be resolved, thekrotov
package would become applicable to significantly larger systems. For example, a gate optimization for two transmons (not truncated to two levels) has not been feasible, and the equivalent Python example had to restrict itself to a dramatically simplified setup. If everything with QuTiP 5.0 works as it looks it might, I would think that would enable tokrotov
package to optimize the "full" example.Obviously, this depends on compatibility with the new QuTiP version (#116)
@BoxiLi @MatthiKrauss