MATLAB腳本:從wannier90_hr文件提取指定格點(diǎn)哈密頓量

Wannier90是一款強(qiáng)大的開(kāi)源代碼,可以生成局域wannier函數(shù),并使用它們來(lái)高效精確地計(jì)算材料的電子性質(zhì)。通過(guò)wannier90,我們可以獲取基于wannier function basis的哈密頓量矩陣,并將其利用于緊束縛模型近似的計(jì)算當(dāng)中。但是程序默認(rèn)輸出的文件內(nèi)容比較龐大,可以通過(guò)設(shè)計(jì)一些簡(jiǎn)單的程序幫助我們篩選想要獲取的重要信息。這里,本文將使用MATALB腳本(要求版本號(hào)大于R2019a)來(lái)提取指定多個(gè)格點(diǎn)的全部哈密頓量,并將它們各自保存成表格形式,大大方便了數(shù)據(jù)的處理過(guò)程。

先貼出代碼(因?yàn)槟壳癇站代碼塊沒(méi)有對(duì)應(yīng)matlab規(guī)則,所以高亮看起來(lái)很亂):
整個(gè)代碼里需要手動(dòng)改的只有一項(xiàng)就是Direct矩陣,它是以3*n的形式保存的。若你想輸出格點(diǎn)(l,m,n)的哈密頓量,就請(qǐng)把l,m,n以一行的形式寫(xiě)入到Direct里,要輸出多個(gè)格點(diǎn)就繼續(xù)增加更多的行。

接下來(lái)我們以鈣鈦礦結(jié)構(gòu)的SrVO3(SVO)為例來(lái)具體展示下程序的使用方法。(例子中用到的文件?
鏈接:https://pan.baidu.com/s/16B4q5K07T_2tIvMsVvnC_A?
提取碼:ks3s )
通過(guò)DFT求得塊體SVO的部分能帶如下圖所示

SVO中V原子的3d軌道能帶分布在[0, 6]eV范圍內(nèi),且與其他軌道沒(méi)有雜化,非常適合用于做wannier projection。選取V的3d軌道Wannier Function作為Basis,求得wannier90_hr.dat,這一步的具體過(guò)程可以參考下站內(nèi)的一個(gè)教程。

建議將wannier90_hr.dat單獨(dú)保存在一個(gè)文件夾內(nèi),然后運(yùn)行程序,此時(shí)會(huì)彈出一個(gè)文件選擇界面,選擇想要處理的文件并確認(rèn)。

之后,程序會(huì)自動(dòng)根據(jù)你輸入的Direct輸出對(duì)應(yīng)的哈密頓量并保存為表格形式(表格會(huì)根據(jù)格點(diǎn)矢量自動(dòng)命名,并保存在和.dat一個(gè)目錄下)。如果想保存成文本格式,可以在第19行修改后綴名為'.txt',并移除第20行的最后一個(gè)逗號(hào)分割對(duì)。(PS:如果你很想輸出虛部的結(jié)果,可以把第18行的6改為7)


簡(jiǎn)單介紹下下輸出的矩陣形式到底是怎樣的,以(0,0,0)為例

wannier的輸出順序?yàn)椋琹相同時(shí)依次輸出m=0,±1,±2,...,±l的線性組合。在本文的這個(gè)案例中V的3d軌道電子l=2,矩陣從左至右,從上到下每個(gè)對(duì)應(yīng)的軌道分別是dz2(m=0),dxz,dyz(m=±1),dx2-y2,dxy(m=±2)??梢钥闯龈鬈壍离娮拥母顸c(diǎn)能是正交化的,且分別對(duì)應(yīng)三重和二重簡(jiǎn)并的t2g和eg軌道。

接下來(lái)這一部分簡(jiǎn)單談一下結(jié)果分析的部分,有些部分的數(shù)學(xué)和物理證明會(huì)被掠過(guò),如果不太熟悉的朋友可以回頭再看一下緊束縛近似的理論。
在這個(gè)例子中分析所有的hopping terms,我們可以發(fā)現(xiàn)兩個(gè)關(guān)于它們的鮮明特性:
所有的不同軌道間hopping terms都是0或者小到可以被忽略,比如(0,0,0)和(0,0,1)都是正好等于0,比如(1,1,0)和(0,0,2)它們的就非常小。因此,不同軌道之間的hopping在近似的過(guò)程中可以被忽略掉,在處理的過(guò)程中可以把它們看作相互獨(dú)立的。
不論是沿著哪個(gè)方向,次近鄰的hopping terms都是非常小的,因此在描述塊體SVO的能帶的時(shí)候是只需要考慮到近鄰項(xiàng)即可。

因此,結(jié)合SVO的晶格對(duì)稱性(cubic),對(duì)于每個(gè)軌道α沿著特定方向比如z,哈密頓量可以簡(jiǎn)化為

SVO哈密頓量表達(dá)式,這里lx,ly只取0或1
接下來(lái)求哈密頓量中的兩個(gè)常數(shù)ε和t,例如xy軌道沿著z方向,另外根據(jù)對(duì)稱性可得主要的hopping terms 只有四種(建議仔細(xì)觀察下各個(gè)格點(diǎn)的hopping terms,重復(fù)的值很多):t0=(0,0,0)=0.456 eV, t1=(1,0,0)=-0.254 eV,t2=(0,0,1)=-0.026 eV, t3=(1,1,0)=-0.081。各自的ε和t分別為

現(xiàn)在我們來(lái)關(guān)注從Γ(0,0,0)點(diǎn)到X(0,0,pi/a)點(diǎn)的能帶色散,yz軌道X點(diǎn)的能量等于tyz+εyz=(t1+2*t3)+(t0+2*t1+2*t2)=-0.416-0.114=-0.53eV。xz軌道由于對(duì)稱性的原因和yz軌道的能量在這個(gè)點(diǎn)上簡(jiǎn)并。xy的能量等于txy+εxy=t2+t0+4t1+4t3=-0.91eV。而在Γ點(diǎn),三個(gè)t2g軌道的能量是簡(jiǎn)并的,大小都等于t0+4t1+2t2+4t3。
在PHYSICAL REVIEW B 88, 125401 (2013)中,利用以上方法對(duì)SVO塊體的能帶進(jìn)行了緊束縛近似的擬合,發(fā)現(xiàn)和DFT計(jì)算所得的結(jié)果非常相近。而近自由電子近似方法得到的二次型的能帶(藍(lán)線)和DFT的計(jì)算結(jié)果差異較大,特別是在X點(diǎn)附近的色散,能量過(guò)高。


以上,本文提供了一種基于MATLAB的wannier90hr文件的提取腳本,能高效地選取出其中重要的信息。并結(jié)合一種高對(duì)對(duì)稱的體系SVO,簡(jiǎn)單解釋了如何根據(jù)hr文件中的信息,運(yùn)用緊束縛近似方法畫(huà)出體系的能帶結(jié)構(gòu)。
以上內(nèi)容為本人自制,謝絕轉(zhuǎn)載,歡迎轉(zhuǎn)發(fā)。如有錯(cuò)誤,歡迎指正。有問(wèn)題歡迎在評(píng)論欄發(fā)起討論。