MagneticTB软件包学习

 

这篇博客准备整理一下自己最近一段时间学习MagneticTB这个构建紧束缚模型的软件包时候的一些理解。

这篇博客准备整理一下自己最近一段时间学习MagneticTB这个构建紧束缚模型的软件包时候的一些理解。

前言

在通常的研究中,总是会借助到利用紧束缚近似的方法,来研究一个体系在费米面附近的性质,其实也就是利用一个模型,在费米面附近的能带结构和真实的能带结构近似吻合,而在我之前的学习和计算中,其实主要是结合Wannier90来获得一个紧束缚模型,不过这里所说的这个模型,我一直理解的就是他是一个数值上的模型,也就是没有一个具体的函数表达形式,只是一个单纯的wannier90_hr.dat数据,虽然这个模型也可以很好的反映体系在费米面附近的性质,而且能带上拟合的也是很好,但是如果我想从解析上研究一点东西,这个数据看起来就不行了(虽然有时候一些解析的东西同样可以用数值的方法来计算)。

在前面的学习中,也整理了如何从解析的推导一个紧束缚模型,Graphene 紧束缚模型推导,这篇博客就是整理了怎么推导紧束缚模型,虽然其中的交叠积分仍然是一个参数,但是对于理论研究来说,既然是个参数,那么总是可以调节的么,只要在合理的范围内和真实的能带吻合的较好就可以。

MagneticTB这个软件包将构建紧束缚(TB)模型的过程变的更加的简化,我们只需要给出材料的晶格结构以及原子在实空间中占据的Wyckoff position就可以得到一个带有参数的TB模型,下面我就结合自己所学的知识,学习一下软件包例子中给出的Graphene的案例来整理一下学习笔记。

Graphene

png

这里需要的主要信息有

  • 晶格的空间群 msgpo[gray[191]]
  • 晶格矢量 lattice
  • 晶格常数 lattpar
  • 原子所处的Wyckoff position wyckoffposition
  • 基函数 basisFunction

如果是在有POSCAR文件的时候,可以通过phonopy来确定晶体的空间群和原子所处的Wyckoff position

phonopy --symmtery >syinfo &

通过这个命令就可以在syinfo文件中找到晶体结构对应的空间群号,对称操作,Wyckoff position。至于晶格矢量自然就是包含在POSCAR中的。

最后就是基函数的选择,这一点我是这样理解的,我在VASP计算Graphene能带这篇博客中通过VASP计算了Graphene的能带结构,通过fatband分析可以知道费米面附近的能带就是有C原子的$p_z$轨道贡献的,如下图所示

png

所以这里的基函数的选择就是$p_z$轨道。在明确了这些所有的信息之后,就可以通过init这个函数来构建TB模型

png)

从上面的过程中可以看到,这里并不涉及到什么额外的可控参数,那么最终就可以得到构建的TB模型

png)

构建完成之后可以看到这里有3个自由的参数,这一点也很好理解,毕竟在Graphene 紧束缚模型推导这篇博客中也看到了,因为交叠积分不太容易计算,所以就会使用参数来进行拟合。既然是有参数的,那么自然就可以将参数进行调节来得到拟合能带的目的

png

通过这三个参数调节,总是可以使得在费米面附近,TB模型的能带结构和VASP计算的能带在费米面附近时吻合的

png

当选择上面的参数的时候,可以看到在费米面附近很好的反映出了能带交叠的形貌,这里就是整个Graphene的案例。这个软件包还有一个比较好的功能就是可以通过构建出的TB模型在给出hr数据,也就可以结合WannierTools来进一步对模型进行研究。

png

小疑问

这里我对模型构建的时候有一个小的疑问,我从BCS网站上面查询到191号空间群中,d这个Wyckoff position的位置是

png

(1/3,2/3,1/2) (2/3,1/3,1/2)

与软件包给出的Graphene的案例中的Wyckoff position不一致

(1/3,2/3,0) (0,0,0)

我这里就使用BCS网站上面的Wyckoff position重新计算了一遍,发现结果就是错的,我分析了一下,发现这两种不同的Wyckoff position如果通过平移其实是相同的,但是这里还是没很明白这里面的问题,如果有谁能明白这个事情,可以联系我一下,下面是我用BCS上面的Wyckoff position进行计算的结果。

png

第一步还是正确的,但是到了第二步化简参数的时候,就发生了错误,这里我就不是很明白

png

问题解决

上面提到的问题其实是自己没有搞明白代码中的参数的含义造成了,这里就来整理一下是怎么解决问题的。

png

这里是给出了两个wyckoff position, 但是它们是等价的, 所以只要使用其中的一个就可以了. 很明显软件作者使用的是第一个, 同样也可以使用第二个来进行TB构建.

png)

而这里在构建的时候,wyckoffposition这个参量中的第一个就是从BCS网站上面查询到的Wyckoff position, 而第二个参量代表的是这个位置处原子的磁化方向. 因为我在学习这个例子的时候, 作者并没有给出一个软件使用教程, 所以当时并不明白这个参数代表的到底是什么, 经过一个朋友的提醒自己才明白了这个问题. 具体的内容可以参考后面给出的代码.

代码下载

我把上面所有的执行代码都在了这里,如果然兴趣可以点击这里下载

公众号

相关内容均会在公众号进行同步,若对该Blog感兴趣,欢迎关注微信公众号。

png