量子化学 / DFT 计算

DFT 计算入门:ORCA 与 Gaussian 输入文件、泛函与基组选择、几何优化与频率检查

本页面向第一次做分子体系 DFT 计算的研究生:几何优化、频率、单点能、过渡态。ORCA 部分按 6.1 版手册与教程核对,Gaussian 部分按 G16 文档核对,泛函与基组建议来自 Grimme 组 2022 年的最佳实践指南和 Sobereva 的博文。优化、频率、过渡态与 IRC 在本机用 Psi4 1.11 和 xtb 6.7.1 实际跑过,并给出用时和结果。

直接答案

分子体系 DFT 计算的通行流程是:用 xtb/CREST 做构象搜索;用 B3LYP-D3(BJ)/def2-SVP 或 r2SCAN-3c 做几何优化和频率;确认极小点没有虚频、过渡态恰好一个虚频并做 IRC;再用 ωB97M-V、ωB97X-D 或 M06-2X 配 def2-TZVP 算单点能,加上低水平频率给出的热校正得到自由能。色散校正必须加,不加时 B3LYP 连苯二聚体的结合都描述不出来。ORCA 是学术免费的首选程序,%maxcore 是每核内存,总量控制在物理内存的 75% 左右;Gaussian 的 %mem 是总内存。

选软件

分子体系的 DFT 计算,学术用户首选 ORCA 或 Gaussian;构象搜索和预优化用 xtb/CREST;晶体、表面等周期性体系换用平面波或混合基组程序。

搜索词“orca”在 Bing 中只有约一成结果指向量子化学程序,其余是虎鲸和同名软件。下载 ORCA 请直接从 orcaforum.kofo.mpg.de 或 FACCTs 官网进入。

CentOS 等系统自带一个同名的屏幕阅读器 orca,直接输入 orca 可能启动的是它。用完整路径或 alias 调用 ORCA 可以避免这个问题。

程序获取方式适合的任务需要知道的限制
ORCA 6.1(当前 6.1.1,2025-12)学术用户在 ORCA 论坛注册后免费下载;Linux 版需配套 OpenMPI(6.1.0 对应 4.1.8)分子 DFT、TDDFT、DLPNO-CCSD(T)、双杂化泛函;RIJCOSX 使杂化泛函明显快于 Gaussian并行必须写完整路径;%maxcore 是每核内存;原子编号从 0 开始
Gaussian 16商业软件,课题组或学校购买分子 DFT、TS 与 IRC、溶剂模型;GaussView 建模与看振动最方便不支持 ωB97M-V;杂化泛函无 RI 加速;%mem 是整个作业的总内存
xtb 6.7 / CREST 3.0开源,conda-forge 可装GFN2-xTB 半经验预优化、构象搜索、大体系初筛能量精度不足以直接写进论文,构象需要用 DFT 重新排序
Psi4 1.11 / PySCF 2.14开源,conda-forge 可装没有 ORCA、Gaussian 时练习完整流程;脚本化批量计算大体系效率低于 ORCA;Psi4 对多数色散校正泛函的频率用数值差分
VASP、Quantum ESPRESSO、CP2KVASP 商业;QE、CP2K 开源晶体、表面、吸附、催化剂模型等周期性体系平面波基组与本文的高斯基组概念不同;数百原子的近球形团簇用 CP2K 比 ORCA 快得多

泛函与基组

通行做法是用便宜的级别做优化和频率,用更高的级别算单点能。几何结构和频率对基组不敏感,能量对基组和泛函都敏感。

色散校正必须加。B3LYP、PBE0 等常规泛函描述不了范德华吸引,Grimme 等人 2022 年的最佳实践指南写明色散校正“在任何 DFT 处理中都不可缺少”。加 D3(BJ) 几乎不增加耗时。

B3LYP/6-31G* 过时的依据有两条:缺少色散导致“过度排斥”,小基组带来严重的基组重叠误差(BSSE)。Kruse、Goerigk、Grimme 2012 年在 J. Org. Chem. 上专门讨论了这个组合在热化学上的误差抵消问题;Bursch 等 2022 年在 Angew. Chem. 的指南中说改进的方法已经使 B3LYP/6-31G* 计算“过时”。Sobereva 把 6-31G* 列为 2-zeta 的“最低可接受级别”,并说明“最低可接受”不代表可以直接拿来发文章。

BSSE 是二聚体中每个单体借用对方基函数造成的虚假稳定,基组越小越严重。2-zeta 基组算结合能时要用 counterpoise 校正;算化学键键能时 Sobereva 认为 counterpoise 多余甚至有害。

ωB97M-V 在 ORCA 中只有解析梯度、没有解析 Hessian,频率计算很贵,适合只做单点。M06-2X 对积分格点敏感,用它优化容易出现小虚频和收敛困难。

