I wanted to use the new step
method for the stochastic solver class SMESolver
, but it always breaks down. I also tried it for SSESolver
, but the same error message occurs. I use qutip 5.0.3. I took the example from the documentation as a minimal working example. I also tried step
for the MESolver
class and there it works. I think it should also not only output the state but also the measurement output if possible.
As a side note, I also wanted to know if there is a particular reason why the argument for the initial state in the start
method is called state0
for MESolver
, and state
for SMESolver
.
import numpy as np from qutip import destroy, coherent, SMESolver, expect # parameters DIM = 20 # Hilbert space dimension DELTA = 5 * 2 * np.pi # cavity detuning KAPPA = 2 # cavity decay rate INTENSITY = 4 # intensity of initial state NUMBER_OF_TRAJECTORIES = 500 # operators a = destroy(DIM) x = a + a.dag() H = DELTA * a.dag() * a rho_0 = coherent(DIM, np.sqrt(INTENSITY)) times = np.arange(0, 1, 0.0025) stoc_solver = SMESolver( H, c_ops=[], sc_ops=[np.sqrt(KAPPA) * a], heterodyne=False, options={"dt": 0.00125, "store_measurement": True,} ) data = [4.] stoc_solver.start(state=rho_0, t0=times[0]) for t in times[1:]: psi_t = stoc_solver.step(t) data.append(expect(x, psi_t))Code Output
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[4], line 29 27 stoc_solver.start(state=rho_0, t0=times[0]) 28 for t in times[1:]: ---> 29 psi_t = stoc_solver.step(t) 30 data.append(expect(x, psi_t)) File /user/anaconda/envs/myenv/lib/python3.9/site-packages/qutip/solver/multitraj.py:129, in MultiTrajSolver.step(self, t, args, copy) 127 raise RuntimeError("The `start` method must called first.") 128 self._argument(args) --> 129 _, state = self._integrator.integrate(t, copy=False) 130 return self._restore_state(state, copy=copy) ValueError: too many values to unpack (expected 2)Expected Behaviour
It should have returned the state at time step t instead of failing. It would also be nice if the method would return the output of the measurement current as well.
Your EnvironmentQuTiP Version: 5.0.3 Numpy Version: 1.26.4 Scipy Version: 1.13.1 Cython Version: None Matplotlib Version: 3.6.0 Python Version: 3.9.19 Number of CPUs: 16 BLAS Info: Generic INTEL MKL Ext: False Platform Info: Linux (x86_64)Additional Context
No response
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4