[ PROMPT_NODE_27220 ]
Qutip 高级用法
[ SKILL_DOCUMENTATION ]
# QuTiP 高级功能
## Floquet 理论
用于处理时间周期性哈密顿量 H(t + T) = H(t)。
### Floquet 模与准能量
python
from qutip import *
import numpy as np
# 时间周期性哈密顿量
w_d = 1.0 # 驱动频率
T = 2 * np.pi / w_d # 周期
H0 = sigmaz()
H1 = sigmax()
H = [H0, [H1, 'cos(w*t)']]
args = {'w': w_d}
# 计算 Floquet 模和准能量
f_modes, f_energies = floquet_modes(H, T, args)
print("准能量:", f_energies)
print("Floquet 模:", f_modes)
### t 时刻的 Floquet 态
python
# 获取特定时刻的 Floquet 态
t = 1.0
f_states_t = floquet_states(f_modes, f_energies, t)
### Floquet 态分解
python
# 在 Floquet 基下分解初始态
psi0 = basis(2, 0)
f_coeff = floquet_state_decomposition(f_modes, f_energies, psi0)
### Floquet-Markov 主方程
python
# 带有耗散的时间演化
c_ops = [np.sqrt(0.1) * sigmam()]
tlist = np.linspace(0, 20, 200)
result = fmmesolve(H, psi0, tlist, c_ops, e_ops=[sigmaz()], T=T, args=args)
# 绘制结果
import matplotlib.pyplot as plt
plt.plot(tlist, result.expect[0])
plt.xlabel('时间')
plt.ylabel('⟨σz⟩')
plt.show()
### Floquet 张量
python
# Floquet 张量(广义 Bloch-Redfield)
A_ops = [[sigmaz(), lambda w: 0.1 * w if w > 0 else 0]]
# 构建 Floquet 张量
R, U = floquet_markov_mesolve(H, psi0, tlist, A_ops, e_ops=[sigmaz()],
T=T, args=args)
### 有效哈密顿量
python
# 时间平均有效哈密顿量
H_eff = floquet_master_equation_steadystate(H, c_ops, T, args)
## 分层运动方程 (HEOM)
用于强系统-浴耦合的非马尔可夫开放量子系统。
### 基本 HEOM 设置
python
from qutip import heom
# 系统哈密顿量
H_sys = sigmaz()
# 浴关联函数(指数型)
Q = sigmax() # 系统-浴耦合算符
ck_real = [0.1] # 耦合强度
vk_real = [0.5] # 浴频率
# HEOM 浴
bath = heom.BosonicBath(Q, ck_real, vk_real)
# 初始态
rho0 = basis(2, 0) * basis(2, 0).dag()
# 创建 HEOM 求解器
max_depth = 5
hsolver = heom.HEOMSolver(H_sys, [bath], max_depth=max_depth)
# 时间演化
tlist = np.linspace(0, 10, 100)
result = hsolver.run(rho0, tlist)
# 提取约化系统密度矩阵
rho_sys = [r.extract_state(0) for r in result.states]