Qutip

zLanqing/codex-claude-academic-skills/scientific-toolkit-skill/references/scientific-skills/qutip

作者 zLanqing7ed6377f0efb6a38951b48ef03b19d996e454b1fBSD-3-Clause license收录于 2026年10月9日更新于 2026年10月9日

Quantum physics simulation library for open quantum systems. Use when studying master equations, Lindblad dynamics, decoherence, quantum optics, or cavity QED. Best for physics research, open system dynamics, and educational simulations. NOT for circuit-based quantum computing—use qiskit, cirq, or pennylane for quantum algorithms and hardware execution.

AI 生成的概览

指导使用 QuTiP 进行量子物理模拟,涵盖开放与封闭量子系统、求解器与分析。

功能
该技能提供使用 QuTiP Python 库模拟量子力学系统的说明和参考资料。内容涵盖创建量子态与算符、运行 sesolve、mesolve、mcsolve 等时间演化求解器,以及计算熵、保真度、关联函数和稳态等物理量。它还介绍布洛赫球、维格纳函数和矩阵图等可视化方式,以及 Floquet 理论和 HEOM 等高级方法。
适用场景
适用于研究主方程、Lindblad 动力学、退相干、量子光学或腔量子电动力学。它面向物理研究、开放系统动力学和教学模拟。不适用于基于电路的量子计算,文档建议此类用途改用 qiskit、cirq 或 pennylane。
运行要求
需要 QuTiP Python 包,例如通过 uv pip install qutip 安装,示例还需要 NumPy 和 Matplotlib。可选包 qutip-qip 和 qutip-qtrl 分别提供量子信息处理与轨迹查看功能。该技能不附带脚本,仅为说明文档和参考资料。

QuTiP: Quantum Toolbox in Python

Overview

QuTiP provides comprehensive tools for simulating and analyzing quantum mechanical systems. It handles both closed (unitary) and open (dissipative) quantum systems with multiple solvers optimized for different scenarios.

Installation

bash
uv pip install qutip

Optional packages for additional functionality:

bash
# Quantum information processing (circuits, gates)uv pip install qutip-qip
# Quantum trajectory vieweruv pip install qutip-qtrl

Quick Start

python
from qutip import *import numpy as npimport matplotlib.pyplot as plt
# Create quantum statepsi = basis(2, 0)  # |0⟩ state
# Create operatorH = sigmaz()  # Hamiltonian
# Time evolutiontlist = np.linspace(0, 10, 100)result = sesolve(H, psi, tlist, e_ops=[sigmaz()])
# Plot resultsplt.plot(tlist, result.expect[0])plt.xlabel('Time')plt.ylabel('⟨σz⟩')plt.show()

Core Capabilities

1. Quantum Objects and States

Create and manipulate quantum states and operators:

python
# Statespsi = basis(N, n)  # Fock state |n⟩psi = coherent(N, alpha)  # Coherent state |α⟩rho = thermal_dm(N, n_avg)  # Thermal density matrix
# Operatorsa = destroy(N)  # Annihilation operatorH = num(N)  # Number operatorsx, sy, sz = sigmax(), sigmay(), sigmaz()  # Pauli matrices
# Composite systemspsi_AB = tensor(psi_A, psi_B)  # Tensor product

See references/core_concepts.md for comprehensive coverage of quantum objects, states, operators, and tensor products.

2. Time Evolution and Dynamics

Multiple solvers for different scenarios:

python
# Closed systems (unitary evolution)result = sesolve(H, psi0, tlist, e_ops=[num(N)])
# Open systems (dissipation)c_ops = [np.sqrt(0.1) * destroy(N)]  # Collapse operatorsresult = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# Quantum trajectories (Monte Carlo)result = mcsolve(H, psi0, tlist, c_ops, ntraj=500, e_ops=[num(N)])

Solver selection guide:

  • sesolve: Pure states, unitary evolution
  • mesolve: Mixed states, dissipation, general open systems
  • mcsolve: Quantum jumps, photon counting, individual trajectories
  • brmesolve: Weak system-bath coupling
  • fmmesolve: Time-periodic Hamiltonians (Floquet)

See references/time_evolution.md for detailed solver documentation, time-dependent Hamiltonians, and advanced options.

3. Analysis and Measurement

Compute physical quantities:

python
# Expectation valuesn_avg = expect(num(N), psi)
# Entropy measuresS = entropy_vn(rho)  # Von Neumann entropyC = concurrence(rho)  # Entanglement (two qubits)
# Fidelity and distanceF = fidelity(psi1, psi2)D = tracedist(rho1, rho2)
# Correlation functionscorr = correlation_2op_1t(H, rho0, taulist, c_ops, A, B)w, S = spectrum_correlation_fft(taulist, corr)
# Steady statesrho_ss = steadystate(H, c_ops)

See references/analysis.md for entropy, fidelity, measurements, correlation functions, and steady state calculations.

4. Visualization

Visualize quantum states and dynamics:

python
# Bloch sphereb = Bloch()b.add_states(psi)b.show()
# Wigner function (phase space)xvec = np.linspace(-5, 5, 200)W = wigner(psi, xvec, xvec)plt.contourf(xvec, xvec, W, 100, cmap='RdBu')
# Fock distributionplot_fock_distribution(psi)
# Matrix visualizationhinton(rho)  # Hinton diagrammatrix_histogram(H.full())  # 3D bars

See references/visualization.md for Bloch sphere animations, Wigner functions, Q-functions, and matrix visualizations.

