diff --git a/qiskit_dynamics/backend/dynamics_backend.py b/qiskit_dynamics/backend/dynamics_backend.py index 04d1e6faf..61895e81f 100644 --- a/qiskit_dynamics/backend/dynamics_backend.py +++ b/qiskit_dynamics/backend/dynamics_backend.py @@ -380,7 +380,7 @@ def solve( # use default y0 if not given as parameter if y0 is None: y0 = self.options.initial_state - if y0 == "ground_state": + if isinstance(y0, str) and y0 == "ground_state": y0 = Statevector(self._dressed_states[:, 0]) solver_results = self.options.solver.solve( diff --git a/releasenotes/notes/fix-dynamics-backend-solve-bug-9feec2f51f62f9d3.yaml b/releasenotes/notes/fix-dynamics-backend-solve-bug-9feec2f51f62f9d3.yaml new file mode 100644 index 000000000..258c50a10 --- /dev/null +++ b/releasenotes/notes/fix-dynamics-backend-solve-bug-9feec2f51f62f9d3.yaml @@ -0,0 +1,3 @@ +fixes: + - | + :meth:`.DynamicsBackend.solve` method has been fixed to allow `y0` values of type `np.ndarray`. \ No newline at end of file diff --git a/test/dynamics/backend/test_dynamics_backend.py b/test/dynamics/backend/test_dynamics_backend.py index cc0e7d3d1..75fee362b 100644 --- a/test/dynamics/backend/test_dynamics_backend.py +++ b/test/dynamics/backend/test_dynamics_backend.py @@ -342,6 +342,8 @@ def test_solve(self): y0_and_expected_results.append( (None, Statevector(QuantumCircuit(1)).evolve(expected_unitary)) ) + # y0 is a np.array, we expect a np.array as a result + y0_and_expected_results.append((np.eye(static_ham.shape[0]), expected_unitary)) input_variety = [x_sched0, x_circ0] # solve for all combinations of input types and initial states