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
systems
module, 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 theSolver
interface, 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.
DynamicsBackend
now returns results in hexadecimal. Previously, results were returned inn
-ary, wheren
is the value of themax_outcome_level
option. The hexadecimal values are generated by callinghex(int(x, n))
, wheren
ismax_outcome_level
andx
is the originaln
-ary value.
Corresponding to the above change, the default behaviour for
max_outcome_level
is now to treat aNone
value as1
.
This version of Qiskit Dynamics requires
qiskit <= 1.3
, as a result of the removal ofqiskit.pulse
in Qiskit 2.0. Due to the minimal dependance of Qiskit Dynamics on other parts of Qiskit, any workflow not utilizingqiskit.pulse
should 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
DynamicsBackend
will now only work with Qiskit Experiments 0.8 releases.
DynamicsBackend.solve()
method can now work without specifying at_span
argument. The defaultt_span
is 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_runtime
has 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.Qobj
instances are now converted to a raw array type in Dynamics via thequtip.Qobj.full
method. This method always returns a dense array, and hencequtip.Qobj
instances are no longer turned intoscipy.sparse.csr_matrix
instances in Dynamics.
Deprecation Notes¶
The
array
anddispatch
submodules have been removed.
Bug Fixes¶
Setting of the
num_qubits
Target
attribute inDynamicsBackend
initialization has been removed. Users will now need to set this atTarget
instantiation if needed.
DynamicsBackend.solve()
method has been fixed to allow y0 values of type np.ndarray.
The data type of memory data produced by
DynamicsBackend
for measurement level 1 was changed from a Numpy array to a list in order to match the type documented for theExperimentResultData
class in Qiskit. To get the old Numpy format back, it is sufficient to callnumpy.array
on 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
, andLindbladModel
have been modified. Thecopy
method has been removed, and all setter methods other thanin_frame_basis
andsignals
have been removed. Theevaluation_mode
construction argument has been replaced byarray_library
, which controls which array library is used internally to store and evaluate operations, and the additionalvectorized
boolean argument has been added toLindbladModel
to 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_mode
argument in the model classes, theSolver
class has been updated to take thearray_library
constructor argument, as well as thevectorized
constructor argument (for use when Lindblad terms are present).
Similar to the
Solver
initialization method, theDynamicsBackend.from_backend()
constructor method argumentevaluation_mode
has been removed and replaced by the argumentsarray_library
andvectorized
.
The logic in
Solver.solve()
for automaticjit
compiling when using JAX and simulating a list of schedules has been updated to no longer be based on whenArray.default_backend() == "jax"
. The attempted automaticjit
now occurs based purely on whethermethod="jax_odeint"
, ormethod
is a Diffrax integration method. A warning will be raised if thearray_library
is not known to be compatible with the compilation routine. (For now,"scipy_sparse"
is the onlyarray_library
not compatible with this routine, however a warning will still be raised if no explicitarray_library
is provided, as in this case the JAX-compatibility is unknown.)
Deprecation Notes¶
The
array
anddispatch
submodules of Qiskit Dynamics have been deprecated as of version 0.5.0, and will be removed in version0.6.0
.