在阅读器中打开

This chapter is written in Chinese. Your browser’s translate feature gives a full English version.

12QC PROGRAMS
计算化学数据库与资源导航 2026 · 目录增补

量子化学程序与方法库

Quantum chemistry programs & method libraries

数据库第 12 类收录 28 个条目(编号 104–128、229–231)。第 10 类讲过 ORCA、Gaussian、Psi4 这类什么都能算的通用程序;这一类是它们旁边的专门工具:把某一类方法做到最好的程序(耦合簇、多参考、量子蒙特卡罗、相对论),让计算快几个数量级的近似方法(半经验、紧束缚、色散校正),以及藏在程序底下的积分库和执行层。全章用一个能自己复现的例子贯穿:水分子在平衡构型和两根 O–H 键都拉长到两倍时,各种方法离精确解有多远。

先选方法,再选程序

程序是方法的载体。同一个 CCSD(T),在 Molpro、CFOUR、MRCC、ORCA、Psi4 里算同一个闭壳层分子(同一几何、同一基组、同样的冻结核设置),能量应当一致到 10⁻⁶ hartree 的量级;不同的是速度、能算哪些性质、支持哪些变体(显式相关 F12、局域近似、解析梯度)。所以先回答“这个体系需要什么方法”,再挑最擅长这个方法的程序。

一、一张方法地图

下表按计算量从小到大排。“标度”指体系变大时耗时增长的幂次(N 约等于基函数数),是形式上的估计,局域近似和密度拟合能把实际增长压低很多。

方法家族形式标度典型用途什么时候不可靠本类的代表
半经验、紧束缚(PM7、GFN2-xTB、DFTB)N²–N³构象搜索、预优化、上千原子的筛选超出参数化覆盖的元素和成键MOPAC、Sparrow、xTB、tblite、DFTB+、CREST
密度泛函(加色散校正)N³–N⁴绝大多数基态结构、能量、频率强关联、自相互作用误差明显的体系;不加色散校正时的弱相互作用第 10 类的通用程序,加 DFT-D3 / D4
MP2N⁵相关能的便宜估计、双杂化泛函的一部分小带隙、过渡金属几乎所有程序
CCSD(T)N⁷单参考体系的“金标准”,配合完备基组外推可到化学精度(约 1 kcal/mol)键断裂、双自由基、近简并的过渡金属态Molpro、CFOUR、MRCC
CASSCF / CASPT2 / NEVPT2随活性空间指数增长,常规上约 18 个轨道以内键断裂、激发态、过渡金属活性空间选错;动态相关补得不够OpenMolcas、Molpro、BAGEL
DMRG多项式(由键维度控制)几十到上百个活性轨道的强关联三维、关联长程的体系收敛慢block2、CheMPS2
选择组态相互作用(CIPSI)、FCIQMC逼近全组态相互作用小分子的近精确基准体系一大就做不动Quantum Package、NECI
扩散蒙特卡罗(DMC)每步约 N³,带统计误差分子与固体的高精度能量,对基组不敏感固定节点误差;耗时长QMCPACK、CASINO

二、贯穿例子:水分子的方法阶梯

我们用 PySCF 2.15 在 6-31G 基组下算了水分子(13 个基函数,全部 10 个电子参与相关)。这个基组小到可以做全组态相互作用(FCI,1,656,369 个行列式),FCI 就是这个基组里的精确答案,其他方法都和它比。几何用 O–H 0.9572 Å、键角 104.52°;“拉长”是把两根 O–H 键同时拉到 1.9144 Å,键角不变。

方法平衡构型:离 FCI 多远两根键拉长到两倍:离 FCI 多远
Hartree–Fock(参照)−75.98400 hartree−75.58879 hartree
MP2+8.04 mEh(+5.05 kcal/mol)+45.41 mEh(+28.49 kcal/mol)
CCSD+1.52 mEh(+0.95 kcal/mol)+9.94 mEh(+6.24 kcal/mol)
CCSD(T)+0.52 mEh(+0.33 kcal/mol)−4.83 mEh(−3.03 kcal/mol)
FCI(精确)−76.12084 hartree−75.88054 hartree
T1 诊断(CCSD)0.0080.049

平衡构型下,阶梯一级比一级好,CCSD(T) 离精确值只有 0.33 kcal/mol。键拉长以后,MP2 差了 28 kcal/mol,CCSD 差 6 kcal/mol,而 CCSD(T) 跑到了精确能量的下面。这不是“更准了”,是方法失效的信号:(T) 是微扰校正,不受变分原理约束,轨道接近简并时会过度修正。同时 T1 诊断从 0.008 升到 0.049,超过了 Lee 和 Taylor 建议的 0.02 警戒线。这正是该换多参考方法(CASSCF 加 NEVPT2 或 CASPT2、DMRG),或者在小模型上用 CIPSI、FCIQMC 做近精确基准的时候。