柔性分子(可转动单键多于两三个)要先做构象搜索,否则优化得到的只是离初始结构最近的局部极小点。Grimme 等 2022 年的指南建议用 CREST 自动搜索,再把能量窗口内的构象用 DFT 重新优化和排序;xtb 给出的相对能量只用于筛选。

激发态计算要注意:ORCA 的 TD-DFT 默认使用 Tamm–Dancoff 近似(TDA),Gaussian 的 TD 关键词默认是完整的 TDDFT。两者的激发能和振子强度会有差别,与 Gaussian 结果或文献对比时,在 ORCA 的 %tddft 块中写 TDA false。激发态数目在 ORCA 中用 %tddft NRoots 10 end 设置,在 Gaussian 中用 TD(NStates=10)。

本页实测:S22 二聚体相互作用能(kcal/mol,参考值为 S22B CCSD(T)/CBS)text
级别                    水二聚体 noCP / CP     苯二聚体(平行错位)noCP / CP
B3LYP/6-31G*            -7.32 / -5.70          +2.39 / +4.58
B3LYP/def2-SVP          -8.11 / -4.81          +2.52 / +4.03
B3LYP-D3(BJ)/def2-SVP   -8.75 / -5.45          -4.18 / -2.67
B3LYP/def2-TZVP         -5.53 / -4.91          +3.43 / +3.76
B3LYP-D3(BJ)/def2-TZVP  -6.17 / -5.55          -3.27 / -2.94
参考值                  -4.99                  -2.65
noCP:未做 counterpoise 校正;CP:counterpoise 校正后。负值表示结合。
任务推荐级别(ORCA 写法)依据
有机分子几何优化 + 频率B3LYP D3BJ def2-SVP;或 r2SCAN-3cSobereva 推荐 B3LYP-D3(BJ) 做优化与振动分析;Grimme 2022 推荐 r2SCAN-3c 做结构优化
反应能、能垒、构象能量差(单点)wB97M-V def2-TZVP;或 wB97X-D3 / M06-2X def2-TZVPSobereva 272:有机体系热力学首选 ωB97M-V,其次 M06-2X;Grimme 2022:能垒推荐范围分离杂化泛函
高精度单点(小体系)revDSD-PBEP86-D4 / PWPB95-D4 def2-TZVPP,或 DLPNO-CCSD(T)双杂化泛函比普通泛函高一个档次,ORCA 用 RI 后耗时可以接受
弱相互作用(π 堆积、氢键)必须带色散校正;能量用 ma-def2-TZVP 级别并考虑 counterpoiseSobereva 336:色散主导的体系越需要弥散函数和 BSSE 校正
激发态(TDDFT)局域激发 PBE0;电荷转移和大共轭体系 CAM-B3LYP 或 ωB97X-DSobereva 272、265
过渡金属配合物TPSSh、PBE0-D3(BJ)、r2SCAN-3c;不要用 M06-2XM06-2X 针对主族参数化,用于过渡金属误差很大
大体系预筛选、构象初排GFN2-xTB(xtb/CREST)Grimme 2022 建议先做自动构象搜索再上 DFT
D3BJ 在 ORCA 中写作 D3BJ 或 D3,在 Gaussian 中写作 EmpiricalDispersion=GD3BJ。ωB97M-V 在 Gaussian 16 中不可用。

ORCA 输入

下面是一个乙醇的优化 + 频率输入。ORCA 输入不区分大小写(文件名除外),# 之后是注释。

ethanol.inp(ORCA 6.1)orca
! B3LYP D3BJ def2-SVP Opt Freq      # 方法 色散 基组 任务,大小写不敏感
%pal nprocs 8 end                    # 8 个 MPI 进程
%maxcore 3000                        # 每个进程 3000 MB,总计约 24 GB
* xyz 0 1                            # 坐标格式 电荷 自旋多重度
  C   -1.1855   -0.2259    0.0000
  C    0.1586    0.4880    0.0000
  O    1.2075   -0.4708    0.0000
  H   -1.2848   -0.8641    0.8823
  H   -1.2848   -0.8641   -0.8823
  H   -2.0068    0.4987    0.0000
  H    0.2384    1.1393    0.8822
  H    0.2384    1.1393   -0.8822
  H    2.0491    0.0005    0.0000
*
ethanol.gjf(Gaussian 16,最后必须留一个空行)text
%nprocshared=8
%mem=24GB
%chk=ethanol.chk
# opt freq B3LYP/def2SVP EmpiricalDispersion=GD3BJ

ethanol opt freq

