Release Notes¶
0.6.0¶
Prelude¶
0.6.0 is the last release of the package for the foreseeable future. This
release contains a series of bug fixes, as well as a new module systems for building
and operating on models of quantum systems. The readme has been modified to note that the
package is no longer being maintained.New Features¶
This release introduces the new
systemsmodule, containing tools for building abstract models of quantum systems. The module provides high-level interfaces for building models and performing non-trivial calculations, with the goal of minimizing the need for a user to explicitly build and work with arrays (an error-prone process). These interfaces sit at a level of abstraction above theSolverinterface, though still utilize this underlying functionality. See the Systems Modelling Tutorial and the How-to use advanced system modelling functionality for detailed examples.
Upgrade Notes¶
Support for Python 3.13 has been added.
DynamicsBackendnow returns results in hexadecimal. Previously, results were returned inn-ary, wherenis the value of themax_outcome_leveloption. The hexadecimal values are generated by callinghex(int(x, n)), wherenismax_outcome_levelandxis the originaln-ary value.
Corresponding to the above change, the default behaviour for
max_outcome_levelis now to treat aNonevalue as1.
This version of Qiskit Dynamics requires
qiskit <= 1.3, as a result of the removal ofqiskit.pulsein Qiskit 2.0. Due to the minimal dependance of Qiskit Dynamics on other parts of Qiskit, any workflow not utilizingqiskit.pulseshould still be compatible with the latest version of Qiskit.
In addition to the above, while Qiskit Dynamics does not formally depend on Qiskit Experiments, the
DynamicsBackendwill now only work with Qiskit Experiments 0.8 releases.
DynamicsBackend.solve()method can now work without specifying at_spanargument. The defaultt_spanis set to be[0, solve_input.duration]for each providedsolve_input. This allows users to solve the dynamics of a quantum circuit without having to specify its duration in advance.
Support for Python 3.9 has been dropped.
The dependency
qiskit_ibm_runtimehas been bounded to version0.36.1.
Qiskit Dynamics requires a version of Qiskit Experiments
<0.9.
To enable compatibility with QuTiP 5.0.0,
qutip.Qobjinstances are now converted to a raw array type in Dynamics via thequtip.Qobj.fullmethod. This method always returns a dense array, and hencequtip.Qobjinstances are no longer turned intoscipy.sparse.csr_matrixinstances in Dynamics.
Deprecation Notes¶
The
arrayanddispatchsubmodules have been removed.
Bug Fixes¶
Setting of the
num_qubitsTargetattribute inDynamicsBackendinitialization has been removed. Users will now need to set this atTargetinstantiation if needed.
DynamicsBackend.solve()method has been fixed to allow y0 values of type np.ndarray.
The data type of memory data produced by
DynamicsBackendfor measurement level 1 was changed from a Numpy array to a list in order to match the type documented for theExperimentResultDataclass in Qiskit. To get the old Numpy format back, it is sufficient to callnumpy.arrayon the result data.
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.