openmx的非平衡格林函数(negf)范例修改:NEGF-8ZGNR-0.3.dat

在OpenMX当中有一个NEGF范例,它得出的transmission图是沿0轴对称的,事实上却是应该是这样的。而我做出的却并不是。所以需要在原来的文件上修改,以逐步达成需要。

先来看左电极:

中间标红的一块区域为Central区域,左边有四个氢,右边也有四个氢。

由这个图出发,可以将现有的左右电极都化作中心,将现有的左右电极都复制分别向外侧移动,形成新的研究结构。为此需要确定坐标的轴与原子的实际关系。

通过简单分析,发现第一列全是0,这代表z轴。中心部分的第三列全是4.8812037,意味着第三列是x轴。剩下的第二列是y轴。

一、中心区域重构

经过一番研究。发现如果可以重构原子位置,进行一下剪接,可以避免原子数目急剧扩大的风险。

方案如下图所示:

将黑色方框所标的设置为中心,并且补上三个氢原子或者直接删掉下面的三个氢原子。分别新增6个碳原子到左、右电极处,并且分别在左右电极上方补上一个氢原子。

为完成目标先进行第一步,分别将左右电极的12个原子放进中心区域。

在左电极当中,第三列坐标为3.66的8个碳原子选取第二列坐标较小的6个。这六个碳原子在左电极当中的编号为20、21、24、25、28、29。

在左电极当中,第三列坐标为2.44的8个碳原子选取第二列坐标较小的6个。这六个碳原子在左电极当中的编号为19、22、23、26、27、30。

在右电极当中,第三列坐标为6.1的8个碳原子选取第二列坐标较小的6个。这六个碳原子在左电极当中的编号为1~6。

在右电极当中,第三列坐标为7.32的8个碳原子选取第二列坐标较小的6个。这六个碳原子在左电极当中的编号为9、12、13、16、17、20。

将左右电极的碳原子放入中心区域后,还需要在中心区域增加氢原子。中心区域要保留的原有氢原子编号为距离最近的碳原子9,坐标为

与之相邻的碳原子编号为1,坐标为

二者第二列坐标差为0.0361626-(-1.0818549)=1.1180。这也就是C-H键长。接下来需要在原中心区的8个碳原子去掉第二列坐标最高的两个编号为7、8的这两个碳原子。再去掉编号为10的氢原子。再在6号碳原子坐标为:

头上构建一个第二列坐标与之距离1.118的氢原子。计算11.3499296+1.118=12.4679

新的氢原子坐标为:

接下来的工作需要按照上面计算出来的新氢原子坐标,在新的中心区域中补齐剩下的4个氢原子,它们的第二列坐标分别为2.44和7.32。

4个氢原子里面有两个是现成的,分别是原左电极的35号原子:

和右电极的25号氢原子:

我们可以直接把上面两个氢原子的第二列修改为需要的12.4679,即可完成剩下两个原子的构建。

现在已经完成了,中心区域的重构,标号未修整的原子列表如下:

经过修改后的原子列表如下:

一共36个原子,与我们设计的目标一致。

二、左电极

首先需要将橙色框内的六个碳原子复制到浅蓝色的位置,再删除原有的上方的6个碳原子和一个最靠近中心区的上方氢原子(右上角),并且把最上方的氢原子向下移动到12.4679。

在左电极原子列表当中,橙色框中的碳原子的第三列坐标为1.22。我们需要保留其中第二列坐标中较小的6个,被删除的两个碳原子编号为14号和15号。

接下来需要做一道算术题目,石墨烯C-C键长为1.42埃,计算出需要平移的距离为2.4595埃。用1.2211879-2.4595=-1.2383。将编号为2、3、6、7、10、11这六个碳原子分别复制,并修改第三列为-1.2383。

将原18号氢原子的第二列坐标由16.7019089修改为12.4679。

要被删除的的6个碳原子和一个氢原子编号分别为:13、16、31、32、33 、34、36。

完成后,未修改编号的左电极变为:

进行修改编号,得到总共20个原子的列表:

三、右电极

按照左电极的制作方法制作右电极。

应该删除的8个碳原子为:7、8、21、22、23、24、33、34。要删除的氢原子编号为26。它们的坐标如下:

将编号为26的氢原子第二列的16.7019089修改为12.4679。

将6个碳原子复制,并将第三列坐标由8.5411879修改为8.5411879+2.4595=11.0007。这六个碳原子原来的编号为10、11、14、15、18、19。

修改编号之前,原子列表如下:

修改编号之后,原子列表如下,总共20个原子:

Atoms.UnitVectors

在原来的左电极和右电极文件中的晶格矢量为

在原NEGF-8ZGNR-0.3.dat文件中的晶格矢量为

看来前两个一样,最后一个影响不大。参考Openmx用户手册第139页

这段话的意思是说,不要管那么多,像上面那样写,就能把参考方向改成沿原子坐标第三列,而且能保持其他两列的意义不变。具体为什么,我也不知道。

现在沿着第三列的方向模型整体变宽了,原来的半宽恰好是4.88,而现在的半宽是6.1,所以,将Atoms.UnitVectors改成

四、左右电极文件

上面仅仅完成了NEGF-8ZGNR-0.3.dat的修改,要想开始仿真还要修改Lead-L-8ZGNR.dat和Lead-R-8ZGNR.dat文件。

修改的地方就是原子个数,原子坐标。

新的左电极文件如下。

五、输入效果图

这个是一个仿真结束之后的图,是我们的输入文件的原子排布的xyz文件。用xcrysden画出来

六、仿真结果

得到文件negf-8zgnr-0.3.dat,文件的第六列就是transmission。