ABINIT计算实例1: 计算H2O分子
abinit在计算分子体系时,采用了超原胞的模型,即将一个分子放在足够大的超原胞中,当作周期性的边界条件来处理。要注意的是:超原胞的边长要足够大,以消除分子之间的相互作用。此时一般采用只有一个k点的计算,即点。下面以计算H2O的键长、分子能级和结合能为例进行说明。
这里所采用的版本是abinit5.2.4。
主要的步骤:
一、测试性计算确定超原胞的边长。
这里采用一个立方体的超原胞,在测试性计算时,平面波切断动能和k点都不变,改变立方体的边长,计算体系的总能。当总能变化较小时的边长为所要用到的超原胞的边长。
输入文件例子:
1)in.files的内容
h2o-test.in
h2o-test.out
h2oi
h2oo
h2o
1h.pspnc
8o.pspnc
in.files是abinit用来引导计算的输入文件,它包含了主要输入文件的文件名、主要输入出文件的文件名、输入文件的前缀,输出文件的前缀以及赝势文件的文件名。上面的第一行中h2o-test.in是用来定义主要输入参数的文件的文件名,第二行中的h2o-test.out是用来定义主要输出文件的文件名,第三行h2oi是用来定义输入文件的前缀名,第四行h2oo是用来设置主要输出文件的前缀名。第六行和第七行等是用来设置赝势的文件名。
在abinit运行时,采用的命令是:
abinis in.files log&
(abinis是abinit的串行版本可执行模块名)
2) 主要输入文件h2o-test.in的内容:
ndtt 4
acell: 8 8 8
属虎的女人
acell+ 2 2 2
rprim
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
ntypat 2
znucl 1 8
natom 3
typat 2*1 2
xangst
0.8599 -0.1407 -0.2006
-0.5378 0.0153 -0.7701
好斗的公鸡作文0.0000 0.0000 0.0000
ecut 10.0
nkpt 1
nstep 60
toldfe 1.0d-6
diemac 1.0
diemix 0.5
此时输入文件的主要包括了一下:
i) 描述晶格信息:晶格基矢、晶格常数、原子总类、原子的个数以及坐标rprim:用来描述计算原胞的基矢;它下面的赋值第一、二和三行分别是用来描述第一、二和三个基矢的。
acell: 是用来设置原胞的晶格常数a, b,c。
ntypat: 是用来设置原胞中的种类的数目。
znucl:用来指定每类原子的核电核数(即原子序数)。
natom: 用来指定原胞中的原子个数。
typat:对所列出的原子的分类。
xcart:表示按卡迪尔坐标系给出原子的位置,但是单位是a.u.为单位。xangst:表示按卡迪尔坐标系给出原子的位置,但是单位是angstrom为单位。xred:表示按基矢给出原子的位置,即分数坐标。
ii)与方面有关的参数:平面波切断动能、k点
ecut :用来设置平面波切断动能的大小,单位为Hatree。
nkpt: 用来所采用k点的个数,这里表示采用1个k点(即点)。
写雪景的诗句
iii)控制参数:计算收敛参数,自洽计算的最大步数
nstep: 自洽计算的最大步数。当自洽计算的步数超过此步时,即使总能变化还未收敛,自洽计算也会停止。
toldfe: 自洽计算时,总能变化收敛标准。表示当自洽计算的前后两步的总能变化小于此参数设置的值时,自洽计算停止。
diemac: 体系的宏观介电常数,用于加速自洽计算的收敛。对分子体系一般设置在1.5到3.0之间的数。
diemix:控制在自洽计算过程中,介点常数的混合系数。对分子体系,一般取为0.5或0.33。
ndtt 表示要计算多少组数据。这里表示要计算4组数据,acell从8 8 8 开始,以2 2 2为增量开始变化。即计算acell 8 8 8 ; acell 10 10 10; acell 12 12 12; acell 14 14 14。
计算出来的结果如:
acell (a.u.) Etot( Ha)
8.0000000000E+00 -1.6735382722E+01
西汉首都
1.0000000000E+01 -1.6774261463E+01
1.2000000000E+01 -1.6762288735E+01
1.4000000000E+01 -1.6785737614E+01
1.6000000000E+01 -1.6784883014E+01
仔的拼音组词
1.8000000000E+01 -1.6787492105E+01
2.0000000000E+01 -1.6782173031E+01
2.2000000000E+01 -1.6789998005E+01
2.4000000000E+01 -1.6781404333E+01
2.6000000000E+01 -1.6791640086E+01
所以超原胞的边长至少要大于14 a.u.。
二、优化分子的结构
1)in.files的内容:
h2o-relax.in
h2o-relax.out
h2oi
h2oo
h2o
1h.pspnc
8o.pspnc
2)h2o-relax.in输入文件的内容:
ionmov 3
ntimes 60
tolmxf 5.0d-4
acell 14 14 14
rprim
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
ntypat 2
znucl 1 8
natom 3
typat 2*1 2
0.8599 -0.1407 -0.2006
-0.5378 0.0153 -0.7701
0.0000 0.0000 0.0000
ecut 10.0
nkpt 1
nstep 60
nband 10
toldfe 1.0d-7
diemac 1.0
diemix 0.5
在进行分子的结构参数优化计算时,需指定采用什么方法来优化原子的位置,以及优化时的收敛参数。因此在此例子,我们对计算原胞的边长取为14 a.u.。ionmov: 控制原子的移动和优化,这里设置为3,表示按BFGS方法优化原子的位置。
酵母怎么发面tolmxf :设置优化时,原子受力收敛的标准。这里表示原子所受的最大力需小于5.0d-4 Ha/a.u.后,优化停止。
ntimes: 用来设置优化计算时,最大的离子步数,当优化的步数达到此数时还未收敛,优化计算也会停止。
prtgeo:用来控制是否写出原子的结构参数,比如键长等。这里设置为1表示要写出这些数据。
从计算的结果可以看到,经过15步就收敛了:
At Broyd/MD step 15, gradients are converged :
max grad (force/stress) = 2.0532E-04 < tolmxf=" 5.0000E-04" >
三、计算H2O的分子能级和结合能
这一步一般采用自洽计算,计算出H2O分子的总能以及分子能级。要计算出结合能,还要另外在计算出分子所包含的每类原子的能量。在计算单个原子的能量时,需采用LSDA计算(即自旋极化的计算)。交换关联、赝势、切断动能的大小都要与计算分子时的一致。
i). in.files输入文件内容为:
h2o-scf.in
h2o-scf.out
h2oi
h2oo
h2o
1h.pspnc
8o.pspnc
ii).主要的输入文件h2o-scf.in的内容为:
acell 14 14 14
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
ntypat 2
znucl 1 8
natom 3
typat 2*1 2
xangst
0.95840 -0.16066 -0.40274
-0.63626 0.03527 -0.75441
-
0.00004 -0.00001 0.18645超燃英文歌
ecut 10.0
nkpt 1
nband 10
nstep 60
toldfe 1.0d-6
diemac 1.0女生游戏名
diemix 0.5
prteig 1
这里acell用测试出来的参数,xangst采用优化出来的原子坐标。这里增加了要计算的本征值的个数(即设置了nband 10,表示要计算10个本征值)。prteig 设置为1表示要将本征值输出。
在输出的本征值文件中:
Fermi (or HOMO) energy (hartree) = -0.22982 Average Vxc (hartree)=
-0.05221
Eigenvalues (hartree) for nkpt= 1 k points:
kpt# 1, nband= 10, wtk= 1.00000, kpt= 0.0000 0.0000 0.0000 (reduced coord) -1.04950 -0.39717 -0.36014 -0.22982 -0.06023 0.03620 0.04007 0.07108 0.07777 0.07874
可以看到HOMO是-0.22982 Ha, LUMO是-0.06023 Ha,所以LUMO-HOMO gap是4.61 eV。
从主要的输出文件中可以得到总能是:-1.6826133524E+01 Hatree。