LOBSTER 自旋COHP与电荷:读出每条键的贡献
OH和弯曲NO₂的ICOHP、自旋与轨道求和,以及Mulliken和Löwdin电荷。
阅读本篇目录
下载VASP输入、LOBSTER输入、原生结果、CSV和画图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd lobster-spin-examples
bash results.sh
bash plot.sh
使用LOBSTER6.0.0官方g++9.3静态OpenMP版;前置VASP6.6.1采用NVHPC25.3、CUDA12.8、HPC-X2.22.1及MKL2023.2。两套固定小分子在集群实际完成VASP及普通LOBSTER投影,本文复用其结果。VASP需要用户具备相应使用资格和POTCAR;下载包不分发POTCAR或WAVECAR。
1. 从同一套投影继续读数据#
本篇直接使用自旋DOS教程的两套VASP和LOBSTER结果,不需要为每张图重算。cohpBetween ... orbitalWise同时给出整条键和轨道配对贡献。
cat inputs/OH/lobsterin
cat inputs/NO2/lobsterin
cat reference-results/OH/ICOHPLIST.lobster
NO₂的完整文件分别选择N1–O2、N1–O3,不能只看平均列而漏掉两条键。
2. ICOHP如何读#
本例原生ICOHP,单位eV:
| 键 | 自旋↑ | 自旋↓ | 两自旋之和 |
|---|---|---|---|
| OH:O1–H2 | −3.83321531 | −3.86112596 | −7.69434127 |
| NO₂:N1–O2 | −7.93442705 | −9.31486622 | −17.24929327 |
| NO₂:N1–O3 | −8.17970384 | −9.31477362 | −17.49447746 |
这是特定固定结构、基组和自旋设置下的投影结果,不是断键能或反应能。不要用OH和NO₂的绝对ICOHP大小直接排列化学键强弱。弯曲NO₂的两条键也可能因当前电子态、数值设置而表现出不同贡献,不应仅凭输入几何接近对称就强行取相同值。
head -n 12 reference-results/NO2/COHPCAR.lobster
COHPCAR包含平均、整键和轨道配对曲线,并分别存储两个自旋的微分与积分列。列数随所选键和轨道变化,不能固定“第3列永远是第一条键”的通用脚本。配套画图先读曲线数量,再定位本例整键列。

图画的是负COHP,正方向通常表示该约定下的成键贡献。讨论占据贡献时同时检查实际自旋占据;本例固定总磁矩,不能只拿公共零点下的某一列数值替代原生ICOHPLIST。
3. 轨道求和#
OH的O2s–H1s与O2p各分量在各自旋下求和,分别恢复整键ICOHP。NO₂的每条N–O键也应对所有所列轨道配对求和,不能只挑一条p轨道当成整键。
grep 'O1_' reference-results/OH/ICOHPLIST.lobster
grep 'N1_' reference-results/NO2/ICOHPLIST.lobster
不同版本输出名称可能变化,先读表头和轨道标签。微分曲线受展宽与网格影响,积分与原生占据定义也要一起看。
4. 电荷分析#
cat reference-results/NO2/CHARGE.lobster
cat NO2-charges.csv
NO₂的Mulliken电荷约为N +0.53865517e、O2 −0.28217939e、O3 −0.25647584e,合计在打印精度内为零。Löwdin约为+0.48583823e、−0.25345930e、−0.23237899e。
Mulliken与Löwdin采用不同分区定义,数值不应要求相同;它们也不是唯一可观测的原子电荷。更换基组或投影设置后,电荷与ICOHP都要用同一方案比较。
本篇使用普通自旋投影、DOS、COHP和电荷输出,没有把单独SOMO密度导出当作已经可用的步骤。