0 1
C   -1.1855   -0.2259    0.0000
C    0.1586    0.4880    0.0000
O    1.2075   -0.4708    0.0000
H   -1.2848   -0.8641    0.8823
H   -1.2848   -0.8641   -0.8823
H   -2.0068    0.4987    0.0000
H    0.2384    1.1393    0.8822
H    0.2384    1.1393   -0.8822
H    2.0491    0.0005    0.0000
  1. 01

    ! 关键词行

    写方法、色散、基组和任务,可以写多行 !。常用任务:Opt(优化)、Freq(解析频率)、NumFreq(数值频率)、OptTS(过渡态)、IRC、TightOpt、TightSCF。ORCA 5.0 起杂化泛函默认启用 RIJCOSX,辅助基组 def2/J 自动选取,不需要手写。优化任务自动使用 TightSCF。

  2. 02

    %pal nprocs N end

    并行进程数,等价写法是在关键词行写 PAL8。并行运行时必须用完整路径调用 orca,不要在外面套 mpirun;否则输出会交错混乱或直接报错。

  3. 03

    %maxcore M

    每个进程可用的内存(MB),默认 4096。总内存约为 M × nprocs,而 ORCA 实际占用常超过 M,手册建议总量不超过物理内存的 75–80%。例:32 GB、8 核的机器扣掉系统占用后约 30 GB,30000/8 = 3750,Sobereva 建议取 3000。内存不足时 SCF 会报 Not enough memory available! Please increase MaxCore to more than: … MB。

  4. 04

    * xyz 电荷 多重度

    第一行写坐标格式、总电荷和自旋多重度 2S+1,以单独一行 * 结束。也可以写 * xyzfile 0 1 file.xyz 直接读文件。闭壳层中性分子是 0 1;自由基是 0 2;电子数为偶数时多重度只能是奇数,电子数为奇数时只能是偶数。

  5. 05

    Gaussian 的对应写法

    %nprocshared 对应 %pal;%mem 是整个作业的总内存(默认 800 MB),与 ORCA 的每核 maxcore 含义不同;# 开头的 route 行对应 ! 行;基组名不带连字符(def2SVP);色散写 EmpiricalDispersion=GD3BJ;标题行和坐标后都要有空行。

优化与频率

频率必须在与优化完全相同的级别(泛函、基组、色散、溶剂模型、积分格点)下计算,否则频率没有意义,还会出现假虚频。最简单的做法是 Opt Freq 写在同一个任务里。

本页实测(Psi4 1.11,B3LYP-D3(BJ)/def2-SVP,8 线程):乙醇优化 8.2 秒、频率 104.8 秒,最低频率 259.8 cm⁻¹,无虚频;水的三个谐振频率为 1639、3792、3887 cm⁻¹,零点能 13.32 kcal/mol。谐振频率普遍高于实验基频,与实验红外谱对比时要乘频率校正因子(按所用泛函和基组查表,见 Sobereva 221)。

判据(原子单位)ORCA 默认 OptORCA TightOptGaussian 默认
能量变化 TolE5e-61e-6不作为判据
最大梯度 / 受力3e-41e-40.00045
均方根梯度 / 受力1e-43e-50.00030
最大位移4e-31e-30.0018
均方根位移2e-36e-40.0012
Gaussian 中受力已低于阈值的 1/100 时,位移未达标也判为收敛(Sobereva 164)。opt=loose 对应最大步长 0.01、均方根受力 0.0017。
  • ORCA:输出中必须出现 THE OPTIMIZATION HAS CONVERGED。优化达到最大步数时 ORCA 仍可能以 ORCA TERMINATED NORMALLY 结束,只看结尾会误判。
  • Gaussian:opt 部分出现四个 YES 和 Stationary point found;文件末尾是 Normal termination。
  • 频率部分:ORCA 的虚频标为 ***imaginary mode***;Gaussian 的 Frequencies 行出现负数。平动和转动的 6 个零频(线性分子 5 个)已被投影掉,不说明 Hessian 质量。
  • Gaussian freq 末尾也会再判一次收敛:优化四个 YES、freq 后位移出现 NO,是因为优化用近似 Hessian、频率用精确 Hessian。超出阈值不到 2 倍且无虚频一般可以接受(Sobereva 278)。
  • ORCA 的解析 Hessian 只支持 SCF 方法,双杂化泛函和 RI-JK 要用 NumFreq;数值频率的误差可达 50 cm⁻¹。

优化不收敛

