xTB专题

xTB PTB 极化率与拉曼:从输入到光谱数据

水分子极化率张量、GFN2振动频率与PTB的IR和拉曼强度。

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

下载输入、参考输出、CSV与画图程序,保存为example.zip:

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

图片生成在figures目录,实际计算的原始文本在reference-results。环境为xtb/6.7.1,官方Intel版、固定提交edcfbbe;每个例子单线程,无需GPU。下文的xtb命令展示实际计算步骤,集群提交时使用配套sbatch job.slurm 算例名;不要在登录终端长时间占用资源。每次重算使用新目录,避免旧文件混入。

1. 先明确两种计算各做什么#

--ptb --alpha计算PTB极化率;--ptb --hess --raman使用GFN2 Hessian计算振动频率,并由PTB计算相关强度。不能把普通GFN2后面加--alpha就视为得到了所需响应,也不要省掉拉曼命令的--ptb和--hess。

2. 极化率#

sbatch job.slurm water-ptb-alpha

实际命令:

xtb input.xyz --ptb --alpha --json --parallel 1
grep -A 6 'Numerical polarizability tensor' stdout.log

水分子本例张量,单位Bohr³:

        x        y        z
x    7.2415  -0.0765  -1.2016
y   -0.0765   7.5157   0.5935
z   -1.2016   0.5935   6.8726

各向同性平均是迹除以3,约7.2099原子单位,即1.0684ų。非对角元随分子朝向变化;比较不同方向必须保持相同坐标系。该张量读取自标准输出,本版本JSON中的总能量零值是占位值,不能用来做PTB反应能或溶剂化能。

3. 拉曼与红外#

sbatch job.slurm water-ptb-raman
xtb input.xyz --ptb --hess --raman --json --parallel 1
cat vibspectrum

本例3个正振动模的结果:

频率/cm⁻¹ IR强度/(km/mol) 拉曼活度/(Å⁴/amu)
1538.82 78.72274 3.15729
3645.71 47.22631 36.74898
3653.98 146.04458 13.78886

非线性三原子分子还有6个接近零的平移/转动模。JSON方法名显示GFN2,是因为Hessian来自GFN2;不要把它误写为“PTB能量Hessian”。拉曼活度不是指定激光和温度下的实验散射强度。

水分子的PTB张量与离散振动谱

4. 从JSON导出CSV#

python3 - <<'PY'
import json,csv
d=json.load(open('xtbout.json'))
with open('raman.csv','w') as f:
    w=csv.writer(f)
    w.writerow(['frequency_cm-1','IR_km/mol','Raman_A4/amu'])
    w.writerows(zip(d['vibrational frequencies / rcm'],
                   d['IR intensities / km/mol'],
                   d['Raman activities / A^4/amu']))
PY

配套图保留离散频率,不人为加上实验峰宽。需要连续谱时另行说明所选展宽函数和宽度。更多方法边界见官方PTB说明。

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

查看配图

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

100%查看原图 ↗