我们之前提到的例子如Silion,Diamond, ZnO等都涉及到块状(bulk)材料的计算,通过使用周期性边界条件及相应命令来实现。
PeriodicDimensions = 3
本章我们将进行二维材料的计算,以二硫化钨(WS2)为例。 即在x,y方向上仍然使用周期性边界条件,但是在z方向上取消这一条件,这样所计算的就是二维单层结构,只要改变命令如下即可。
PeriodicDimensions = 2
总体的基态计算输入文件 inp 为:
CalculationMode = gs
FromScratch = yes
PeriodicDimensions = 2 # x,y
ParKPoints = auto
BoxShape = parallelepiped
ExperimentalFeatures=yes
PseudopotentialSet = pseudodojo_pbe
s = 0.24
%Spacing # 单位 Bohr
s | s | s
%
%LatticeVectors
1.0 | 0.0 | 0.0
-0.5 | sqrt(3)/2 | 0.0
0.0 | 0.0 | 1.0
%
a = 3.186*angstrom
b = 18.146*angstrom
%LatticeParameters
a | a | b
%
%ReducedCoordinates
"W" | 0 | 0 | 0
"S" | 2/3 | 1/3 |-0.086675
"S" | 2/3 | 1/3 | 0.086675
%
k = 16
%KPointsGrid
k | k | 1
%
KPointsUseSymmeitries = yes
相应晶格参数可以取自 二维材料数据库 C2DB, 或者Material project。这里需要注意,因为我们想计算的二维单层,所以在Z方向的晶格参数上有所调整,我们将其调整为一个很大的值,这里设为18.146Angstrom, 这样波函数有足够的空间衰减到0, 从而规避单层材料与外界的复杂相互作用。 而且,如果Z方向晶格参数很大,相应的倒格矢就很小,所以在Z方向进行K点抽样时,我们只需要抽1个点就够了。
基态计算完成后,我们进行非占据态计算以求得能带结构。
CalculationMode = unocc
FromScratch = yes
PeriodicDimensions = 2 # x,y
ParKPoints = auto
BoxShape = parallelepiped
ExperimentalFeatures=yes
PseudopotentialSet = pseudodojo_pbe
s = 0.24
%Spacing # 单位 Bohr
s | s | s
%
%LatticeVectors
1.0 | 0.0 | 0.0
-0.5 | sqrt(3)/2 | 0.0
0.0 | 0.0 | 1.0
%
a = 3.186*angstrom
b = 18.146*angstrom
%LatticeParameters
a | a | b
%
%ReducedCoordinates
"W" | 0 | 0 | 0
"S" | 2/3 | 1/3 |-0.086675
"S" | 2/3 | 1/3 | 0.086675
%
%KPointsPath
18 | 10 | 20
0.0 | 0.0 | 0.0 # gamma
0.5 | 0.0 | 0.0 # M
1/3 | 1/3 | 0.0 # K
0.0 | 0.0 | 0.0 # Gamma
%
KPointsUseSymmetries = no
ExtraStates = 8
ExtraStatesToConverge = 6
Output = dos
这里输出 Output = dos 是为了顺带输出 费米能, 在画能带图的时候, 可以减去费米能使价带最高点移到0点,便于读图。
所得能带图如下, 使用PBE泛函得到的带隙是1.82eV, 与实验值2eV左右已经很接近了。