要注意 6-31G 离完备基组很远,表里的数字只说明“同一个基组里方法差多少”。真实研究还要做基组收敛(cc-pVTZ、cc-pVQZ 再外推,或者用 F12 方法)。下面是复现用的程序,在 4 核的云端容器里每个几何约 10–25 秒:

import numpy as np
from pyscf import gto, scf, mp, cc, fci
r, th = 0.9572, np.deg2rad(104.52) / 2   # O-H in angstrom; use 2 * 0.9572 for the stretched case
mol = gto.M(atom=f'O 0 0 0; H 0 {r*np.sin(th)} {r*np.cos(th)}; H 0 {-r*np.sin(th)} {r*np.cos(th)}', basis='6-31g')
mf = scf.RHF(mol).run()
e_mp2 = mp.MP2(mf).run().e_tot
mycc = cc.CCSD(mf).run()
e_ccsd_t = mycc.e_tot + mycc.ccsd_t()
e_fci = fci.FCI(mf).kernel()[0]           # 1,656,369 determinants
t1 = np.sqrt(2 * np.sum(mycc.t1**2) / mol.nelectron)   # Lee-Taylor T1 diagnostic
print(mf.e_tot, e_mp2, mycc.e_tot, e_ccsd_t, e_fci, t1)

三、高精度单参考:耦合簇的三家专门程序

编号程序擅长获取与许可
104Molpro
www.molpro.net
多参考(CASSCF、MRCI、CASPT2)和显式相关 CCSD(T)-F12商业许可
106CFOUR
cfour.uni-mainz.de
耦合簇的解析梯度与二阶导数、EOM-CC 激发态、NMR 与振转光谱参数学术免费
107MRCC
www.mrcc.hu
任意阶耦合簇(CCSDT、CCSDTQ…),局域自然轨道 LNO-CCSD(T)学术免费

Molpro(104)

Werner、Knowles 等人维护的老牌程序(2020 年 JCP 综述)。两项招牌:一是多参考方法齐全,CASSCF、内收缩 MRCI、CASPT2 是很多过渡金属和激发态工作的参考;二是显式相关的 F12 方法,在波函数里显式加入依赖电子间距离的因子,让基组收敛快得多,较小的基组就能接近完备基组极限。

CFOUR(106)

名字取自 Coupled-Cluster techniques for Computational Chemistry。强项是耦合簇的导数:解析梯度和二阶导数让 CCSD(T) 级别的几何优化和谐振频率可行,再加上 EOM-CC 激发态、NMR 化学位移,以及做高精度转动和振动光谱时要的参数(2020 年 JCP 综述)。做小分子的高精度光谱常数,它是首选之一。

MRCC(107)

Kállay 组的程序,论文标题就是“从水到蛋白质”。一头是任意阶的耦合簇(CCSDT、CCSDTQ 以至更高),用来做小分子的极限精度;另一头是局域自然轨道 LNO-CCSD(T),把 CCSD(T) 推到上百个原子。ORCA 的 DLPNO-CCSD(T)(第 10 类)是同一思路的另一种实现。两者都有可控的截断阈值,发表时要写明用的是哪一档阈值。

四、多参考与强关联:活性空间方法

单个行列式描述不了的情形叫“静态相关”强:键断裂、双自由基、过渡金属的几个低能自旋态、光化学里的锥形交叉。做法是挑一组“活性轨道”,在里面做全组态相互作用,同时优化轨道(CASSCF),再用微扰理论(CASPT2、NEVPT2)补上活性空间外的动态相关。活性空间大到常规 CASSCF 算不动时,用 DMRG、选择 CI 或 FCIQMC 当活性空间求解器。

编号程序擅长获取与许可
105OpenMolcas
gitlab.com/Molcas/OpenMolcas
CASSCF / RASSCF、CASPT2、多态 CASPT2、自旋–轨道耦合态相互作用免费,LGPL-2.1
112BAGEL
nubakery.org
CASSCF、CASPT2、NEVPT2、MRCI;CASPT2 的解析梯度和非绝热耦合;基于 Dirac 方程的相对论多参考方法免费,GPL-3.0
114block2
github.com/block-hczhai/block2-preview
量子化学 DMRG,含含时、响应和有限温度算法,可接 PySCF免费,GPL-3.0
115CheMPS2
github.com/SebWouters/CheMPS2
自旋匹配的 DMRG 库,做 DMRG-CASSCF、DMRG-CASPT2免费,GPL-2.0
113Quantum Package
github.com/QuantumPackage/qp2
CIPSI 选择组态相互作用加二阶微扰,外推到 FCI免费,AGPL-3.0
116NECI
github.com/fkfest/NECI_STABLE
全组态相互作用量子蒙特卡罗(FCIQMC)免费,GPL-3.0

