xTB专题

xTB CEH与PTB电子性质

比较水和铵离子的CEH、GFN2和PTB电荷,辨认实际输出文件、PTB零能量占位与轨道导出范围。

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

同一个分子的部分电荷会随分配模型变化。本篇用中性水和+1电荷的铵离子,演示CEH、GFN2和PTB输出怎么读,重点是把方法与文件对应起来,而不是用电荷大小给方法排“好坏”。

1. 运行与输入#

下载完整输入、运行与绘图包,解压进入 xtb-cli-special,在已分配CPU作业内执行:

bash run.sh

也可 sbatch job.slurm 提交。CPU分区按56核整节点分配计费,本例一个线程,使用 xtb/6.7.1,绘图用 sisl/0.16.4。CPU队列维护时请待恢复后提交,不在登录节点做生产计算。共同资料包完整运行一次后即可阅读两篇教程,不需要反复计算。

cat inputs/water.xyz
cat inputs/ammonium.xyz

水分子完整输入为:

3
Fixed generic3D rotated teaching geometry
O 0.05291772109030 0.10583544218060 0.15875316327090
H 0.81682432412487 0.28469910273760 -0.38959556953728
H -0.14865865300789 0.94592297669472 0.57088389466498

XYZ坐标是Å。脚本对水设置 --chrg 0,对铵设置 --chrg 1;两者都是闭壳层。CEH使用 --ceh,PTB使用 --ptb,各自在独立 raw/ 子目录运行,避免输出互相覆盖。

2. CEH电荷要读取哪个文件#

cat raw/ceh-water/ceh.charges
cat raw/ceh-water/xtbout.json

ceh.charges 才是本次CEH电荷。当前6.7.1这条命令还执行了默认GFN2计算,JSON的 partial charges 属于GFN2,不能因为它们在同一目录,就把JSON电荷当成CEH。

水分子原子 CEH/e GFN2/e PTB/e
O −0.29445651 −0.56363896 −0.13850611
H1 +0.14722826 +0.28181948 +0.06925627
H2 +0.14722826 +0.28181948 +0.06924984

每种方法分别检查电荷总和;水约为0,铵约为+1。部分电荷不是唯一的形式氧化态,也不能把一套模型的电荷未经参数匹配就用于另一套力场。

实际CEH、GFN2和PTB电荷对照

3. PTB输出中的0能量与轨道长度#

cat raw/ptb-water/xtbout.json
cat results/SUMMARY.json

PTB提供电荷、偶极、键级等电子性质,本例不提供有效总能量或核梯度。JSON里 total energy 和 electronic energy 的0是占位,不能据此计算反应能、做能量比较或当作成功的结构优化结果。

本例水的JSON报告23个分子轨道,铵报告33个,但轨道能量和占据数组各只导出12个值。教程按实际导出范围读取,不把这12项当作全部轨道,也不补造缺失的虚轨道。导出的占据总和均为8个价电子。

bond orders 是带原子索引的稀疏列表,未列出的原子对不应直接补成精确零。总偶极包含模型自身贡献,不应只用部分电荷乘坐标替代;带电分子还要注意偶极原点。

4. 复查并重画#

module load sisl/0.16.4
python -B verify.py --reference
python -B plot.py

这些命令只读取已有输出。换自己的体系时先确认电荷、自旋、方法支持和字段含义,再组织后处理;不要只按JSON字段名字猜它是否是可用物理量。

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

查看配图

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

100%查看原图 ↗