Release Notes#
0.5.0#
Prelude#
0.5.0 introduces a major change to the internal array dispatching
mechanism. Users can now work directly with their supported array library of choice, without
the need to personally manage the dispatching behaviour using the Array class as in
previous versions. Internally, Qiskit Dynamics now uses Arraylias for dispatching. See the user guide
entry on using different array libraries with Qiskit Dynamics for more details on the updated approach.evaluation_mode) in models and related classes have also been changed. See
the upgrade notes for a list of such changes, as well as the updated user guide on
configuring simulations for performance for how to use the new
versions of these arguments.Array or any of the aformentioned model and solver
arguments. The Array class and array and dispatch submodules have been
deprecated, and will be removed in 0.6.0. The documentation for the previous release
0.4.5 is still available here.New Features#
Adds the
DynamicsBackend.solve()method for running simulations of circuits and schedules for arbitrary input types, and returning the ODE simulation results.
Upgrade Notes#
Support for Python 3.12 has been added, and Python 3.8 has been dropped.
The upper bound on JAX and Diffrax in the last version of Qiskit Dynamics has been removed. Users should try to use the latest version of JAX.
The interface for
GeneratorModel,HamiltonianModel, andLindbladModelhave been modified. Thecopymethod has been removed, and all setter methods other thanin_frame_basisandsignalshave been removed. Theevaluation_modeconstruction argument has been replaced byarray_library, which controls which array library is used internally to store and evaluate operations, and the additionalvectorizedboolean argument has been added toLindbladModelto control whether the equation is evaluated in vectorized mode. Note that, regardless of array library used, dense arrays must be supplied to the constructors of these classes, due to peculiarities of the internal setup for sparse libraries.
In conjunction with the change to the
evaluation_modeargument in the model classes, theSolverclass has been updated to take thearray_libraryconstructor argument, as well as thevectorizedconstructor argument (for use when Lindblad terms are present).
Similar to the
Solverinitialization method, theDynamicsBackend.from_backend()constructor method argumentevaluation_modehas been removed and replaced by the argumentsarray_libraryandvectorized.
The logic in
Solver.solve()for automaticjitcompiling when using JAX and simulating a list of schedules has been updated to no longer be based on whenArray.default_backend() == "jax". The attempted automaticjitnow occurs based purely on whethermethod="jax_odeint", ormethodis a Diffrax integration method. A warning will be raised if thearray_libraryis not known to be compatible with the compilation routine. (For now,"scipy_sparse"is the onlyarray_librarynot compatible with this routine, however a warning will still be raised if no explicitarray_libraryis provided, as in this case the JAX-compatibility is unknown.)
Deprecation Notes#
The
arrayanddispatchsubmodules of Qiskit Dynamics have been deprecated as of version 0.5.0, and will be removed in version0.6.0.