OpenMolcas 与 BAGEL(105、112)

OpenMolcas 是 Molcas 的开源版(2019 年 JCTC 论文,2023 年又有社区化的新综述),CASSCF / RASSCF 加 CASPT2 是它的核心,多态 CASPT2 和自旋–轨道耦合(RASSI)让它在过渡金属、镧系锕系和激发态上用得很多。BAGEL 是 Shiozaki 组从零写的现代程序,2018 年的综述把三项列为特色:CASPT2 的解析核梯度和导数耦合(适合多参考级别的激发态几何优化和锥形交叉搜索)、基于 Dirac 方程的相对论多参考波函数,以及用代码生成器 SMITH3 实现的新方法。

DMRG:block2 与 CheMPS2(114、115)

密度矩阵重整化群(White 1992)把波函数写成矩阵乘积态,用“键维度”控制精度和计算量,能处理几十到上百个活性轨道。block2(2023 年 JCP)出自 Garnet Chan 组,和 PySCF 配合可以把 DMRG 当成 CASSCF 的活性空间求解器,还支持含时、响应和有限温度算法。CheMPS2 是 Wouters 等人的自旋匹配实现(2014 年 CPC),也能接 PySCF 和 Psi4。DMRG 的能量随键维度增大而收敛,报告结果时要给出键维度和外推方式。

选择 CI 与 FCIQMC:Quantum Package 与 NECI(113、116)

Quantum Package 2.0 实现 CIPSI 算法:每轮用微扰估计挑出最重要的行列式加进变分空间,再加二阶微扰校正外推到 FCI 极限(2019 年 JCTC;论文说常规可以在约 2000 个 CPU 核上处理数千万个行列式)。NECI 实现 FCIQMC:一群“行者”在行列式空间里随机繁殖、死亡和湮灭,不需要固定节点(Booth、Thom、Alavi 2009;加“initiator”近似后见 Cleland 等 2010)。这两类方法主要用来给小分子提供近精确基准,或者当大活性空间的求解器。注意 Quantum Package 是 AGPL-3.0:把改过的版本放到网上让别人通过网络使用,也要公开源码。

活性空间怎么选

经验做法有三种:按化学直觉挑出参与断键的成键/反键轨道或者金属的 d 轨道;看自然轨道占据数,占据明显偏离 2 和 0 的轨道(常用阈值约 0.02 到 1.98)进活性空间,Pulay 和 Hamilton 1988 年提出用 UHF 自然轨道来定义活性空间;或者用自动化方案,例如 PySCF 里的 AVAS(从指定原子的价轨道投影出活性空间)和 autoCAS(按 DMRG 的轨道纠缠挑选)。无论哪种,都要检查结果对活性空间大小是否敏感。

五、量子蒙特卡罗

编号程序擅长获取与许可
117QMCPACK
qmcpack.org
实空间 VMC / DMC 和辅助场 QMC(AFQMC),分子与固体,GPU 加速免费,NCSA 开源许可(类 BSD)
118CASINO
vallico.net/casinoqmc
分子、固体和二维材料的 VMC / DMC学术免费

变分蒙特卡罗(VMC)用一个试探波函数(通常是 Slater 行列式乘上描述电子相关的 Jastrow 因子)在 3N 维坐标空间里随机取样求能量;扩散蒙特卡罗(DMC)再沿虚时间把它投影到基态。DMC 唯一的系统误差来自“固定节点”近似:结果的好坏取决于试探波函数的节点面。它的优点是对基组几乎不敏感、能直接做周期性固体,缺点是结果带统计误差棒,想把误差缩小一半要多算四倍的步数。实际工作中,试探波函数的轨道常由 PySCF 或平面波程序(第 13 类、第 10 类的 Quantum ESPRESSO)生成,所以 QMC 往往和这些程序连着用。QMCPACK(2020 年 JCP)和 CASINO(2020 年 JCP)各有一篇方法综述,Foulkes 等 2001 年的 RMP 综述是入门读物。

六、性质与相对论

