xTB热化学、Fukui指标与电荷实操
从水分子的实际频率与电子计算中读取焓、自由能、熵、Fukui指标和电荷。
阅读本篇目录
下载真实输入输出、提取脚本和图片。本篇承接xTB结构优化与频率,使用集群xTB 6.7.1、GFN2方法的实际水分子结果。运行环境是官方Intel编译的CPU双精度程序,OpenMP并行。
1 从结构优化得到频率和热化学#
先复制下载包中的水分子XYZ到一个新的工作目录。在已分配的CPU资源中运行:
module load xtb/6.7.1
export OMP_NUM_THREADS=2
mkdir water-thermo
cp inputs/water-ohess/input.xyz water-thermo/
cd water-thermo
xtb input.xyz --gfn 2 --ohess tight --json > output.log
# 检查优化收敛和热力学结果
grep "GEOMETRY OPTIMIZATION CONVERGED" output.log
grep -E "TOTAL ENERGY|TOTAL ENTHALPY|TOTAL FREE ENERGY" output.log
cat vibspectrum
--ohess先优化再计算Hessian。确认不存在明显虚频后,再使用热化学修正。本次3个分子振动为1539.65、3642.45、3650.58 cm⁻¹;另外6个近零模是整体平移与转动。程序本次报告温度298.15 K。
| 量 | 实际结果 |
|---|---|
| 电子能E / Eh | −5.070544444753 |
| 零点能 / Eh | 0.020122316673 |
| 总焓H / Eh | −5.046641117456 |
| 总自由能G / Eh | −5.068040392535 |
| H−E / Eh | 0.023903327297 |
| G−E / Eh | 0.002504052218 |
| 熵S / J mol⁻¹ K⁻¹ | 188.4414 |
这里G−E已经包含零点与有限温度修正,不能再额外加一次零点能。提取脚本核对G=H−TS,使用日志打印精度后,熵的闭合误差小于0.001 J mol⁻¹ K⁻¹。比较反应自由能时,每个物种都要保持方法、温度、标准态和低频处理一致;孤立分子气相结果不能直接作为溶液标准自由能。

2 怎样计算Fukui指标#
使用另一份干净目录,避免多个性质计算互相覆盖输出。下载包中用于此步的结构是独立的水分子输入,和上一步优化后几何不完全相同;要研究同一几何上的性质,可自行把xtbopt.xyz复制为输入。
cd ..
mkdir water-fukui
cp inputs/water-fukui/input.xyz water-fukui/
cd water-fukui
xtb input.xyz --gfn 2 --vfukui --json > output.log
grep -A5 "Fukui functions:" output.log
本次程序输出:
| 原子 | f(+) | f(−) | f(0) |
|---|---|---|---|
| O | 0.234 | 0.594 | 0.414 |
| H1 | 0.383 | 0.203 | 0.293 |
| H2 | 0.383 | 0.203 | 0.293 |
f(+)描述增加电子时的响应,常用于讨论受亲核试剂进攻的位置;f(−)描述移除电子时的响应,常用于讨论受亲电试剂进攻的位置;f(0)是两者平均。各列因打印精度在本例求和为1。这里两个等价H一致,O的f(−)更大。它们是模型和电荷分区下的描述符,不等同于反应活化能或实验选择性。

3 读取电荷与垂直IP、EA#
部分电荷在xtbout.json中:
python - <<'CODE'
import json
x=json.load(open('xtbout.json'))
q=x['partial charges']
print(q)
print('sum =',sum(q))
CODE
中性水应接近零;它是GFN2的部分电荷,不能直接与Bader净电荷视作同一定义。下载包提取脚本把电荷和Fukui值放在同一张CSV中。
另建目录,用优化后的水几何和专用IPEA参数计算:
cd ..
mkdir water-ipea
cp inputs/water-ohess/xtbopt.xyz water-ipea/input.xyz
cd water-ipea
xtb input.xyz --vparam /public/software/xtb/6.7.1/linux-x86_64/share/xtb/param_ipea-xtb.txt --vipea --json > output.log
grep -E "empirical.*shift|delta SCC" output.log
专用参数基于GFN1,日志仍会写GFN1-xTB;所以不能只看Hamiltonian名称判断是否加载了IPEA参数,应同时保留完整命令和参数文件。本次对同一优化水几何实际运行两种设置:
| 设置 | IP / eV | EA / eV |
|---|---|---|
仅--vipea,默认GFN1参数 |
15.7657 | −5.6746 |
| 显式指定专用IPEA参数 | 13.7866 | −2.0315 |
程序列出的IP/EA已含日志中的经验修正,不要手工重复加修正。此前显式GFN2且使用另一份未优化输入时,得到13.4406 / −11.3131 eV;参数和几何都不同,不能将它混进上表解释为单独的参数效应。
负EA在本模型与固定几何下表示加电子不利。这个短实例不能代替实验或高精度量子化学;研究阴离子束缚时还需核查基组、电子态与垂直/绝热定义。下载包分别保存两套新计算的真实输入与输出。
4 一条提取命令生成表格和图#
回到下载包根目录,在配套Python环境执行:
module load py4vasp/0.11.3
python analyze.py
cat results/thermochemistry.json
cat results/fukui.csv
生成results/thermo-charge.png和results/fukui.png。脚本读取包中真实日志,核对热化学恒等式、Fukui列和与总电荷,再输出数据。换成自己的分子时,原子数、电子态和温度应随体系调整,不能沿用本例的结果表。