ORCA NEB反应路径实操
用氨分子翻转完成双端点优化、NEB-CI、NEB-TS与最终能量曲线提取。
阅读本篇目录
下载完整输入、实际结果、原生振动动画和绘图脚本。解压进入资料包目录,先提取已经计算好的结果:
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 的快照及注释可能对应较早轮次,不要把它的每帧能量直接替换进最终能量表,或把不同轮次的结构和能量逐点拼接。

圆点是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手册。