超简单!使用ASE查找倒空间高对称点[第一性原理计算入门]

文摘   2024-07-29 08:55   山东  

高对称点的确定

在第一性原理计算中,对于我们常见的能带图,是以波矢k为变量,求本征值。在倒空间中,沿着高对称点之间的连线所对应的波矢,求对应的本征值,连在一起,即为能带。问题是,我们如何找到这些高对称点。

这里介绍一篇文献,以及ASE中提供的方法,给出高对称点。

1. 文献

文中提供了不同晶系下的高对称点坐标、符号、路径,如下图Cubic晶系的例子。

2. ASE 代码

from ase import io, Atoms
from ase.cell import Cell
atoms = io.read('POSCAR')
structure=atoms.cell
kps=structure.bandpath(eps=0.01)
print(kps.special_points)

显示结果:

{'G': array([0., 0., 0.]), 'A': array([0. , 0. , 0.5]), 'H': array([-0.33333333, -0.33333333, 0.5 ]), 'K': array([-0.33333333, -0.33333333, 0. ]), 'L': array([-0.5, 0. , 0.5]), 'M': array([-0.5, 0. , 0. ])}

  • 使用方法

我们只要提供POSCAR,就可以得到对应的高对称点,这里有几点注意:

  1. eps=0.01 是对称性精度,这个值不要太小(越小精度越高),不然会误判对称性。

  2. 对于二维材料,我们只取z坐标为0 的就可以,这个例子是一个六角晶格的二维材料,所以,我们只取GMKG就可以。

  3. seekpath也可以给出高对称点,我潜伏的微信群里,大家都推荐这个,但是我试了,如果用默认的参数,也是会判断出错,也需要降低精度(如果seekpath可以的话),对比下来,我觉得ASE更好,毕竟它还有其他高大上的功能。

我刚接触这个ASE这库,若理解有误,或有更好的方法,还请读者大佬留言指正,感谢支持 ^_^


计算凝聚态物理
介绍常见第一性原理软件的使用,数据处理,模型、数值、解析计算介绍凝聚态物理研究动态python,she’ll ,vasp
 最新文章