笔记:QE计算BN的能带

您所在的位置:网站首页 bn的结构 笔记:QE计算BN的能带

笔记:QE计算BN的能带

2023-08-18 19:32| 来源: 网络整理| 查看: 265

第一步,优化晶格常数

查阅文献,可知六方BN的结构见Fig1,所有原子都在一个平面内。

Fig1. BN的结构(c轴)

relax.in

&CONTROL

    calculation='vc-relax', disk_io='low', prefix='pwscf',

    pseudo_dir='./', outdir='./tmp', verbosity='high'

    tprnfor=.true., tstress=.true., forc_conv_thr=1.0d-5, etot_conv_thr=1.0d-5, nstep=100,

/

&SYSTEM

    ibrav= 0,

    celldm(1)=1.8897261328856432,

    nat= 2,

    ntyp= 2,

    occupations = 'smearing', 

    smearing = 'gaussian'

    degauss = 0.02

    ecutwfc= 50, ecutrho = 600,

/

&ELECTRONS

    electron_maxstep = 100,    conv_thr = 1.0d-9,    mixing_mode = 'plain'

    mixing_beta = 0.7d0,    diagonalization = 'david'

/

&IONS

    ion_dynamics='bfgs'

/

&CELL

   press = 0.00 ,

   press_conv_thr=0.1

   cell_dynamics = 'bfgs' ,

   cell_dofree = '2Dxy',        !二维

/

ATOMIC_SPECIES

  B  10.811   B.UPF

  N  14.0037  N.UPF

CELL_PARAMETERS (alat=  1.889726877)

  2.507313   0.000000000   0.000000000

  1.253656   2.1713967   0.000000000

  0.000000000   0.000000000   20

ATOMIC_POSITIONS (crystal)

B 0.00000000 0.00000000 0.50000000

N 0.33333333 0.33333333 0.50000000

K_POINTS {automatic}

  12 12 1 0 0 0

赝势版本为SSSP_1.1.2_PBE_efficiency,改为B.UPF和N.UPF,需要与relax.in在同一目录下。

执行:pw.x < relax.in > relax.out

计算完成之后,可以通过下面的指令来查看结果:

grep '!' relax.out >> result.out

grep 'Fermi' relax.out >> result.out

awk  '/Begin final coordinates/,/End final coordinates/{print $0}' relax.out >> result.out

输出的分别是:每一步的总能量;每一步的费米能级;优化后的晶格常数。

vc-relax结束后会自动进行一次scf,可以不用再进行scf运算。(我不是很清楚这里计算scf用的结构,是优化前的还是优化后的,不放心的话可以修改输入文件中的结构部分,重新再跑一次scf)

第二步,计算能带

bands.in

&CONTROL

    calculation='bands', disk_io='low', prefix='pwscf',

    pseudo_dir='./', outdir='./tmp', verbosity='high'

    tprnfor=.true., tstress=.true., forc_conv_thr=1.0d-5

/

&SYSTEM

    ibrav= 0,

    celldm(1)=1.8897261328856432,

    nat= 2, ntyp= 2,

    occupations = 'smearing', smearing = 'gauss', degauss = 1.0d-9

    ecutwfc= 50, ecutrho = 600,

/

&ELECTRONS

    electron_maxstep = 100

    conv_thr = 1.0d-9

    mixing_mode = 'plain'

    mixing_beta = 0.8d0

    diagonalization = 'david'

/

&IONS

    ion_dynamics='bfgs'

/

&CELL

   press = 0.00 ,

   press_conv_thr=0.1

   cell_dynamics = 'bfgs' ,

   cell_dofree = '2Dxy',

/

ATOMIC_SPECIES

  B  10.811   B.UPF

  N  14.0037  N.UPF

CELL_PARAMETERS (alat=  1.88972613)

   2.508819263   0.000000000   0.000000000

   1.254409132   2.172701162   0.000000000

   0.000000000   0.000000000  20.000000000

ATOMIC_POSITIONS (crystal)

B       -0.000000000   0.000000000   0.500000000

N        0.333333330   0.333333330   0.500000000

K_POINTS {crystal_b}

4

0.000 0.000 0.000 30

0.000 0.500 0.000 30

-0.333 0.333 0.000 30

0.000 0.000 0.000 30

bands.in文件就与relax.in文件放在同一目录即可,因为需要读取第一步算完的结果,不然还需要修改outdir的路径,放一起就很省事。

执行指令: pw.x < bands.in >bands.out

第三步, 数据处理绘图

可以使用QE自带的bands.x对能带结构进行初步的处理。

draw_bands.in

&bands

prefix='pwscf',

outdir='tmp'

filband='bd.dat'

lp=.true.

/

执行指令:bands.x < draw_bands.in > draw_bands.out

输出的能带结构在bd.dat中,当然也有更方便画图的数据存放在bd.dat.gnu中。

这里用QE自带的plotband.x来进行绘图。

plotband.in

bd.dat

-8 5   !能量上下限

plotband.xmgr    !数据输出

plotband.eps        !  图像输出

-0.8728        !费米能级,绘图时会将费米能级平移到0

1.0 0    !纵坐标刻度    整体偏移

执行指令: plotband.x < plotband.in >plotband.out

就可以查看输出的能带图啦!

Fig2. BN的能带图 plotband.x

当然也可以自己绘图,这里把VBM设成了费米能级。

Fig3. BN的能带图 QE

再放一张用VASP跑出来的结果:

Fig4. BN的能带图 VASP

可以看到整体的能带走向基本上是一致的,不过VASP默认的是将费米能级设为0。

QE计算出来的能带数据bd.dat里面的结果都是相对的,可以通过将费米能级设为0或者将VBM设为0来绘图,但是我用VASP也测试了,发现不同的软件的费米能级似乎是不一样的,不是很懂,放上一张网上别人的解释。

Fig5. 关于费米能级

新手上路,敬请指正!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3