快捷搜索:  汽车  科技

er模型在哪里构建:wannier90构建紧束缚模型教程

er模型在哪里构建:wannier90构建紧束缚模型教程《graph.py程序: 石墨烯紧束缚模型》《确定Wannier90能量窗口的脚本》学术之友公众号先前也推送了数篇wannier90和紧束缚模型相关的文章。《Wannier90安装以及与VASP5.4.1接口安装》《Wannier90教程 (来源于PRL支持材料)》

er模型在哪里构建:wannier90构建紧束缚模型教程(1)

首先,感谢新老朋友们。你们的支持是老王继续写作的不竭动力。

两周前,老王写了两篇VASP wannier90 构建紧束缚模型的文章。

《一文搞定VASP wannier90构建紧束缚模型》

《VASP wannier90 构建紧束缚模型(补充)》

学术之友公众号先前也推送了数篇wannier90和紧束缚模型相关的文章。

《Wannier90安装以及与VASP5.4.1接口安装》

《Wannier90教程 (来源于PRL支持材料)》

《确定Wannier90能量窗口的脚本》

《graph.py程序: 石墨烯紧束缚模型》

大家对这方面比较感兴趣,想让老王更一下QE wannier90构建紧束缚模型的文章。

今天老王就来说一说,有说的不到位的地方,还请大家文末留言多多交流和指教。另外学术之友公众号长期有偿征集理论计算入门干货教程,投稿邮箱734915365@qq.com

1. 安装编译

以QE 6.5和wannier90 3.0 为例。

首先,下载安装包:q-e-qe-6.5.tar.gz ;wannier90-3.0.0.tar.gz

QE: https://github.com/QEF/q-e/releases/tag/qe-6.5Wannier90: http://www.wannier.org/download/

解压:

tar -zxvf q-e-qe-6.5.tar.gz

安装QE到指定目录下

./configure --prefix=/指定目录make all -j12 # -j12 代表12核并行编,可以视服务器情况修改

然后,将wannier90 3.0 压缩包拷贝到QE安装目录的archive下,并且命名为v3.0.0

cp wannier90-3.0.0.tar.gz QE/archive/v3.0.0

接着,进入QE安装目录

make w90

安装完毕。

2. 构建紧束缚模型