优化不收敛多数是因为在极小点附近来回震荡。先用 GaussView 或 Chemcraft 播放优化轨迹、看能量和受力曲线,确认是震荡还是仍在下降。

  1. 01

    能量和受力仍在整体下降

    只是步数不够。Gaussian 用 opt=maxcycles=N,ORCA 在 %geom 中写 MaxIter N,从最后一步结构续算。若已经震荡,加大步数没有用。

  2. 02

    先排除 SCF 问题

    优化中途某一步 SCF 没收敛也会中断优化。Gaussian 是 L502 报错;G16 B.01 起 SCF 未收敛只提示 Convergence criterion not met 而不中断,需要自己查。

  3. 03

    提高积分格点

    对 M06-2X 等明尼苏达泛函最有效。G16 默认已是 int=ultrafine;ORCA 6 默认 DefGrid2,可改 DefGrid3。

  4. 04

    使用精确 Hessian

    Gaussian:opt=calcfc(只算第一步)、opt=recalc=3~5(G16,每 3~5 步重算)、opt=calcall(每步都算,小体系才用)。ORCA:%geom Calc_Hess true、Recalc_Hess 5 end。

  5. 05

    换优化算法或缩小步长

    Gaussian 对弱相互作用和柔性大分子先试 opt=gdiis;结构反复小幅震荡时用 opt(gdiis,maxstep=3~5,notrust)。ORCA 在 %geom 中调 Trust(默认 -0.3,负值表示固定信赖半径)。

  6. 06

    检查对称性和溶剂模型

    初始结构对称性高于真实极小点时,优化会停在鞍点上,需要打破对称性。用 SMD 做 opt freq 容易难收敛并出现假虚频,Sobereva 建议优化和频率用 IEFPCM,算能量时再用 SMD。

  7. 07

    最后才放宽收敛限

    opt=loose 或 LooseOpt 只适合粗略结构;之后做频率容易出现虚频。

虚频

极小点(反应物、产物、中间体)不应有虚频;过渡态必须恰好有一个虚频,且振动方向对应要研究的反应坐标。

按虚频方向调结构只对对称性导致的虚频优先有效。Sobereva 指出,网上常见的“看到虚频就沿虚频推结构”是不对的,小虚频应先从收敛精度、积分格点和 Hessian 质量上解决。

实在消不掉的小虚频对电子能量和零点能影响很小:30 cm⁻¹ 的模式对零点能只贡献 0.18 kJ/mol。它对熵和自由能的影响较大,一个约 20 cm⁻¹ 的模式被当作虚频忽略,自由能误差可达约 5 kJ/mol(Sobereva 699)。Grimme 等 2022 年建议把小于 50–100 cm⁻¹ 的小虚频当作实频并配合 mRRHO 计算熵;Sobereva 认为这一做法缺乏系统检验,不建议轻易使用。两种做法都要在论文中写明。

本页实测:把乙烷搭成重叠式并保持对称性优化,优化 3.9 秒就“收敛”,频率给出一个 308.3i cm⁻¹ 的虚频,振动是两个甲基的相对扭转。把一个 H–C–C–H 二面角改成 20° 打破对称性后重新优化,得到交叉式,无虚频(最低 317.9 cm⁻¹),能量低 2.93 kcal/mol,即乙烷的扭转能垒。这是“对称性导致虚频”的典型情形,按虚频方向调整结构就能解决。

情况含义处理
极小点有 1 个大虚频(> 100 cm⁻¹)结构不是极小点,常见于对称性过高在 GaussView 中沿虚频方向手动推一下结构(Manual Displacement)后重新优化
极小点有小虚频(< 50 cm⁻¹,多为甲基转动或分子间相对运动)优化不够精确或积分格点不足依次试 opt=tight、更高积分格点、calcfc/recalc;同级别重算频率
过渡态有 1 个虚频,但振动不是反应坐标找到的是别的鞍点(如甲基旋转)重新构造初猜,扫描关键坐标
过渡态有 2 个以上虚频高阶鞍点或额外的小虚频按上面两行分别处理多余的虚频
优化和频率级别不同低级错误,势能面不一致在同一级别重做频率

热校正

热校正量来自频率计算,与电子能量相加得到焓和自由能。用高水平单点能时,把低水平频率给出的校正量加到高水平电子能量上。

ORCA 默认用 Grimme 的 quasi-RRHO 计算熵(参考频率 QRRHORefFreq 100 cm⁻¹),Gaussian 默认用谐振子 RRHO。同一结构在两个程序中得到的 G 会差零点几到 1 kcal/mol 以上,柔性分子差得更多。要与 Gaussian 结果对齐时,在 ORCA 的 %freq 中写 QuasiRRHO false,或用 Shermo 统一重算。

溶液中反应的自由能要加标准态校正:气相计算对应 1 atm,溶液标准态是 1 mol/L,298.15 K 下每个物种加 1.89 kcal/mol(Sobereva 327)。A + B → C 这类反应,漏掉这一项会使 ΔG 偏差 1.89 kcal/mol。

不同泛函的绝对能量不能相互比较。本页实测:同一个乙醇结构,B3LYP-D3(BJ)/def2-TZVP 为 −155.11617 Eh,M06-2X/def2-TZVP 为 −155.02666 Eh,相差 56 kcal/mol;只有同一级别下的能量差有意义。

