Release Notes#
0.5.1#
Bug Fixes#
DynamicsBackend.solve()
method has been fixed to allow y0 values of type np.ndarray.
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
.