ORCA专题

ORCA NEB反应路径实操

用氨分子翻转完成双端点优化、NEB-CI、NEB-TS与最终能量曲线提取。

更新于 2026-10-30约 6 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、实际结果、原生振动动画和绘图脚本。解压进入资料包目录,先提取已经计算好的结果:

bash analyze.sh

图片在 reference/figures,路径CSV、能垒表和完整数据在 reference/analysis。在新解压目录重新计算整套流程:

bash submit.sh

脚本按两档基组提交两个数组任务。每个任务依次准备两个端点和直接过渡态、做NEB与IRC、重新优化IRC两端,最多同时运行3个独立单进程ORCA计算,再自动分析;新数据在 work,依赖几何和Hessian从新算出的上一步传递。已有 reference 保留。

使用 orca/6.1.1 厂商预编译CPU程序,依赖专用OpenMPI4.1.8(GNU13.3环境);单次计算 nprocs=1,不在外层加 mpirun。本例在P100节点使用CPU执行,不是ORCA GPU加速。附件模板每个数组任务申请3个CPU核心和1张P100,GPU未参与ORCA计算,资源按相应分区规则计费。不要在登录节点运行这些计算;已有结果可以直接后处理。

1 从一个小分子翻转反应认识NEB#

本例研究气相NH₃的伞形翻转:氮位于三个氢形成平面的一侧,经过平面结构,到达另一侧。两端是对称等价的极小点,中间是一阶鞍点。它适合学习反应路径流程;这里没有计算实验隧穿分裂或核量子动力学。

完整流程是:优化两个端点 → 保持原子编号建立路径 → NEB-CI寻找最高像 → NEB-TS精修鞍点 → 频率与IRC确认 → 提取能垒。

使用PBE0/RIJCOSX、DefGrid3、VeryTightSCF,分别做def2-SVP和def2-TZVP;全部总电荷0、自旋多重度1。两档基组各8个原生条件,共16个条件服务于同一个反应工作流。

实际优化的两端与过渡态

图中使用实际坐标,N高度定义为氮相对三个氢平面的有符号距离。def2-SVP两端约±0.4049 Å,直接过渡态接近0。H1–H3始终指相同原子,不在两端重新排序。

2 先把两个端点优化好#

正侧初始端点的完整输入:

! PBE0 def2-SVP def2/J RIJCOSX DefGrid3 VeryTightSCF TightOpt Opt Freq
%pal nprocs 1 end
%maxcore 500
%geom
 MaxIter 100
end
* xyz 0 1
N 0 0 0.3500000000
H 0.945 0 0
H -0.4725 0.8183940066 0
H -0.4725 -0.8183940066 0
*

负侧端点保持原子顺序,只将初始N的z坐标改成−0.35 Å。不要直接把手工猜的端点当作已经优化的结构。Freq 同时给出端点频率,确认是极小点;SCF收敛不等于几何已经收敛。

在分配好的资源中,单个输入的原生命令为:

module load orca/6.1.1
"$ORCA_ROOT/orca" case.inp > case.out
grep 'HAS CONVERGED' case.out
grep 'ORCA TERMINATED NORMALLY' case.out

本次两端都优化收敛,没有显著虚频,能量接近一致。最终坐标在各自目录的 case.xyz。不要仅凭程序正常结束一句话判断优化结果。

3 用优化后的结构建立NEB#

将正侧 case.xyz 复制为 reactant.xyz,负侧复制为 product.xyz。两个文件必须具有相同原子数、元素顺序、电荷和多重度。

def2-SVP的实际NEB-CI输入:

! PBE0 def2-SVP def2/J RIJCOSX DefGrid3 VeryTightSCF NEB-CI
%pal nprocs 1 end
%maxcore 500
%neb
 Product "product.xyz"
 NImages 5
 PreOpt false
 Quatern no
 MaxIter 120
end
* xyzfile 0 1 reactant.xyz

NImages 5 指5个可移动像,另加两个固定端点,实际能量表共7个像。PreOpt false 是因为两个端点已在相同方法下独立优化。Quatern no 用于本例已对齐且原子一一对应的镜像结构;自己的复杂分子要先处理端点对齐和原子映射,不能不加判断地照搬。

实际优化后的正侧结构如下:

4
Coordinates from ORCA-job case E -56.440922244602
  N           0.00000840426804      0.00000000069579      0.39120759172502
  H           0.93587296407635     -0.00000000075290     -0.01374026669183
  H          -0.46794068462329      0.81047839693229     -0.01373366231281
  H          -0.46794068372110     -0.81047839687518     -0.01373366272037

负侧结构:

4
Coordinates from ORCA-job case E -56.440922244579
  N           0.00000840321182      0.00000000115723     -0.39120759106456
  H           0.93587296605491     -0.00000000149462      0.01374026688037
  H          -0.46794068559357      0.81047839493185      0.01373366184576
  H          -0.46794068367316     -0.81047839459446      0.01373366233844

在存放输入和这两个XYZ的目录中运行:

"$ORCA_ROOT/orca" case.inp > case.out
grep 'NEB OPTIMIZATION HAS CONVERGED' case.out

4 从NEB-CI进入NEB-TS#

攀爬像帮助定位最高点,NEB-TS进一步做过渡态优化。本例另行运行:

! PBE0 def2-SVP def2/J RIJCOSX DefGrid3 VeryTightSCF NEB-TS TightOpt Freq
%pal nprocs 1 end
%maxcore 500
%neb
 Product "product.xyz"
 NImages 5
 PreOpt false
 Quatern no
 MaxIter 120
end
* xyzfile 0 1 reactant.xyz

NEB-TS后还要检查最终频率。它包含一个最高像,不代表自动完成了所有物理判断;最终鞍点应有且只有一个显著虚频,并沿对应位移连接所需的两端,见过渡态与虚频和IRC与能垒。

5 最终能量曲线读取哪个文件#

cat case.final.interp
cat case_NEB-CI_converged.xyz

case.final.interp 中 Images 段是最终路径像的能量数据:第一列为归一化进度,第二列为原生路径距离(Bohr),第三列为相对能量(Eh)。Interp. 段是程序生成的插值曲线,不是新增的量子化学计算点。

最终攀爬像几何读取 case_NEB-CI_converged.xyz,NEB-TS最终结构读取 case_NEB-TS_converged.xyz。通用 case_MEP_trj.xyz 的快照及注释可能对应较早轮次,不要把它的每帧能量直接替换进最终能量表,或把不同轮次的结构和能量逐点拼接。

最终NEB能量表与两种鞍点搜索

圆点是7个实际路径像,线是原生插值;叉号和加号分别是独立直接OptTS与NEB-TS精修后的鞍点。两种鞍点搜索在本例的能量差小于0.01 kJ/mol,但两档基组的能垒本身明显不同,不能把这个搜索一致性当作方法精度。

整套现成结果用 bash analyze.sh 自动提取CSV和画图;想只重算def2-SVP整条流程,在已分配资源中使用 bash run.sh 0,def2-TZVP为 bash run.sh 1。重算请在新解压目录进行,避免覆盖已有work。

算法及参数说明见 ORCA NEB手册。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