单位换算(CODATA 2018)text
1 Eh (Hartree) = 627.5095 kcal/mol = 2625.4996 kJ/mol = 27.2114 eV = 219474.63 cm⁻¹
1 kcal/mol = 4.184 kJ/mol
1 bohr = 0.529177 Å
例:ΔE = −0.0046731 Eh → −0.0046731 × 627.5095 = −2.93 kcal/mol
量ORCA 输出行Gaussian 输出行用法
电子能量FINAL SINGLE POINT ENERGYSCF Done: E(RB3LYP) =同一级别下才可相减比较
零点能 ZPEZero point energyZero-point correction=E(0 K) = E + ZPE
焓校正Total thermal correction + kB·T(输出直接给 Total Enthalpy)Thermal correction to Enthalpy=H = E + 焓校正
自由能校正G-E(el)Thermal correction to Gibbs Free Energy=G = E(高水平单点) + G 校正(低水平频率)
自由能Final Gibbs free energySum of electronic and thermal Free Energies=只在单点与频率同级别时直接使用

过渡态

过渡态优化对初猜结构和 Hessian 质量的要求比极小点高得多。标准流程是四步:扫描找初猜,用精确 Hessian 优化过渡态,频率确认一个虚频,IRC 确认连接正确的反应物和产物。

ORCA 6.1 三步输入orca
# 第 1 步:柔性扫描找过渡态初猜(ORCA 原子编号从 0 开始)
! B3LYP D3BJ def2-SVP Opt
%pal nprocs 8 end
%maxcore 3000
%geom
  Scan B 0 5 = 3.00, 1.50, 16 end   # 原子 0 与 5 的距离从 3.00 Å 缩短到 1.50 Å,共 16 个点
end
* xyzfile 0 1 reactant.xyz

# 第 2 步:取扫描能量最高点,计算精确 Hessian 后找过渡态,并做频率
! B3LYP D3BJ def2-SVP OptTS Freq
%pal nprocs 8 end
%maxcore 3000
%geom
  Calc_Hess true      # 第一步算精确 Hessian
  Recalc_Hess 5       # 难收敛时每 5 步重算一次
end
* xyzfile 0 1 tsguess.xyz

# 第 3 步:IRC 验证过渡态连接的反应物和产物
! B3LYP D3BJ def2-SVP IRC
%pal nprocs 8 end
%maxcore 3000
%irc
  MaxIter 60                     # 默认 20 步,常常走不到极小点
  InitHess read
  Hess_Filename "ts.hess"        # 复用第 2 步的 Hessian
end
* xyzfile 0 1 ts.xyz
  1. 01

    扫描找初猜

    沿成键或断键距离做柔性扫描(relaxed scan),取能量最高点。ORCA 也可以用 ScanTS 一步完成扫描和 TS 优化。注意 ORCA 原子编号从 0 开始,照抄 Gaussian 的编号会扫错原子。

  2. 02

    OptTS 必须给精确 Hessian

    ORCA 写 Calc_Hess true 或读入已有 .hess;Gaussian 写 opt(ts,calcfc,noeigentest)。默认近似 Hessian 下 TS 优化经常跑偏。Gaussian 的 QST2 插值初猜通常不如手动搭的结构。

  3. 03

    频率确认

    恰好一个虚频,并在 GaussView、Chemcraft 或 orca_pltvib 中播放该振动,确认原子运动对应目标反应。过渡态、IRC 与极小点优化应使用同一级别。

  4. 04

    IRC 验证

    ORCA 默认双向(Direction both),输出 _IRC_F.xyz、_IRC_B.xyz 和 _IRC_Full_trj.xyz。默认 MaxIter 20,常常走不到底;IRC 终点不是严格极小点,需要再做一次优化,再与反应物、产物比较。

结果分析

Multiwfn 读取波函数文件做分析。Gaussian 用 formchk 把 .chk 转成 .fchk;ORCA 用 orca_2mkl 名称 -molden 生成 .molden.input;Psi4 可以直接写 .fchk。

Windows 下运行 ORCA 不要用 PowerShell 5 重定向输出:生成的 .out 是 Unicode 编码,Multiwfn 和 OfakeG 读不了。用 cmd 或 cmder(Sobereva 451)。

带弥散函数的基组不能用于 Mulliken、Mayer 键级、轨道成分等直接基于基函数的分析,结果会失去意义;电子密度、ELF、静电势等实空间函数分析用 6-31G* 到 def2-TZVP 即可(Sobereva 336)。

ORCA:运行与检查bash
# 并行运行必须写 orca 的完整路径,不要用 mpirun 启动
/opt/orca_6_1_1/orca ethanol.inp > ethanol.out

# 检查是否真正收敛(不能只看末尾的 ORCA TERMINATED NORMALLY)
grep "THE OPTIMIZATION HAS CONVERGED" ethanol.out
grep "FINAL SINGLE POINT ENERGY" ethanol.out | tail -1
grep "imaginary mode" ethanol.out          # 无输出表示没有虚频

