Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1097071
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2009-05-22 11:53:53

ABINIT计算晶体时主要参数的确定(切断动能和k点网格)

分类:
2007.7.25 18:03 作者: | | 阅读:0
ABINIT计算晶体时主要参数的确定(切断动能和k点网格)

ABINIT计算晶体时主要参数的确定(切断动能和k点网格)    

                                                                                                                                                                               

在采用平面波赝势法进行固体的电子结构计算时,为了确保计算的精度和计算结果的可靠性,在计算晶体的物理性质之前,要进行几个重要参数的测试,以保证这些参数的选取使得计算结果有很好的收敛性,这些参数是平面波的切断动能和k点网格取样的大小。
下面以采用ABINIT计算立方的ZrO2晶体为例:
采用的赝势是40zr.psp_mod和8o.psp_mod(它们均是LDA的TM赝势)。
输入文件,in.files的内容为:
INP
OUT
zroi
zroo
zro
./40zr.psp_mod
./8o.psp_mod

在测试平面波切断动能的收敛性时,我们通过设置平面波切断动能从20 Ha开始,以2 Ha递增,直到58 Ha,其他参数不变计算ZrO2的总能。在ABINIT的输入文件中很方便的通过ndtset来设置。
输入文件INP如下:
# Crystalline ZrO2-cubic

ndtset 20 #表示有20组数据
ecut: 20.0 #平面波切断动能从20 Ha开始
ecut+ 2 #以2 Ha递增,也就是Ecut为20.0 + i*2.0, (i从1到20)

#Definition of the unit cell
acell 3*9.65285 #设置晶格常数a=b=c为9.65285 a.u.
rprim 0.0 0.5 0.5 #同上面的acell确定了原胞的基矢
0.5 0.0 0.5
0.5 0.5 0.0

#Definition of the atom types
ntypat 2 #设置原胞的原子种类数,这里有2类原子
znucl 40 8 #每类原子的核电荷数Z
natom 3 #原胞中总的原子数目,这里原胞总共有3个原子
typat 1 2*2 #第一类原子有1个,第二类原子有2个
xred #下面的按分数坐标给原胞中原子的坐标位置
0.00 0.000 0.000
0.25 0.25 0.25
0.75 0.75 0.75


#Definition of the k-point grid
kptopt 1 #设置生成k点的方法,这里表明有ngkpt和nshiftk来确定k点网格的大小

ngkpt 8 8 8 #设置对布里渊区进行8x8x8网格的划分
nshiftk 4 #对划分得到的k点按下面的偏移量进行平移

shiftk 0.5 0.5 0.5
0.5 0.0 0.0
0.0 0.5 0.0
0.0 0.0 0.5

#Definition of the SCF procedure
#ecut 40.0
iscf 5 #自洽迭代中的算法,这里采用cg方法优化。
toldfe 1.0d-10 #自洽迭代迭过程总能收敛的标准
diemac 3.0 #体系宏观的介电常数
nstep 60 #最大自洽迭代步数

#Definition of the outfile information
prtwf 0 #不输出波函数文件。

运行下面的命令
abins OUT
对OUT采用进行分析,用下面的命令取出一些数据:
grep 'ecut' OUT >summary
grep 'Total energy(eV)' OUT >>summary
得到summary类似如下数据:
2.00000000E+01 -2.16713704994688E+03
2.20000000E+01 -2.17244914205186E+03
2.40000000E+01 -2.17629539439455E+03
2.60000000E+01 -2.17888687489711E+03
2.80000000E+01 -2.18045824630388E+03
3.00000000E+01 -2.18139622512928E+03
3.20000000E+01 -2.18192168325676E+03
3.40000000E+01 -2.18219516090481E+03
3.60000000E+01 -2.18232706572898E+03
3.80000000E+01 -2.18237668482667E+03
4.00000000E+01 -2.18239923089573E+03
4.20000000E+01 -2.18241955706857E+03
4.40000000E+01 -2.18244775901834E+03
4.60000000E+01 -2.18248714583389E+03
4.80000000E+01 -2.18253519502611E+03
5.00000000E+01 -2.18258901301065E+03
5.20000000E+01 -2.18264245486986E+03
5.40000000E+01 -2.18269485143783E+03
5.60000000E+01 -2.18274313138312E+03
5.80000000E+01 -2.18278585826504E+03
画图如下:
500){this.resized=true;this.style.width=500;}" border=0 resized="true">
可以看到当Ecut取40 Ha时,体系的总能有很好的收敛了。

下面测试对k点网格的,in.files的输入文件同上。我们这里把k点网格从6x6x6开始增加,以2x2x2递增。INP的输入文件:
# Crystalline ZrO2-cubic

ndtset 10
ngkpt: 6 6 6
ngkpt+ 2 2 2

#Definition of the unit cell
acell 3*9.65285
rprim 0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0

#Definition of the atom types
ntypat 2
znucl 40 8
natom 3
typat 1 2*2
xred
0.00 0.000 0.000
0.25 0.25 0.25
0.75 0.75 0.75


#Definition of the k-point grid
kptopt 1

#ngkpt 8 8 8
nshiftk 4

shiftk 0.5 0.5 0.5
0.5 0.0 0.0
0.0 0.5 0.0
0.0 0.0 0.5

#Definition of the SCF procedure
ecut 40.0
iscf 5
toldfe 1.0d-10
diemac 3.0
nstep 60

#Definition of the outfile information
prtwf 0
运行
abinis OUT&
计算完后对OUT进行分析,
grep 'ngkpt' OUT >comment
grep 'Total energy(eV)' OUT >>comment
取出得到的数据如下:
28.0000 -2182.416564
60.0000 -2182.416514
110.0000 -2182.416506
182.0000 -2182.416526
280.0000 -2182.416499
408.0000 -2182.416512
570.0000 -2182.416506
770.0000 -2182.416514
1012.0000 -2182.416515
1300.0000 -2182.416504
画图如下:
500){this.resized=true;this.style.width=500;}" border=0 resized="true">
可以看到8x8x8的k点网格就能保证体系的总能很好的收敛了。

你可以通过这个链接引用该篇文章:

阅读(2753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~