编号程序擅长获取与许可
108Dalton
daltonprogram.org
响应理论:极化率、超极化率、双光子吸收、NMR / EPR 参数免费,LGPL-2.1
109DIRAC
diracprogram.org
四分量 Dirac–Coulomb 和二分量哈密顿量,重元素的 HF、DFT、耦合簇和性质免费,LGPL-2.1
110ReSpect
www.respectprogram.org
相对论 DFT:EPR、NMR 参数和实时含时光谱免费
111TURBOMOLE
www.turbomole.org
RI 近似下很快的 DFT、RI-MP2、CC2 激发态,分子 GW商业许可

Dalton 的核心是响应理论:把分子对外场的线性、二次、三次响应写成响应函数,一次算出极化率、超极化率、双光子吸收截面和磁学性质(2014 年 WIREs 综述;2020 年又有 Python 平台 Dalton Project)。TURBOMOLE 以速度见长,库仑和交换积分的分解近似(RI-J、RI-JK)让中等体系的 DFT 和 MP2 很快(2020 年 JCP)。

什么时候要相对论?第五、六周期元素的化学一般用带标量相对论修正的有效核势(ECP)就够了,第 2 类的 Basis Set Exchange 给重元素基组时会自动带上 ECP。要算重元素的自旋–轨道分裂、EPR g 张量、重原子附近的 NMR 屏蔽,或者需要和实验比到很细的光谱,才用 DIRAC(四分量,2020 年 JCP)或 ReSpect(相对论光谱 DFT,2020 年 JCP)。

七、更快的近似:半经验、紧束缚与色散校正

编号程序擅长获取与许可
119MOPAC
openmopac.net
PM6、PM7 等 NDDO 半经验方法,大分子的快速计算免费,Apache-2.0(MolSSI 维护)
120Sparrow
github.com/qcscine/sparrow
SCINE 项目的半经验库:MNDO、AM1、PM6、DFTB,为高通量和交互式计算优化免费,BSD-3-Clause
230xTB
github.com/grimme-lab/xtb
GFN1/GFN2-xTB 和 GFN-FF:优化、频率、分子动力学、隐式溶剂免费,LGPL-3.0
124tblite
github.com/tblite/tblite
xTB 哈密顿量的库实现,有 Python 接口,方便嵌进别的程序免费,LGPL-3.0
231DFTB+
dftbplus.org
SCC-DFTB、xTB 哈密顿量、含时 DFTB 激发态、非平衡格林函数输运免费,LGPL-3.0
121CREST
crest-lab.github.io
基于 xTB 的构象、质子化态搜索,还能估计分子的绝对熵免费,LGPL-3.0
122DFT-D4
github.com/dftd4/dftd4
D4 色散校正:C6 系数随原子电荷变化免费,LGPL-3.0
123simple-dftd3
github.com/dftd3/simple-dftd3
D3 色散校正(零阻尼、BJ 阻尼等)的重新实现,带 Python 接口免费,LGPL-3.0

这一组的用处是“先粗后精”。一个柔性分子的典型流程:CREST 在 GFN2-xTB 级别找出构象系综(2020 年 PCCP 首发,2024 年 JCP 新综述)→ 用 DFT 加色散校正重新优化前十几个构象 → 对最后几个构象做 DLPNO-CCSD(T) 或 LNO-CCSD(T) 单点。GFN2-xTB 的参数覆盖到 86 号元素氡,设计目标是约 1000 个原子的分子体系(2019 年 JCTC),速度比 DFT 快几个数量级,但它的能量只适合排序和预筛,不适合直接报告反应能。DFTB+ 的 SCC-DFTB 依赖 Slater–Koster 参数文件,参数文件单独发布,各有自己的使用条件。MOPAC 原是 Stewart 的商业程序(学术免费),现在以 Apache-2.0 开源,由 MolSSI 维护。

色散校正几乎是现代 DFT 的必需品:常见泛函本身描述不了长程的 London 色散,堆积、吸附、分子晶体都会算错。D3 的 BJ 阻尼版本(Grimme 2010、2011)是最常用的方案之一;D4(2019)让 C6 系数随原子所处的化学环境(原子电荷)变化。已经自带非局域相关的泛函(如 ωB97M-V 一类带 VV10 的泛函)和本身含 D4 的复合方法(如 r²SCAN-3c)不要再重复加。

八、程序底下的零件:积分库与执行层

