量子化学算法
概述
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-algorithmsMolecular 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_file | Python API 为 None | 内置分子名、.xyz 文件名或路径;None 使用代码内置 CH4.xyz,Web 参数配置默认选择 H2 |
basis | "sto-3g" | PySCF 原子轨道基组 |
charge、multiplicity | 0、1 | 分子电荷与自旋多重度 |
active_occupied_orbitals | 3 | 最大活性占据轨道数 |
active_virtual_orbitals | 3 | 最大活性虚轨道数 |
max_iterations | 100 | 每个局域 CVD 门的 L-BFGS-B 最大迭代次数 |
cvd_restarts、cvd_init_scale | 3、0.5 | CVD 重启次数与初始化尺度 |
chi0、maxdim | 20、100 | DMRG 初始与最大 bond dimension |
nsweeps、cutoff | 100、1e-8 | DMRG 最大 sweep 数与截断阈值 |
shots、seed | 10000、2077 | 每个 QWC 组的采样数与随机种子;shots=0 跳过采样但仍计算精确能量并导出 QASM |
backend、device、dtype | torch、cpu、complex128 | CVD 线路测量使用的 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 spaceDMRG energy、CVD layers、CVD infidelityUnitaryLab exact energy、Exact energy difference、Sampled energyMeasurement 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 字典,不要混淆两者。