# 生成 Multiwfn 可读的 molden 文件
/opt/orca_6_1_1/orca_2mkl ethanol -molden
要做的分析Multiwfn 入口说明
看分子结构和轨道(HOMO/LUMO)主功能 0图形界面中选轨道编号查看等值面
原子电荷(ADCH、CM5、RESP 等)主功能 7需要带基函数信息的文件(fchk、molden)
静电势表面分析主功能 12分子表面静电势极值点、面积分布
弱相互作用可视化(RDG/NCI、IGMH)主功能 20结合 VMD 出图
激发态空穴-电子分析主功能 18读 TDDFT 输出
绘制 IR、Raman、UV-Vis 光谱主功能 11读频率或 TDDFT 输出
生成 ORCA 输入文件主菜单输入 oi(等价于 100 → 2 → 12)选任务和级别后生成带合适关键词的 .inp,再改 nprocs 和 maxcore
Multiwfn 3.8 正式版于 2026-01-07 发布,之后的版本按日期命名(如 2026.1.12)。文章中需同时引用 J. Comput. Chem. 2012 与 J. Chem. Phys. 2024 两篇原文。

报错

加大 SCF 迭代上限(scf=maxcyc=500 或 MaxIter 500)几乎从不解决不收敛。Gaussian 默认上限 128 轮,在此之内不收敛的情况,继续迭代也多半无效(Sobereva 61)。

SCF 很难收敛时先检查结构本身:原子间距过近、少加了氢、簇模型截断处没有饱和、过渡金属多重度不是基态,都会让 SCF 难以收敛。

报错原文程序原因改法
Error termination via Lnk1e … l9999.exe,上方有 Optimization stopped. -- Number of steps exceededGaussian优化达到步数上限,多数是震荡按“优化不收敛”一节处理;只有曲线仍在下降时才加 maxcycles
L502 Convergence failure -- run terminated.;G16 B.01 起只提示 Convergence criterion not metGaussianSCF 不收敛先查结构、电荷、多重度;再试 scf=vshift=300~500、用小基组或其它泛函的波函数作初猜(guess=read);scf=xqc 放到最后
The combination of multiplicity 1 and 9 electrons is impossible.Gaussian(L301)电荷或多重度与电子数奇偶性不符改电荷或多重度;偶数电子用奇数多重度,奇数电子用偶数多重度
galloc: could not allocate memory.Gaussian%mem 大于机器可用内存%mem 设为物理内存的约 75%
Not enough memory available! Please increase MaxCore to more than: … MBORCA%maxcore 低于该模块需求增大 maxcore,同时保证 maxcore × nprocs 不超过物理内存的 75–80%
SCF NOT CONVERGED AFTER … CYCLESORCASCF 在上限(默认 125 轮)内未收敛;ORCA 不在未收敛波函数上做性质和数值频率加 SlowConv 或 VerySlowConv;ORCA 5 起 AutoTRAH 自动启用;用小基组或 BP86 收敛的轨道作初猜(MORead)
The optimization did not converge but reached the maximum number of optimization cycles.ORCA优化步数用完,文件末尾仍可能是 TERMINATED NORMALLY用最后结构续算,并按“优化不收敛”一节处理
输出内容交错重复、并行报 MPI 错误ORCA没有用完整路径调用,或 OpenMPI 版本、gfortran 缺失用 /完整路径/orca 运行;按安装包文件名上的 OpenMPI 版本编译

本页实测

ORCA 需要在论坛注册后下载,本页实测用 conda-forge 上的 Psi4 1.11 跑了同样的优化、频率、过渡态与 IRC,用 xtb 跑了半经验优化与频率。本页实测条件:Psi4 1.11、xtb 6.7.1(均来自 conda-forge),Apple Silicon 笔记本 8 核 16 GB,8 线程。

Psi4 1.11 中带 -d3bj 的泛函需要另装 dftd3-python,否则报 Program s-dftd3 is registered with QCEngine, but cannot be found.

Psi4 对 B3LYP-D3(BJ) 的频率用梯度有限差分,乙醇的频率用时是优化的 13 倍。ORCA 和 Gaussian 对 B3LYP 有解析 Hessian,频率与优化的耗时比要小得多。

CREST 3.0.2 的 conda-forge macOS arm64 版本在本机没有跑通:默认模式在 Setting up backup calculator 处 ERROR STOP;加 --legacy --quick 后布洛芬(33 原子)的元动力学部分跑完(347 秒),但在 CREGEN 排序阶段再次 ERROR STOP。完整模式下 CREST 对布洛芬估算 8 线程需 1 小时 38 分钟。构象搜索建议在 Linux 上运行。