编号程序擅长获取与许可
125Libint
github.com/evaleev/libint
高斯基组分子积分的代码生成器与库,Psi4、CP2K、MPQC 等在用免费;生成的库 LGPL-3.0,代码生成器 GPL-3.0
126libcint
github.com/sunqm/libcint
PySCF 的高斯积分库,支持多种积分和导数免费,Apache-2.0
127QCEngine
github.com/MolSSI/QCEngine
用同一套 QCSchema 输入调用 Psi4、ORCA、xtb 等程序,统一输出免费,BSD-3-Clause
229PySCF
pyscf.org
Python 量子化学框架:HF、DFT、MP2、耦合簇、CASSCF、周期体系免费,Apache-2.0
128ChemShell
www.chemshell.org
QM/MM 多尺度平台:把量子化学程序和分子力学程序组合起来,模拟酶与材料表面Py-ChemShell 免费,LGPL-3.0(旧的 Tcl-ChemShell 是 STFC 的专有许可)

积分是所有高斯基组程序的地基:每一个 Hartree–Fock 迭代、每一个 MP2 能量,底下都是几百万到几十亿个双电子积分。Libint 和 libcint(Sun 2015)把这件事做成独立的库,新程序不必从头写积分。QCEngine 属于 MolSSI 的 QCArchive 生态(2021 年 WIREs),它让“换一个程序再算一遍”变成改一个参数;本站开源代码台生成的 QCSchema 输入就是给它用的。PySCF(2018 年 WIREs、2020 年 JCP)本身就是一个方法库,本章的例子就是用它算的;第 10 类那一章的“动手算”则用纯 NumPy 从零写了一个 Hartree–Fock,可以对照着看框架替你做了什么。

ChemShell 管的是“体系太大,只有一小块需要量子力学”的情形:酶的活性中心用 QM,蛋白和溶剂用 MM,两者通过静电嵌入耦合;对离子晶体的表面和缺陷,它也能做嵌入团簇模型。新版 Py-ChemShell 用 Python 重写(2019 年 JCTC),可以驱动多种 QM 和 MM 程序。

九、怎么选:一张速查表

你的问题先用再核对
柔性分子有哪些构象CREST(GFN2-xTB)DFT-D4 重新排序
闭壳层有机分子的反应能、能垒DFT + D3/D4DLPNO 或 LNO-CCSD(T);看 T1 诊断
小分子的极限精度、光谱常数CFOUR、MRCC、Molpro(CCSD(T)、更高阶 CC、F12)基组外推和高阶校正
键断裂、双自由基、过渡金属自旋态OpenMolcas、BAGEL(CASSCF + CASPT2 / NEVPT2)改变活性空间;大活性空间用 block2 / CheMPS2
需要近精确的基准数据Quantum Package(CIPSI)、NECI(FCIQMC)和 DMRG 互相比对
固体或大分子的高精度能量QMCPACK、CASINO(DMC)试探波函数的节点依赖
极化率、NMR、EPR、重元素光谱Dalton、ReSpect、DIRAC相对论处理的层级
酶或表面上的局部反应ChemShell(QM/MM)QM 区大小的收敛
许可证对你意味着什么

“免费”的程序许可差别很大。把 GPL 程序当作独立的可执行文件调用,一般不影响你自己代码的许可;把 GPL 库(如 block2、CheMPS2)链接进你要分发的程序,整个程序就要按 GPL 分发;LGPL 库(如 Libint 生成的库、DFT-D4、xTB)允许被非 GPL 程序动态链接;AGPL(Quantum Package)连“通过网络提供服务”也算分发。学术免费的程序(CFOUR、MRCC、CASINO)通常不能转发给别人,商业程序的计算结果能否公开发表一般没有问题,但许可里对基准比较的限制要看清。以上是常见理解,不是法律意见,具体以各程序的许可文本为准。

讲解

这一类最容易犯的错,是把“程序名”当成“方法名”:说“用 Molpro 算的”不如说“用 CCSD(T)-F12b/cc-pVTZ-F12 算的”。同一个程序可以做从半经验到 FCI 的所有事,同一个方法在不同程序里结果应当一样。所以写方法部分时,程序和版本号要写,但更重要的是方法、基组、冻结核、局域近似的阈值、DMRG 的键维度这些决定结果的设置。本章的水分子例子说明了另一件事:数字本身不会告诉你方法已经失效,T1 诊断、自然轨道占据数、和更高级方法的对照才会。

参考文献

文献在 OpenAlex 逐条核对过;许可证按各项目官方仓库里的许可文件或官网说明核对,2026-11-10。示例数值由 PySCF 2.15.0 计算,复现脚本在本站仓库 tools/handbook-calcs.py。