龙空技术网

有效质量详细教程

学术之友 119

前言:

现时兄弟们对“vb如何导入数据”大概比较珍视,兄弟们都想要分析一些“vb如何导入数据”的相关内容。那么小编也在网摘上收集了一些关于“vb如何导入数据””的相关资讯,希望你们能喜欢,兄弟们一起来学习一下吧!

本文针对p4vasp ()导出的能带数据,进行处理得到有效质量。其它软件也可以导出数据进行类似的处理,但是需要自己注意导出数据的单位。有效质量的计算数学上是很简单的,主要是需要注意单位。我们的思路就是把所有单位都转化为原子单位,例如长度为玻尔半径 (Bohr radius),能量为Hartree,那么得到质量的单位就是电子质量 (m0)。本文很啰嗦,是一个面向新手的教程。

来源:

1. 第一步:使用p4v提取能带数据

在正确的能带计算完成后(这个大家自己检查,我们目前就先假设能带计算的没问题),使用p4v打开计算完后产生的vasprun.xml文件。

然后点击DOS+bands,然后点击show-Bands。

然后点击那个长得像照相机一样的按钮,就可以把整幅图的数据导出了。

导出的有三个,我们需要处理其中的.dat文件。

这个.dat 文件一共两列,第一列是k空间路径的路程,单位是2pi/Angstrom;第二列是能量本征值,单位是电子伏特 eV。

* 很多同学很困惑这个横坐标是怎么来的,那么我在这里简单说一下。不感兴趣的同学请直接跳到第二步。

在direct lattice vector这一栏下,是我们的实空间基矢,这一栏应该是和POSCAR里3-5行的内容一模一样的。而旁边reciprocal lattice vectors是VASP给出的倒空间的基矢。按大多数定义,如下面这个图里所说,由于我们是个正交格子,所以b1的方向与a1相同,就是a2叉乘a3的方向,右手则,长度就是a1自己的模。对于我这个截图,应该是 2pi/5.995 = 1.048 A-1,然而VASP用的定义有点点不一样,没有乘以2pi,所以基矢长度就是 1/5.995=0.1668,就是reciprocal lattice vectors这一栏显示的。知道VASP如何给出的倒格子以后,我们就忘掉实格子,仅仅关注倒格子,在倒空间遨游。

然后就是如何得到横坐标的问题。首先我们看向 KPOINTS文件:

在前两个高对称点间,插了50个点(包括高对称点本身),这50个点在倒空间的坐标,OUTCAR里也给出了:

这里把(0, 0, 0)到(0.5, 0, 0)等分50份,由于0点也算一个点,那点之间的间隔就是0.5/49 = 0.0102。如图所示,我们得到了倒空间的K点坐标。这三个坐标再乘以刚才的倒格子基矢,就可以得到刚才那幅图里的k-points in units of 2pi/SCALE and weight。我们可以验证一下,0.0102*0.1668 = 0.001702。这里注意SCALE = 1,具体你的体系SCALE是多少,那是POSCAR里第二行有写的,一般都是1,也可以在OUTCAR里找到SCALE是多少。

那么,横坐标就是k-points in units of 2pi/SCALE and weight中点所经历的路程了。那就是两点之间的距离公式了,相信大家都会。

2. 第二步:将数据导入Origin

我们需要的是第一导带和第一价带的数据,也就是first conduction band和first valence band。由于p4v把每一条带的数据全都导出了,所以寻找起来会有一些麻烦。

还好,p4v把费米能级平移到0了(平移相当于y加上一个常数,不影响y的二阶导数的值),如果你是半导体,那么肯定小于零的是VB,大于零的是CB,处于正负交接的,那就是第一CB和第一VB,如图所示。

上面那条带,那就是第一VB,都小于0。下面那个带,那就是第一CB,数据我没截全,就是截了一个交接处。一条带的总共数据就是那么些,x值从0到下一个0之间不包含下一个0。

下面我们把第一CB和第一VB的数据导入Origin。

然后就是注意,在高对称点那里,会出现重复点:

也就是说,50和51号点,对应的是同一个高对称点。所以,最好的方法就是分方向。对于我来说,1-50号对应G-X,51-100对应X-M,101-150对应M-G,那么在同一个X点或M点,就会出现两种二阶导数值,这样就可以得到两种在M点的有效质量,分别是M->X方向和M->G方向的有效质量,二者可能相同,也可能不同,取决于材料本身的性质。

3. 第三步:转换单位!

先说能量,1 eV = 0.036749 Hartree,所以第二列乘以0.036749 就从eV化成Hartree。

再说x轴,之前的单位是 2pi/Angstrom,现在要化为1/Bhor,因为1 Bohr = 0.529177 Ang, 那就是: 第一列*0.5291772108*2*pi。转化如下图所示:

4. 第四步:求导或者拟合。

对于转化完单位的数据,我们用origin自带的分析工具,选中C-D两列数据,然后求二阶导:Analysis-Mathematics-Differentiate-Open Dialog。

然后如下图进行设置,输入数据选为C, D两列,也就是我们刚才转化完单位的两列,阶数选择为2。

然后我们就得到了每一处的二阶导数。下面我们要找到我们的CBM和VBM对应的K点是哪个,这个也很简单,去p4v给的能带图看一下,哪里是我们的CBM和VBM。如下图:

我们这个例子里,VBM和CBM均在第三个高对称点上,也就是M点,M点对应的是orgin里100或者101号点。由于我每一段都分开了,所以我直接找到X-M段最后一个点,那就是我需要的M点所在的位置。

最后一列那个数就是我们需要的二阶导数值。

当然,你也可以用附近的点拟合一个二阶函数,然后取二次项的系数。实际上origin给你的二阶导,是相应的二次函数的系数。

得到的二阶导数记为E’’。m= 1/2E’’ = 0.5/E’’ = 0.5/3.15574 = 0.158 (m0)。m0为电子质量。

同样的,我们也可以拟合二次函数:

最好取CBM或者VBM附近的几个点,这样使得数据落在二次函数范围内,减小误差,离得太远的点不一定在二次函数区域内。

我们取CBM点附近的四个点,拟合二次函数,结果类似,得到二次项系数为C。

我本人怕麻烦,一般不用这个图形拟合的方法。

之后就可以按照定义:

Effective mass = 1/2/C = 0.164 (m0) ,m0是电子质量。

由于假设半导体电子激发后,电子在CB上运动,空穴在VB上运动,所以CB上求得的认为是电子有效质量,VB上求得的是空穴有效质量。

第一次写教程,难免有很多问题,希望大家多提意见,我好做修改。

* vaspkit也可以用来求有效质量,具体怎么做,已经有教程了,我就不啰嗦了。作者用本文的方法和vaspkit的方法都用过,两个不同的方法,对于同一个体系来说,得到的有效质量是十分接近的,也间接证明本文的单位转化是没问题的。vaspkit结果如下图:

同一个体系,用本文计算:

标签: #vb如何导入数据 #centos下安装p4vasp