ethanol_psi4.py:B3LYP-D3(BJ)/def2-SVP 优化 + 频率 + 高水平单点python
# conda 环境:micromamba create -n qc -c conda-forge python=3.11 psi4 dftd3-python dftd4-python
import psi4
psi4.set_num_threads(8)
psi4.set_memory('10 GB')                       # Psi4 的内存是整个作业总量
psi4.core.set_output_file('ethanol.out', False)
mol = psi4.geometry("""
0 1
C   -1.1855   -0.2259    0.0000
C    0.1586    0.4880    0.0000
O    1.2075   -0.4708    0.0000
H   -1.2848   -0.8641    0.8823
H   -1.2848   -0.8641   -0.8823
H   -2.0068    0.4987    0.0000
H    0.2384    1.1393    0.8822
H    0.2384    1.1393   -0.8822
H    2.0491    0.0005    0.0000
""")
e_opt = psi4.optimize('b3lyp-d3bj/def2-svp')            # 几何优化
e, wfn = psi4.frequency('b3lyp-d3bj/def2-svp', return_wfn=True)  # 频率与热化学
print('freqs (cm-1):', wfn.frequencies().to_array())    # 负数表示虚频
print('G correction (Eh):', psi4.variable('GIBBS FREE ENERGY CORRECTION'))
e_sp = psi4.energy('wb97x-d/def2-tzvp')                 # 更高水平单点
xtb 与 CRESTbash
# 安装:micromamba create -n xtb -c conda-forge xtb crest
export OMP_NUM_THREADS=8 OMP_STACKSIZE=1G
xtb ethanol.xyz --ohess --gfn 2 > xtb.out      # 优化 + 频率,输出 xtbopt.xyz
crest ibuprofen.xyz --gfn2 -T 8 > crest.out    # 构象搜索,输出 crest_conformers.xyz、crest_best.xyz
体系与任务实测用时结果
水:优化 / 频率 / def2-TZVP 单点25.7 s / 8.6 s / 0.6 sE = −76.35889972 Eh;ZPE 13.32 kcal/mol;G 校正 0.00357 Eh
乙醇:优化 / 频率8.2 s / 104.8 sE = −154.93049253 Eh;无虚频
乙醇:def2-TZVP 单点(B3LYP-D3(BJ) / ωB97X-D / M06-2X)2.6 s / 3.1 s / 6.4 s−155.11617 / −155.05547 / −155.02666 Eh
乙烷:重叠式(保持对称)→ 扰动后重优化3.9 + 28.7 s → 34.3 + 51.3 s308.3i cm⁻¹ → 无虚频;扭转能垒 2.93 kcal/mol
HCN → HNC:OptTS / 频率 / IRC 双向5.8 s / 7.4 s / 35 s + 29 s1 个虚频 1117.8i cm⁻¹;能垒 47.84 kcal/mol
S22 苯二聚体相互作用能(5 个级别,含 CP)每级别 56–205 s不加色散全为正值;B3LYP-D3(BJ)/def2-TZVP CP 为 −2.94 kcal/mol
xtb GFN2:乙醇 优化 + 解析 Hessian(--ohess)0.05 s无虚频;输出 xtbopt.xyz 与 G(RRHO)

国内经验

以下来自计算化学公社、Sobereva 博客与 CSDN,只收录有具体参数或报错原文、并与官方手册或本页实测一致的内容。

过渡态找不到时用 recalc 与 maxstep

计算化学公社用户 qingmang(2025-02)总结:过渡态或中间体的虚频变成甲基旋转时,用 opt(recalc=5,maxstep=3) 区分靠得很近的鞍点和极小点。Sobereva 在《量子化学计算中帮助几何优化收敛的常用方法》中给出相同的组合(recalc=3~5,maxstep=3~5 加 notrust),两者独立得出。

maxcore 按 75% 留余量

Sobereva 在 Multiwfn 生成 ORCA 输入的说明中给出算例:32 GB、8 核,扣掉系统后约 30 GB,30000/8 = 3750 MB,但 ORCA 进程实际占用常超过 maxcore,取 3000。ORCA 6.1 手册与内存教程给出同样的 75–80% 原则。

ORCA 6.1.0 要配 OpenMPI 4.1.8

CSDN 作者 qq_52487425(2025-06)在 Ubuntu 上安装 ORCA 6.1.0 时记录:安装包文件名中的 openmpi418 表示需要 OpenMPI 4.1.8;编译 OpenMPI 前必须装 gfortran,否则 ORCA 无法并行。Sobereva 的安装文章对 ORCA 6.0.0 / OpenMPI 4.1.6 给出相同的规则。

优化和频率不用 SMD

Sobereva 在三篇博文中反复提到:SMD 溶剂模型的数值噪音会使优化难收敛、频率出现假虚频;优化与频率用 IEFPCM,单点能再用 SMD。优化与单点的溶剂模型不必一致。

别信 Exploring Chemistry 里的 APFD

Sobereva 指出 Gaussian 官方教材第 3 版几乎全程使用 APFD,但在各泛函横测中 APFD 表现平庸、文献中极少使用,审稿时难以给出依据。初学者照着教材选泛函需要注意这一点。

交给 Agent

可以用一句话描述计算任务,由 Scientify 的科学智能体在云电脑中完成。

指令示例:“这是反应物和产物的 xyz 文件。请先用 CREST 做构象搜索,取能量最低构象用 B3LYP-D3(BJ)/def2-SVP 优化并做频率;沿 C1–O5 距离扫描找过渡态初猜,OptTS 加精确 Hessian 优化过渡态,确认只有一个虚频并做 IRC;最后用 ωB97M-V/def2-TZVP 算单点,给出含热校正和 1 M 标准态校正的 ΔG‡ 与 ΔG。”

智能体会执行的步骤:在工作区安装所需程序(xtb、CREST、开源量化程序;ORCA 可由你提供安装包或通过 SSH 连接你已装好的服务器运行),生成输入文件,检查每一步的收敛行和虚频,遇到不收敛按本页顺序处理并记录每次修改;整理能量表,换算单位,对结果做对抗审阅,例如核对虚频振动方向、IRC 终点是否与反应物和产物一致。关闭本机后任务继续运行。

产出:全部输入、输出与日志,优化结构的 xyz,能量与热校正汇总表,扫描曲线和 IRC 能量曲线。工作区保留代码与参数,可以复现。

你仍需自己核对:反应机理与初猜结构的化学合理性,电荷与多重度,泛函与基组是否适合你的体系,溶剂模型的选择,以及过渡态虚频的振动方向是否对应你要研究的反应。

写论文

审稿人和读者复现计算需要以下信息,缺任何一项都可能被要求补充。

  • 程序与版本:ORCA 6.1.1、Gaussian 16 Rev. C.02、xtb 6.7.1、CREST 3.0.2、Multiwfn 版本日期
  • 优化与频率级别:泛函、色散校正(D3(BJ) 或 D4)、基组,以及是否用了 RIJCOSX
  • 单点能级别,以及最终能量的组合方式(E 单点 + G 校正)
  • 溶剂模型与溶剂名,优化与单点是否使用了不同模型
  • 热化学设置:温度、压力、RRHO 还是 quasi-RRHO、标准态校正、是否用了频率校正因子
  • 构象搜索方法(CREST、能量窗口)
  • 过渡态确认方式:虚频数值、IRC
  • 虚频处理方式:是否有残留小虚频,如何处理
  • 引用:泛函、色散校正、基组、程序原文,Multiwfn 需同时引两篇

参考资料

常见问题

DFT 计算用 ORCA 还是 Gaussian?

学术用户首选 ORCA:免费,支持 ωB97M-V、双杂化泛函和 DLPNO-CCSD(T),杂化泛函有 RIJCOSX 加速。课题组已有 Gaussian 且需要 GaussView 建模、看振动动画时,用 Gaussian 做优化频率、用 ORCA 算高水平单点是常见组合。

B3LYP/6-31G* 还能用吗?

不加色散校正的 B3LYP/6-31G* 不推荐用于能量。至少改为 B3LYP-D3(BJ)/def2-SVP 做优化和频率,能量用 def2-TZVP 及以上基组和更好的泛函。本页实测 B3LYP 不加色散算苯二聚体,结合能为正值(不结合)。

优化后有一个很小的虚频怎么办?

先确认频率与优化同级别,再依次收紧优化收敛限、提高积分格点、用精确 Hessian 重新优化。实在消不掉的小于 50 cm⁻¹ 的虚频对电子能量和零点能影响很小,但会影响熵和自由能,需要在论文中说明处理方式。

ORCA 的 %maxcore 应该设多少?

%maxcore 是每个进程的内存(MB)。用物理内存的 75% 左右除以进程数,例如 32 GB、8 核设 3000。ORCA 实际占用会超过这个值,不要设满。

过渡态怎么确认是对的?

频率中恰好一个虚频,播放振动动画确认原子运动对应目标反应,再做 IRC,并把两端终点优化后与反应物、产物对比。

零点能和自由能校正从哪里读?

ORCA 读 Zero point energy 和 G-E(el);Gaussian 读 Zero-point correction 和 Thermal correction to Gibbs Free Energy。用高水平单点时,G = 高水平电子能量 + 低水平频率给出的 G 校正。溶液中的反应还要加 1.89 kcal/mol 的标准态校正。

把 DFT 计算流程交给 Scientify

科学智能体在隔离云电脑中完成构象搜索、优化与频率、过渡态与 IRC、单点能和热校正汇总,检查每一步的收敛与虚频并保留全部输入输出。关掉电脑后任务继续运行。新注册用户免费获得 5 美元等值额度。