构建紧束缚模型需要四步:

  • 用pw.x运行计算自洽(scf)和非自洽(nscf)

  • 运行wannier90.x -pp 生成 seedname.nnkp (前提有.win文件)

  • 运行pw2wannier90.x读入pw输出文件、seedname.pw2wan(接口文件seedname.win和seedname.nnkp 生成seedname.mmn seedname.amn和seedname.eig

  • 运行wannier90.x得到能带(这部分和VASP是相同的)

2.1 自洽计算和非自洽计算

以wannier90 example中example11为例。

Silicon.scf:如果拷贝,请去掉#后的内容再计算

Silicon&controlcalculation = 'scf'restart_mode = 'from_scratch' prefix = 'si' #si.save 中的sitprnfor = .true. pseudo_dir = '../../pseudo/' #指定赝势 outdir = './' # si.save 的位置iprint = 2/&systemibrav = 2 #晶格类型celldm(1) = 10.2 #晶格常数 单位bohrnat = 2 #原子总数 ntyp = 1 #原子类型数 ecutwfc = 25.0 #截断能,单位Ry/&electrons conv_thr = 1.0d-12 #电子收敛精度diagonalization = 'cg' #电子优化算法/ATOMIC_SPECIES Si 28 Si.pbe-n-van.UPF #指定赝势文件ATOMIC_POSITIONS {crystal} # crystall 为分数坐标Si -0.25 0.75 -0.25 # Si的位置Si 0.00 0.00 0.00 K_POINTS {automatic} # 自动生成k点20 20 20 0 0 0

silicon.nscf: 如果拷贝,请去掉#后的内容再计算

Silicon&controlcalculation = 'nscf' # 修改这里prefix = 'si'pseudo_dir = '../../pseudo/'outdir = './'iprint = 2verbosity = 'high' #输出本征值 /&systemibrav = 2 celldm(1) = 10.2nat = 2ntyp = 1ecutwfc = 25.0nbnd = 12 #设定能带数/&electronsconv_thr = 1.0d-12diagonalization = 'cg' diago_full_acc = .true. #对角化/ATOMIC_SPECIESSi 28 Si.pbe-n-van.UPFATOMIC_POSITIONS {crystal}Si -0.25 0.75 -0.25Si 0.00 0.00 0.00K_POINTS {crystal}5120.00000000 0.00000000 0.00000000 1.953125e-030.00000000 0.00000000 0.12500000 1.953125e-03 ... ... 0.87500000 0.87500000 0.75000000 1.953125e-030.87500000 0.87500000 0.87500000 1.953125e-03

非自洽nscf文件中k点生成方法:

kmesh.pl 8 8 8 > kpoint

kmesh写出在kpoint下。kmesh.pl脚本来自wannier90软件的uitility文件夹下。

2.2 运行wannier90.x -pp seedname

文件夹下准备silicon.win文件,运行如下命令 (silicon.win 请见example11文件夹)

wannier90.x -pp silicon

生成silicon.nnkp文件。

win文件的k点同样可以用mesh.pl生成,命令为

kmesh.pl 8 8 8 wan > kpoint-wan

这里解释一下win文件的投影部分

num_bands = 12begin projections!! !! Bond-centred s-orbitals # f= x,y,z 指定s轨道中心位置f=-0.125 -0.125 0.375:sf= 0.375 -0.125 -0.125:sf=-0.125 0.375 -0.125:sf=-0.125 -0.125 -0.125:s!! !! Atom-centred sp3-orbitals #原子中心的投影,直接指定原子Si:sp3end projections

!! (1) Valence bands #考虑价带!! num_wann = 4!! select_projections 1 2 3 4 #选择投影能带,这里选择了前四条,也就是四个s轨道!! dis_froz_max = 6.5!! dis_win_max = 6.5

!! (2) Valence conduction bands #考虑导带和价带,这里选择后8条,也就是sp3杂化的能带num_wann = 8 select_projections 5-12 dis_froz_min = -1.5 dis_froz_max = 9.5dis_win_max = 20.0

2.3 pw2wannier90.x

运行如下文件完成投影

&inputpp outdir = './' prefix = 'si' # 对应si.save seedname = 'silicon' # 对应silicon.win write_amn = .true. write_mmn = .true./

投影后会生成silicon.amm silicon.mmn,silicon.eig三个文件.

2.4 运行wannier90.x 得到能带

.win文件中能带路径为:

bands_plot = truebegin kpoint_pathL 0.50000 0.50000 0.5000 G 0.00000 0.00000 0.0000G 0.00000 0.00000 0.0000 X 0.50000 -0.50000 0.0000X 0.50000 -0.50000 0.0000 G 0.00000 0.00000 0.0000end kpoint_path

运行

wannier90.x silicon &

能带文件为silicon_band.dat

2.5 DFT能带计算

silicon.band

Silicon&controlcalculation = 'bands' # 修改这里prefix = 'si'pseudo_dir = '../../pseudo/'outdir = './'iprint = 2verbosity = 'high' #输出本征值 /&systemibrav = 2 celldm(1) = 10.2nat = 2ntyp = 1ecutwfc = 25.0nbnd = 12 #设定能带数/&electronsconv_thr = 1.0d-12diagonalization = 'cg'diago_full_acc = .true. #对角化/ATOMIC_SPECIESSi 28 Si.pbe-n-van.UPFATOMIC_POSITIONS {crystal}Si -0.25 0.75 -0.25Si 0.00 0.00 0.00K_POINTS {crystal_b} #注意这部分的修改50.50000 0.50000 0.5000 50 # L0.00000 0.00000 0.0000 50 # G0.50000 -0.50000 0.0000 50 # X0.00000 0.00000 0.0000 1 # G

2.6 DFT能带数据导出

band.in文件如下:

&BANDSprefix = "si" outdir = "./" !filband = "band.dat"!lsym = .true./

能带文件为bands.out.gnu

将两个能带文件一起绘图即可。

注意:要在example11原文件基础上修改k点密度。下面是老王将4x4x4改成8x8x8的结果。明显8x8x8会更好。

er模型在哪里构建:wannier90构建紧束缚模型教程(2)

er模型在哪里构建:wannier90构建紧束缚模型教程(3)

运行命令汇总:

mpirun -n 4 pw.x < silicon.scf > silicon.scf.outmpirun -n 4 pw.x < silicon.nscf > silicon.nscf.outwannier90.x -pp siliconmpirun -n 4 pw2wannier90.x < silicon.pw2wan > silicon.pw2wan.outwannier90.x silicon mpirun -n 4 pw.x < silicon.band > silicon.band.outmpiexec -n 4 bands.x < band.in

3. 磁性材料计算

磁性非自旋轨道耦合体系计算和之前介绍vasp中一样,自旋向上和自旋向下是分开的,需要两个win文件,具体参考wannier90里的example08。

iron_up.pw2wan : 对应 iron_up.win

&inputpp outdir = './' prefix = 'Fe' seedname = 'iron_up' spin_component = 'up' write_mmn = .true. write_amn = .true./

iron_down.pw2wan : 对应 iron_dn.win

&inputpp outdir = './' prefix = 'Fe' seedname = 'iron_dn' spin_component = 'down' write_mmn = .true. write_amn = .true./

4. 自旋轨道耦合计算

VASP中自旋轨道耦合除了INCAR文件中的LSORBIT=TRUE以外,还需要vasp_ncl执行文件。而QE中计算自旋轨道耦合除了输入文件中添加 lspinorb=.true. ;noncolin=.true. 以外,还需要相应的考虑自旋轨道耦合的赝势。

赝势文件是不是考虑了自旋轨道耦合可以打开赝势文件,查看has_so参数。

has_so="T" 加自旋轨道耦合的赝势

has_so="F" 不加自旋轨道耦合的赝势

感兴趣的可以在下面的网址找找。

http://www.quantum-espresso.org/pseudopotentials/ps-library/si

下面这个赝势库中,SR为不加自旋轨道耦合,FR为加自旋轨道耦合.

http://www.pseudo-dojo.org/

5. 如何学好

更多wannier90功能学习,请把wannier90给的案例重复一遍。多多讨论,多多思考。

猜您喜欢: