xTB专题

xTB调用ORCA与ONIOM内区截取

实际调用ORCA计算水分子的能量和梯度,并区分ONIOM切出结构与真正的多层能量计算。

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

下载xTB偏置、参数文件与ORCA接口输入和真实结果,保存为example.zip:

python3 -m zipfile -e example.zip .
cd xtb-bias-parameter-examples
bash results.sh
bash plot.sh

这几步只读取参考数据并绘图。完整输入在inputs/,原生文本结果在reference-results/,四份CSV在data/。计算使用现有xtb/6.7.1与orca/6.1.1模块,每个进程1个CPU线程;xTB为官方x86_64预编译程序,ORCA使用现有OpenMPI4.1.8配套入口,不需要重新编译。自己计算时,从本目录提交sbatch job.slurm,或在已分配资源内运行文中的单例命令。

1. 调用外部ORCA#

本例使用ORCA6.1.1的HF/STO-3G、TightSCF计算三原子水分子,适合说明接口。它不是高精度水分子能量推荐方案。

完整xcontrol:

$external
 orca bin=/public/software/orca/6.1.1/linux-x86_64-openmpi4.1.8/orca
 orca input line=HF STO-3G TightSCF
$end

orca bin指向当前集群的程序,其他平台要改为自己合法安装的ORCA路径。随后在资源分配内:

module load orca/6.1.1 xtb/6.7.1
python3 run.py water-external-ORCA

核心调用为:

xtb input.xyz --orca --input settings.inp --grad --parallel 1

xTB调用ORCA并读取其ENGRAD文件,返回约−74.962006994289Eh。ORCA原生ENGRAD与父进程读回能量一致,全部梯度在打印精度下一致;这里核对的是数据接口,不能把这个HF总能与GFN2总能的大小直接作为方法优劣比较。

head -12 reference-results/water-external-ORCA/gradient
cat data/parameter-ORCA-readback.csv

2. 仅截取ONIOM内区#

另一个例子放两个水分子共6原子,指定前3个原子为内区:

python3 run.py ONIOM-cut

它运行:

xtb input.xyz --oniom gfn2:gfnff 1-3 --cut --json --parallel 1

得到inner_region_without_h.xyz,本例内容是3个原子:

3
 xtb: 6.7.1 (edcfbbe)
O            0.05839482018800        0.11576003176400        0.15742639932400
H            0.82378043277000        0.27309729221300       -0.39857660421200
H           -0.16109186075000        0.94760019763600        0.58119169328700

名字中的without_h指未添加新的边界封端H,不是把原结构所有H删除。本例内区是一整个水分子,没有跨边界共价键,输出位置和元素与原文件前3个原子保持一致。

真实内区几何与参数/ORCA读回结果

3. 切出结构不等于得到了ONIOM能量#

--cut这个例子在准备几何后正常结束,没有输出多层总能。不要因为返回码为0,就把它解释成一次完成的ONIOM能量计算。

要运行真正的减法嵌入,应使用ONIOM片段实例中的完整输入,计算高层内区、低层全体系和低层内区,再检查减法关系;若内外区跨共价键,还需正确处理封端、元素与电荷。

4. 查看自己的结果#

python3 read.py work

读回表把ONIOM-cut标成geometry-only,能量为空。TURBOMOLE/MOPAC的外部入口还需要对应软件及配置;本例实际跑的是ORCA,不用其他软件已安装来代替这些前置条件。

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

查看配图

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

100%查看原图 ↗