使用lobster进行COHP分析

时间:2025-04-09 作者:Jiaqi Z.

分类:材料计算

最后一次更新:2025-04-10


注:这部分后续可能会加入材料计算系列教程中

什么是COHP

晶体轨道哈密顿布居(Crystal Orbital Hamilton Population, COHP)是一种用于分析固体材料中原子间化学键性质的工具,由Dronskowski和Blochl在1993年提出[1]。其核心思想是通过计算哈密顿量矩阵元在原子轨道基底上的投影,定量评估相邻原子间轨道的成键(bonding)或反键(antibonding)相互作用。 COHP将能带结构能量分解为原子轨道对的相互作用能分布;从化学角度更直观地说,它是相邻原子对之间的​​"键权重"态密度​​。

与晶体轨道重叠布居(COOP)不同,COHP直接关联哈密顿量能量而非重叠积分,因此更适用于金属和半导体等强离域体系的键合分析。COHP的计算公式为:
COHPi,j(E)=μ,νciμcjνHμνδ(EEk) 其中,ciμcjν为原子轨道系数,Hμν为哈密顿量矩阵元。负值COHP表示成键态(降低体系能量),正值则为反键态(升高体系能量)。

COHP图谱能明确展示成键(bonding)和反键(antibonding)对能带能量的贡献,通常与态密度(DOS)图并列呈现(DOS仅显示电子分布,而COHP揭示其键合特性)。正如对电子态密度(DOS)积分可得到体系总电子数,对COHP进行能量积分则可量化特定原子接触("化学键")对能带能量的贡献:换言之,​​积分COHP(ICOHP)​​的绝对值反映了键强。

如何使用COHP分析成键or反键

计算费米能级以下的COHP积分,如果积分小于0,则表示成键;如果大于0则表示反键

使用VASP计算COHP的方法

1. 结构优化

如同正常的结构优化一样,在此不赘述。

2. 自洽计算

与一般的自洽类似,但需要注意以下几点:

其中在设置NBANDS时可以首先忽略掉这个参数,直接提交任务进行自洽计算,在开始时查看OUTCAR中NBANDS的数值(使用grep命令,具体方法请详见材料计算教程中的“Linux基础-高级Linux命令-grep匹配字符串”一节)。通常来说,默认数值偏小,一般设置为默认数值的1.5-2倍。

例如,在计算时默认NBANDS=300,则可以在INCAR中设置NBANDS=500左右。

3. 使用lobster处理COHP

在服务器上使用lobster计算投影以获取COHP,(如果你是我所在课题组的成员,课题组内106节点服务器已配置lobster,其他节点如224待测试,使用前需要module load lobster,建议直接使用后面的提交任务脚本在队列系统使用)对于其他课题组,建议寻求组内帮助,或联系超算管理员。

2025-4-10更新:课题组内服务器224和105已配置lobster,导入方法和106节点相同。

在使用lobster时需要准备一个输入文件lobsterin,一个常见的模板为:


# 设置起止能量(eV)
COHPstartEnergy -10
COHPendEnergy 5

usebasisset pbeVaspFit2015
# 设置轨道
basisfunctions C  2s 2p
# 考虑两个原子间的COHP
cohpbetween atom 1 atom 2 orbitalwise
gaussianSmearingWidth 0.05
# SkipDOS 跳过DOS计算
# 保存投影文件
saveProjectionToFile 
# loadProjectionFromFile 读取投影文件
            

其中一些参数解释如下:

将文件设置完成后执行lobster即可得到处理后的文件。在输出结果中需要关注abs. charge spilling表示spilling误差,如果误差小于5%则表示计算正常(5%是官方给的数据,一般建议为2%)。

4. 绘图与后处理

在绘制cohp时需要使用wxDragon,可以在官网下载,也可以直接点击这里下载(注意:测试发现官网上的新版本在导出xy格式时有问题,需要“回调”至老版本。如果你没有安装,可以直接在这里下载可用于数据导出的老版本;如果你已经安装,无论是官网或者2025年4月10日之前在本篇文章对应链接下载的,需要删除原有安装包与解压文件,重新解压新文件)。下载完成后打开,将服务器上的COHPCAR.lobster下载到本地并导入软件中,选择合适的轨道进行可视化,完成后将数据导出为XY格式的文件并使用Origin进行绘图。(wxDragon的UI界面比较老)

注意:注意!注意!在开始时我们所说COHP在费米能级以下积分为负表示成键,积分为正表示反键。但在使用wxDragon绘制COHP时,为了和COOP相对应,在绘制COHP时通常设置为相反数(即-COHP),此时积分为正表示成键,积分为负表示反键!

提交任务脚本

下面是一个在slurm队列系统提交lobster任务的一个简单脚本(sub.lobster),对于我所在课题组内的成员而言可以直接使用(如提交vasp任务一样提交即可,使用sbatch sub.lobster),对于其他课题组而言,也可根据下面的格式进行修改以适配不同的队列系统(如pbs等),具体请咨询你的导师、你的课题组同学或者超算相关管理员。

你可以在这里直接下载脚本文件到本地,点击下载


#!/bin/bash
SBATCH -n 56
SBATCH -N 1

打印任务信息
cho "Starting job $SLURM_JOB_ID at " `date`
cho "SLURM_SUBMIT_DIR is $SLURM_SUBMIT_DIR"
cho "Running on nodes: $SLURM_NODELIST"

# 执行任务
## 载入lobster
module load lobster
##unlimited the stack size
#ulimit -s unlimited
lobster > lobster.out 2>lobster.err

# 任务结束
echo "Job $SLURM_JOB_ID done at " `date`
            

注释

[1] Dronskowski, R. & Bloechl, P. E. Crystal orbital Hamilton populations (COHP): energy-resolved visualization of chemical bonding in solids based on density-functional calculations. J. Phys. Chem. 97, 8617–8624 (1993). https://doi.org/10.1021/j100135a014

[2] 关于pbeVaspFit2015,可以参考文献Maintz, S., Deringer, V. L., Tchougréeff, A. L. & Dronskowski, R. LOBSTER: A tool to extract chemical bonding from plane‐wave based DFT. J Comput Chem 37, 1030–1035 (2016). https://doi.org/10.1002/jcc.24300


上一篇:日麻系列教程1:日麻役种常见一览
下一篇:Roselia Live 「Sei stark」返图

同分类上一篇:Linux当中for与VASPKIT“联动”
同分类下一篇:使用sed与正则表达式修改INCAR参数