xTB专题

xTB IFF分子间作用能实操

明确指定两个分子、扫描固定取向间距并读取相互作用能,说明当前版本的梯度限制。

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

下载xTB操作、筛选和IFF完整输入与真实结果,保存为example.zip:

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

以上只读取参考数据并画图,不启动新计算。本组使用xTB6.7.1官方预编译x86_64程序,直接加载xtb/6.7.1模块,无需自己编译;实际运行每个进程使用1个CPU线程。完整输入在inputs/,原生文本结果在reference-results/,六份CSV在data/。独立提交模板为job.slurm,请在Slurm分配的资源中执行计算命令。

1. IFF不是普通GFN2总能#

IFF是xTB中的分子间作用模型。这里放置两个水分子,前3个原子是分子A,后3个是分子B;两分子保持相同取向,仅沿z方向整体平移第二个分子,取3.0、3.5、4.5、6.0Å四个间距。

3.5Å条件的完整结构:

6
Own two-water separation 3.5 A
O 0.058394820188 0.115760031764 0.157426399324
H 0.823780432770 0.273097292213 -0.398576604212
H -0.161091860750 0.947600197636 0.581191693287
O 0.058394820188 0.115760031764 3.657426399324
H 0.823780432770 0.273097292213 3.101423395788
H -0.161091860750 0.947600197636 4.081191693287

这里的Å值是第二分子沿z的刚性平移量,也等于两个O原子的间距;不是最短原子距离。

2. 指定分子划分并计算#

module load xtb/6.7.1
python3 run.py water-IFF-3.5

实际调用为:

xtb input.xyz --iff --nat 1-3 --grad --json --parallel 1

--nat 1-3给出分子A的原子编号,其他原子归分子B,不是“总共有3个原子”。程序内部准备两个分子的电荷与局域轨道,再计算作用能。

其他三个间距:

python3 run.py water-IFF-3.0
python3 run.py water-IFF-4.5
python3 run.py water-IFF-6.0

3. 读取作用能与能量分量#

cat data/IFF-separation.csv
python3 read.py work

四个真实间距的作用能和3.5Å处分量

O—O间距 / Å 作用能 / kcal·mol⁻¹
3.0 1.739162
3.5 0.773344
4.5 0.361639
6.0 0.176506

这组固定取向的点全部为正值,不能画成“找到了水二聚体结合能最低点”。它只展示给定几何的距离依赖。

输出中E Pauli、E disp total、E ES total、E induction、E CT、E cavity的单位是kcal/mol;最后TOTAL ENERGY及gradient文件能量使用Eh。1Eh约627.509474kcal/mol。分量只打印3位小数,手工相加存在舍入差。

4. 这个版本不要拿IFF梯度驱动MD#

当前xTB6.7.1的IFF计算器直接写零梯度。 本例的--grad确实产生文件,但其中的零值不代表这些构型没有力,也不代表已经优化。

因此本例使用固定几何能量扫描,不能把这些梯度交给优化器或动力学。需要分子内外统一的能量与力时,可考虑适用的GFN-xTB/GFN-FF方法,并先做相应的导数与模型检查。选择模型时也应区分这里的IFF、DIPRO电子耦合和一般色散修正,它们解决的问题不同。

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

查看配图

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

100%查看原图 ↗