材料科学软件:VASP二次开发_拓扑性质与电子输运计算.docx

材料科学软件:VASP二次开发_拓扑性质与电子输运计算.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

拓扑性质与电子输运计算

1.拓扑性质的计算

1.1拓扑绝缘体的基本概念

拓扑绝缘体是一种在体相内部具有绝缘性质,但在表面或边缘上存在导电态的材料。这些表面态具有独特的性质,例如对杂质和缺陷的鲁棒性。拓扑绝缘体的研究不仅在基础科学中具有重要意义,而且在电子器件、量子计算等领域具有潜在的应用前景。

1.2拓扑不变量的计算

拓扑不变量是描述材料拓扑性质的关键参数。在VASP中,常用的拓扑不变量包括Z2不变量和Chern数。这些不变量可以通过不同的方法计算,例如通过计算Berry相位或通过解析能带结构。

1.2.1Z2不变量的计算

Z2不变量是描述时间反演对称性拓扑绝缘体的重要参数。在VASP中,可以通过Wannier函数方法计算Z2不变量。具体步骤如下:

构建Wannier函数:使用Wannier90工具包与VASP结合,生成Wannier函数。

计算Z2不变量:使用生成的Wannier函数,通过计算Wilsonloop或Kane-Mele公式来获取Z2不变量。

1.2.1.1构建Wannier函数

首先,需要在VASP中进行自洽计算,生成波函数文件WAVECAR。然后,使用Wannier90工具包进行Wannier函数的构建。

#运行VASP自洽计算

mpirun-np4vasp_std

#复制WAVECAR文件到Wannier90目录

cpWAVECARwannier90/

在Wannier90目录中,编辑wannier90.win文件:

!Wannier90inputfile

num_bands=20

num_wann=10

dis_num_iter=200

kpoints=444

mp_grid=222

kpath=20

beginkpoints_path

0.0000.0000.0000.5000.5000.000

0.5000.5000.0000.0000.0000.000

endkpoints_path

运行Wannier90:

#生成Wannier函数

mpirun-np4wannier90.x-ppBi2Se3

#进行Wannier函数计算

mpirun-np4wannier90.xBi2Se3

1.2.1.2计算Z2不变量

生成Wannier函数后,可以使用Wannier90的z2pack工具包计算Z2不变量。编辑z2pack.in文件:

!Z2Packinputfile

system=Bi2Se3

num_wann=10

kpath=[0.0,0.0,0.0],[0.5,0.5,0.0]

kpoints=100

运行Z2Pack:

#计算Z2不变量

mpirun-np4z2packsurfacerun-iz2pack.in-oz2pack.out

1.3Chern数的计算

Chern数是描述量子霍尔效应和量子反常霍尔效应的重要参数。在VASP中,可以通过计算Berry曲率来获取Chern数。

1.3.1Berry曲率的计算

Berry曲率可以通过计算Berry相位的导数得到。在VASP中,可以使用Berry相位工具包进行计算。

1.3.1.1编辑Berry相位计算文件

在VASP的输入文件INCAR中,添加以下参数:

LCHIB=.TRUE.

IBAND=12345678910

NPAR=4

KPAR=4

1.3.1.2运行VASP计算

#运行VASP计算Berry相位

mpirun-np4vasp_std

计算完成后,生成的CHIB文件包含了Berry相位的信息。可以使用Python脚本进一步处理这些数据,计算Chern数。

importnumpyasnp

#读取Berry相位文件

defread_berry_phase(file_path):

withopen(file_path,r)asfile:

lines=file.readlines()

berry_phase=[]

forlineinlines:

ifBerryphaseinline:

phase=float(line.split()[-1])

berry_phase.append(phase)

returnnp.array(berry_phase)

#计算Chern数

defcompute_chern_number(berry_

您可能关注的文档

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档