从qutip获取mcsolve功能

时间:2017-12-14 20:10:06

标签: python windows anaconda qutip

我在anaconda下使用qutip包。我只是在脚本中调用函数mcsolve。现在,当在Jupyter笔记本下运行时,脚本会在几秒钟内运行,并显示结果。但是当在Spyder内运行时,它会卡住并且永远不会完成。我从未在qutip中的其他功能中遇到此问题。

在Spyder中运行这些打印' aa'然后' bb'但永远不会到达' cc' line:

import qutip as qt
import numpy as np
import matplotlib.pyplot as plt

# Some constants
g = 100
delta = 10
Ka = g/2.5
Gamma = g/200
Gammap = g/50
Nu = 2*g
Delta_a = -4.12*g
Delta_c = Delta_a +delta*g

N = 4

sm = qt.tensor(qt.qeye(N),qt.sigmam())
sp = sm.dag()
a = qt.tensor(qt.destroy(N),qt.qeye(2))
adag = a.dag()

H = Delta_aspsm + Delta_cadaga + g*(adagsm+spa)+Nu*(sp+sm)

sz = qt.tensor(qt.qeye(N),qt.sigmaz())
C1 = np.sqrt(2*Ka)*a C2 = np.sqrt(Gamma)*sm
C3 = np.sqrt(Gammap/4.0)*(spsm-smsp)

rhoss = qt.steadystate(H,[C1,C2,C3])
print('aa')

times = np.linspace(0,10,1000)
IC = qt.tensor(qt.basis(N,0),qt.basis(2,1))
print('bb')

data = qt.mcsolve(H,IC,times,[C1,C2,C3],[adaga,spsm],ntraj = 1)
print('cc') 

1 个答案:

答案 0 :(得分:0)

我修改了您的代码,以便可以用于python 3,我正在使用Eclipse IDE,但问题不是IDE(Spider / Jupyter),因为我遇到了同样的问题。

ERROR Image

这是一个多处理问题,也许您的Jupyter笔记本使用了不同的python解释器。 这是您的代码的修改后的版本:

import qutip as qt
import numpy as np
import matplotlib.pyplot as plt

# Some constants
g = 100
delta = 10
Ka = g/2.5
Gamma = g/200
Gammap = g/50
Nu = 2*g
Delta_a = -4.12*g
Delta_c = Delta_a +delta*g

N = 4

sm = qt.tensor(qt.qeye(N),qt.sigmam())
sp = sm.dag()
a = qt.tensor(qt.destroy(N),qt.qeye(2))
adag = a.dag()

H = Delta_a*sp*sm + Delta_c*adag*a + g*(adag*sm+sp*a)+Nu*(sp+sm)

sz = qt.tensor(qt.qeye(N),qt.sigmaz())
C1 = np.sqrt(2*Ka)*a 
C2 = np.sqrt(Gamma)*sm
C3 = np.sqrt(Gammap/4.0)*(sp*sm-sm*sp)

rhoss = qt.steadystate(H,c_op_list=[C1,C2,C3])
print('aa')

times = np.linspace(0,10,1000)
IC = qt.tensor(qt.basis(N,0),qt.basis(2,1))
print('bb')

data = qt.mcsolve(H,IC,times,[C1,C2,C3],[adag*a,sp*sm],ntraj = 10)
print('cc') 

似乎并行处理有些问题,请看这里: https://github.com/pytorch/pytorch/issues/5858 我在运行时遇到了同样的错误。除非您询问conda的开发人员,否则它没有任何安全的处理方式。但是,通过猴子补丁,我设法运行了它,这是我的控制台映像:

Execution without error

警告该解决方案不稳定,并可能导致某些不一致之处 转到

C:\Users\Your_username\AppData\Local\Continuum\anaconda3\Lib\multiprocess\spawn.py

现在将其添加到脚本的最后:

def _check_not_importing_main():
     pass