Skip to Content

量子化学算法

概述

unitarylab_algorithms.quantum_chemistry 当前提供 MolecularDMRGAlgorithm,用于一次性执行以下四阶段流程:

分子几何与 PySCF/OpenFermion 电子结构 -> physics-tenpy DMRG 基态 -> SciPy L-BFGS-B CVD 线路转换 -> UnitaryLab QWC 分组测量与 OpenQASM 导出

该算法继承共享的 unitarylab_algorithms.algo_base.BaseAlgorithm,因此返回标准结果字典,并额外输出能量、活性空间、线路质量和测量信息。

安装与平台支持

除算法库外,还需安装主模拟器的 Chemistry 可选依赖:

pip install "unitarylab[chemistry]" unitarylab-algorithms

Molecular DMRG 及其独立 Chemistry 依赖目前仅支持 Linux 和 macOS,不支持 Windows。这一限制只影响本章的量子化学算法,不影响 unitarylab-algorithms 中其他类别在 Windows 上的使用。

算法实现当前通过兼容入口 unitarylab.library.chemistry 调用独立 Chemistry 包。用户只需按上述命令安装依赖;不要把该兼容实现细节理解为 Chemistry 仍包含在主模拟器内部。

导入与运行

MolecularDMRGAlgorithm 已列入根包 __all__:

from unitarylab_algorithms import MolecularDMRGAlgorithm algorithm = MolecularDMRGAlgorithm(text_mode="plain") result = algorithm.run( xyz_file="H2", basis="sto-3g", active_occupied_orbitals=1, active_virtual_orbitals=1, max_iterations=100, chi0=20, nsweeps=100, maxdim=100, cutoff=1e-8, shots=10_000, seed=2077, backend="torch", device="cpu", dtype="complex128", ) print(result["status"]) print(result["DMRG energy"]) print(result["Sampled energy"])

模块级 test() 接受可选的 xyz_file,并始终运行完整流程:

from unitarylab_algorithms.quantum_chemistry.molecular_dmrg.algorithm import test test(xyz_file="H2")

本算法不提供 Chemistry 底层工作流的阶段 target 参数,每次都会依次完成电子结构、DMRG、CVD 和 QWC 测量。

参数

参数默认值说明
xyz_filePython API 为 None内置分子名、.xyz 文件名或路径;None 使用代码内置 CH4.xyz,Web 参数配置默认选择 H2
basis"sto-3g"PySCF 原子轨道基组
charge、multiplicity0、1分子电荷与自旋多重度
active_occupied_orbitals3最大活性占据轨道数
active_virtual_orbitals3最大活性虚轨道数
max_iterations100每个局域 CVD 门的 L-BFGS-B 最大迭代次数
cvd_restarts、cvd_init_scale3、0.5CVD 重启次数与初始化尺度
chi0、maxdim20、100DMRG 初始与最大 bond dimension
nsweeps、cutoff100、1e-8DMRG 最大 sweep 数与截断阈值
shots、seed10000、2077每个 QWC 组的采样数与随机种子;shots=0 跳过采样但仍计算精确能量并导出 QASM
backend、device、dtypetorch、cpu、complex128CVD 线路测量使用的 UnitaryLab 执行配置

内置分子包括 H2、LiH、H2O、CH4、CO、CO2、C6H6、HF、N2、NH3 和 O2。传入不带扩展名的名称时,会在算法自带的 molecules/ 目录中查找对应 .xyz;也可以传入外部 XYZ 文件路径。

返回值与生成文件

结果包含标准字段 status、circuit_path、plot、circuit,以及以下算法字段:

  • HF energy、Active-space FCI energy、Active space
  • DMRG energy、CVD layers、CVD infidelity
  • UnitaryLab exact energy、Exact energy difference、Sampled energy
  • Measurement groups、Circuit depth、Circuit gates、QASM directory

默认结果目录为当前工作目录下的 results/quantum_chemistry/molecular_dmrg/。其中包含 BaseAlgorithm 结果 TXT、线路 SVG,以及 output/ 下的 PySCF 数据和各 QWC 测量组的 OpenQASM 2.0 文件。返回字典的 plot 会包含 TXT 和 QASM 文件项;QASM 项的 format 会被显式修正为 "qasm"。

注意事项

  • 活性空间、DMRG bond dimension、CVD 重启和迭代数会显著影响内存与运行时间,建议先用 H2/sto-3g 小体系验证环境。
  • 算法保留活性空间 FCI 参考值,但不提供旧实现中的 MP2、CISD、CCSD、完整 post-SCF FCI 开关或 Julia DMRG 输出。
  • MolecularDMRGResult 是底层 Chemistry 工作流的结果类型;本章算法对外返回的是 BaseAlgorithm 字典,不要混淆两者。
最后更新于