5. Advanced Methods

Specialized techniques for complex scenarios:

python
# Floquet theory (periodic Hamiltonians)T = 2 * np.pi / w_drivef_modes, f_energies = floquet_modes(H, T, args)result = fmmesolve(H, psi0, tlist, c_ops, T=T, args=args)
# HEOM (non-Markovian, strong coupling)from qutip.nonmarkov.heom import HEOMSolver, BosonicBathbath = BosonicBath(Q, ck_real, vk_real)hsolver = HEOMSolver(H_sys, [bath], max_depth=5)result = hsolver.run(rho0, tlist)
# Permutational invariance (identical particles)psi = dicke(N, j, m)  # Dicke statesJz = jspin(N, 'z')  # Collective operators

See references/advanced.md for Floquet theory, HEOM, permutational invariance, stochastic solvers, superoperators, and performance optimization.

Common Workflows

Simulating a Damped Harmonic Oscillator

python
# System parametersN = 20  # Hilbert space dimensionomega = 1.0  # Oscillator frequencykappa = 0.1  # Decay rate
# Hamiltonian and collapse operatorsH = omega * num(N)c_ops = [np.sqrt(kappa) * destroy(N)]
# Initial statepsi0 = coherent(N, 3.0)
# Time evolutiontlist = np.linspace(0, 50, 200)result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# Visualizeplt.plot(tlist, result.expect[0])plt.xlabel('Time')plt.ylabel('⟨n⟩')plt.title('Photon Number Decay')plt.show()

Two-Qubit Entanglement Dynamics

python
# Create Bell statepsi0 = bell_state('00')
# Local dephasing on each qubitgamma = 0.1c_ops = [    np.sqrt(gamma) * tensor(sigmaz(), qeye(2)),    np.sqrt(gamma) * tensor(qeye(2), sigmaz())]
# Track entanglementdef compute_concurrence(t, psi):    rho = ket2dm(psi) if psi.isket else psi    return concurrence(rho)
tlist = np.linspace(0, 10, 100)result = mesolve(qeye([2, 2]), psi0, tlist, c_ops)
# Compute concurrence for each stateC_t = [concurrence(state.proj()) for state in result.states]
plt.plot(tlist, C_t)plt.xlabel('Time')plt.ylabel('Concurrence')plt.title('Entanglement Decay')plt.show()

Jaynes-Cummings Model

python
# System parametersN = 10  # Cavity Fock spacewc = 1.0  # Cavity frequencywa = 1.0  # Atom frequencyg = 0.05  # Coupling strength
# Operatorsa = tensor(destroy(N), qeye(2))  # Cavitysm = tensor(qeye(N), sigmam())  # Atom
# Hamiltonian (RWA)H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() * sm + a * sm.dag())
# Initial state: cavity in coherent state, atom in ground statepsi0 = tensor(coherent(N, 2), basis(2, 0))
# Dissipationkappa = 0.1  # Cavity decaygamma = 0.05  # Atomic decayc_ops = [np.sqrt(kappa) * a, np.sqrt(gamma) * sm]
# Observablesn_cav = a.dag() * an_atom = sm.dag() * sm
# Evolvetlist = np.linspace(0, 50, 200)result = mesolve(H, psi0, tlist, c_ops, e_ops=[n_cav, n_atom])
# Plotfig, axes = plt.subplots(2, 1, figsize=(8, 6), sharex=True)axes[0].plot(tlist, result.expect[0])axes[0].set_ylabel('⟨n_cavity⟩')axes[1].plot(tlist, result.expect[1])axes[1].set_ylabel('⟨n_atom⟩')axes[1].set_xlabel('Time')plt.tight_layout()plt.show()

Tips for Efficient Simulations

  1. Truncate Hilbert spaces: Use smallest dimension that captures dynamics
  2. Choose appropriate solver: sesolve for pure states is faster than mesolve
  3. Time-dependent terms: String format (e.g., 'cos(w*t)') is fastest
  4. Store only needed data: Use e_ops instead of storing all states
  5. Adjust tolerances: Balance accuracy with computation time via Options
  6. Parallel trajectories: mcsolve automatically uses multiple CPUs
  7. Check convergence: Vary ntraj, Hilbert space size, and tolerances

Troubleshooting

Memory issues: Reduce Hilbert space dimension, use store_final_state option, or consider Krylov methods

Slow simulations: Use string-based time-dependence, increase tolerances slightly, or try method='bdf' for stiff problems

Numerical instabilities: Decrease time steps (nsteps option), increase tolerances, or check Hamiltonian/operators are properly defined

Import errors: Ensure QuTiP is installed correctly; quantum gates require qutip-qip package

References

This skill includes detailed reference documentation:

  • references/core_concepts.md: Quantum objects, states, operators, tensor products, composite systems
  • references/time_evolution.md: All solvers (sesolve, mesolve, mcsolve, brmesolve, etc.), time-dependent Hamiltonians, solver options
  • references/visualization.md: Bloch sphere, Wigner functions, Q-functions, Fock distributions, matrix plots
  • references/analysis.md: Expectation values, entropy, fidelity, entanglement measures, correlation functions, steady states
  • references/advanced.md: Floquet theory, HEOM, permutational invariance, stochastic methods, superoperators, performance tips

External Resources

来源与署名

来源:zLanqing/codex-claude-academic-skills位于scientific-toolkit-skill/references/scientific-skills/qutip提交7ed6377

许可证: BSD-3-Clause license

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架