布里渊区的特殊k点采样问题研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
= A Am k G m k;
BZ
Am T i k = Am k;
Am k Am k =∑ a j m , n A j k
j
其中前两条是最重要的,其中 Nn 是符合 ∣R∣=C n 的格点数。而后面几个条件则表明 A m 具有体系全部对称性、周期性以及完备性。 注意到上面公式中的求和 m 从 1 开始,因此需要对 m=0 的情况进行单独定义。我们定 k =1 ,则函数 f k 的平均值为: 义 A0 f = / 2 3∫BZ f k d k= f 0 那么该如何得到 f 0 呢?注意方程(1),如果存在这样的特殊 k 点,使得满足: 0 =0 ; ∀ {m 0, m ∈ I } Am k 0 ,这样的 k 点被称为“平均值点”。但是普遍的讲,满足 那么立刻可以得到 f = f 0= f k 上述条件的 k 点并不存在。对这个问题的解决办法就是不用单个 k 点,而采用满足一定条件 的 k 点的集合 {k } ,利用这些 k 点上函数值的加权平均计算 f 0 。也即: ∞ k =0, m =1,⋯ , N ; ∑ i = 1 2 ∑ i A m
⇒ f = f 1 ∑ f m N
m =1 m m 1 q 1 R1 R2 R3/ q 1 /2 m
S m1 q
− 1 其中 S m1 q = 0
if R j= nq , j =1,2,3 n ∈ I otherwise
k 在布里渊区的平均值可以用 f 1 (在 与我们在 Chadi­Cohen 方法中看到的一样, f Chadi­Cohen 方法中是 f 0 )。而且误差(方程右边第二项)可控,即可以通过增加 k 点密 度 q 的方法提高精度。这是因为 q 增大,根据上面所述 S m1 q 的取值可知,在 R j 更大 的时候仍能保证方程(2)成立。 但是根据方程(3)可得
i i i j
2
*
4、Monkhorst­Pack 方法 2
上述 Chadi­Cohen 方法非常巧妙,但是在具体的应用上必须首先确定比较好的 2~3 个比 较好的 k 点,由此构建出的 k 点集合才拥有比较高的效率和精度。因此,对于每一个具体问 题,在计算之前都必须经过相当的对称性上的分析。对于编写程序而言,这是一件很麻烦的 事情。那么,是否存在一种比较简易的产生 k 点网格的方法,同时又满足方程(2)呢?这 就是通常所说的 Monkhorst 和 Pack 方法。 R= R 1 a 1 R2 a 2 R 3 a 3 R 总可以表述为 晶体中的格点 Monkhorst 和 Pack 建议按如下方法划分布里渊区: ur = 2r − q − 1/ 2 q , r ∈[ 1, q ] 将 k 点写为分量形式,则可得到如下表达式: k prs = u p b 1 ur b2 u s b3 是倒空间的基矢。与 Chadi­Cohen 方法相似,Monkhorst 和 Pack 定义函数 A m 为: 其中 b i 1 /2 i k R A m k = N m ∑ e k =1 ,其中 A1 ∣R∣=C k An d k ,我们可以计算在如上所生成的 则相应于 Chadi­Cohen 方法中的 / 2 ∫ Am
i

m
i
m= 1
i
将上式的求和顺序重新组合可以得到( f 0= g 0 ): iT kR f k = f 0 ∑ g m / nG ∑ gm e = f 0∑ f m
−1 i m
m =1
i
m= 1
∣R∣= C m

e
i kR l
= f 0 ∑ f m A m k 1
布里渊区的特殊 k 点采样问题研究
陈征征 1、介绍 在各种周期性边界条件的第一原理计算方法中,需要涉及到在布里渊区的积分问题,例 如总能、电荷密度分布,以及金属体系中费米面的确定等等。 如果采用普通的在布里渊区 内均匀选取 k 点的方法,那么为了得到精确的结果 k 点的密度必须很大,从而导致非常大的 计算量。这使得计算的效率非常低下。因此,需要寻找一种高效的积分方法,可以通过较少 的 k 点运算取得较高的精度。而这些 k 点被称之为“平均值点”(Baldereschi)或者“特殊 点”(Chadi, Cohen)。 2、基本思想 1 k ,我们可以将其展为傅立叶级数: 考虑一个光滑函数 g

n
利用方程(2),可以得到:
− f 0= ∑ i f k i
i=1 n n m = N 1 i =1
∑ ∑ i f m Am k i
n
k 的平均值: 考虑到 f m 随 m 的增大迅速减小的性质,我们可以进似的得到 f
i f = f 0=∑ i f k
1
∣ R∣= C m
∣R∣= C m

i
e
ik 2R

上式等价于 T ik R ik R ∑ e ∑ e ⇒
1 2 i
∣ R∣= C m
∣R∣= C m

e
1 ik R
∑ e
l
2 iTlk R
⇒∑
l
l = 0 ⇒ ∑ Am k
l
∣R∣= C m
a j
b j
则可得: S mn q = mn 也即,在 k 点网格上是正交的。 k 用 A m 展开: 与 Chadi­Cohen 方法类似,将函数 f f k = ∑ f m A m k
* k 并在布里渊区内积分,可得: 同时左乘 A m f m= / 2 3∫BZ A* k f kd k m k =1 ,所以从方程(3)可得 因为 A 1 m= 1

e
ik 1 T l k 2
用这种方法产生一系列 k 点,用以计算布里渊区内的积分。 如果此时的精度不够,则利用同样的方法继续生成新的 k 点集合: ii =k i T i k 3 k k =0 的特殊 k 点。从而改进精度。 其中 k3 为在 m ∈{ N 3 } 情况下满足 A m 事实上,如果考虑体系的对称性,则 {k } 中的 k 点数目可以极大的减小。也就是说, * } ,阶数为 n ,那么实际上按上述方法构造出来 对于给定的点 k2,可以找出其波矢群 {k 的 ki 只有个不同的点,此时各点上的权重为 i= n* / nG 。更进一步,通过点群的全部对称 操作,可以将全部的 ki 点转入第一布里渊区的不可约部分。如果 ki 点的重叠度是 n k ,则 = nk / ∑ nk 在最后的计算中,这个点的权重为 k 。 j
a
Nm
Nn
3
其中
i / q 2r − q − 1 R j − R j
b
ab 注意 R , R j =1,2,3 都是整数,因此可以算出 W j q : 1 if ∣Rbj − R a j∣=0, 2 q , 4 q ab q 1 b W j q = − 1 if ∣R j − R a = q , 3q , 5 q j∣ 0 otherwise ab 其中第三种情况是因为 W j q 是奇函数。引入限制条件: ∣R aj∣q / 2 ; ∣Rbj∣q / 2
f 1= 1 / q ∑ w j f k j
3 j =1 P q
其中 w j 是体系所属点群阶数与 kj 点的波矢群阶数的比值: w j =n G / n* 。而 P(q)是对所有 k 点进行对称及平移操作后第一布里渊区不可约部分的所有不重合的 k 点数。因为处于高对 称位置上的 k 点其波矢群阶数也比较高,因此相应的这些高对称 k 点的权重就比较小。这也 是为什么在 VASP 的 OUTCAR 文件中高对称的 k 点权重比较小的理论根本。 与 Chadi­Cohen 方法一样,P(q)的大小是 Monkhorst­Pack 方法效率高低的重要标志。文 献中给出了 bcc 以及 fcc 两种格子中的 P(q): q q 2 q 4 / 96 q / 2 is even q q 4 q 8 / 192 q / 2 is even fcc : P q = ; bcc : P q = q 2 q 4 q 6 / 192 q / 2 is odd 2 q 2 q 4 q 2 q / 2 is odd 可以看出,即使对于较大的 q 值,P(q)也是比较小的,因此 Monkhorst­Pack 方法效率是比较 高的。 应该注意的是,Monkhorst­Pack 方法的关键一点是将三维空间的问题转化为三个独立的 一维问题。因此,对于六角格子或者单斜格子,上述 Monkhorst­Pack 方法并不适用,而必须 加以修改 3。以六角格子为例,Pack 指出 k 点网格应按下述方法生成 4: u p=ur = p − 1 / qa , p , r ∈[ 1, q a ] ; us = 2s− q c − 1 / 2 q c , s ∈[1, q c ] 也即 a 轴和 c 轴分别设置。相应的,P(q)的大小可计算如下: Pa q a = 1 3 0 ; =mod q a , 6 , = qa − / 6 q / 2 if qc is even Pc q c = c q c 1 / 2 if q c is odd 上述生成 k 点的方法对应于 VASP 手册中对于 k 点设置的建议“对于六方体系应该将 k 点置 于原点处”。
i k⋅R g k =g 0 ∑ gm e m= 1
m
k ,满足条件 f T k = f k , ∀ T ∈ G ,则 假设另有一个拥有体系全部对称性的函数 f 我们可以将 f k 用 g k 展开如下:
iT kR f k = 1 / n G ∑ g T i k = g0 ∑ ∑ 1 / n G g m e
3
f =∫BZ f kd k = 8 / f 1
忽略前面的常数因子,可以看到 Monkhorst­Pack 方法中的表达式与 Chadi­Cohen 方法完全一 样。现在将 f 1 的表达式代入上述方程,则 ∞ * * 1 /2 f = 8 / / 8 ∫BZ A1 k f kd k =∫BZ A1 k ∑ f m Am k =∑ f m S m1 q N m
i =1
而将第二项作为可控误差。因此,如果我们可以找到一组 k 点,使得 1)集合中的 k 点尽量 少;2)这些 k 点在 N 尽量大的情况下满足方程(2),则我们进行布里渊区积分的时候可以 尽可能快的得到精度较高的结果。这正是特殊 k 点方法的要点所在。反过来讲,这也表明进 行具体计算的时候我们需要对计算精度进行测试,也即保证所取 k 点使得上式的第二项足够 小。 3、Chadi­Cohen 方法 1 上一节我们指出了特殊 k 点的可行性。那么这些特殊的 k 点如何得到呢?Chadi 和 Cohen 首先指出了一套方法。 首先找出两个特殊 k 点,k1、k2,这两个 k 点分别在 { N 1 } 、 { N 2 } 的情况下满足 Am k =0 ,然后通过这两个 k 点构造新的 k 点集合: 2 k i = k 1 T i k 且权重为 i=1 / nG 。下面证明 ki 在 { N 1 }∪{N 2 } 的情况下仍然满足方程(2): 根据 k1 和 k2 的定义,可知对于 m ∈{ N 1 } 和 m ∈{ N 2} , A k = 0 Am k 1 m 2 因此, ik R ∑ e
f m 1 / q
3
p ,r , s= 1

q
3 f k prs Am k prs ⇒ f 1= 1 / q
p ,r ,s =1

q
f k prs
如果 q 值取得比较大,那么所需计算的 k 点数目就会非常大,如何提高 Monkhorst­Pack 方法 的效率呢?考虑到体系的对称性,则 k 点的数目会大大的减少。重新写出 f 1 如下:
i= 1 i
其中 N 可以取有限值。
利用方程(1)(最左边和最右边的两个式子),可以得到:
= f ∑ ∑ ∑ A k ∑ i f k i 0 i i m i
i i m= 1 i= 1 n N n m =N 1 i=1
f ∑ ∑ i Am k i m
m= 1
其中 C m 是距离原点第 m 近邻的球半径,按升序排列,且 C m ≤ C m1 。其中=是因为限 制条件 ∣R∣≤C m 具有球对称性,因此满足此条件的格点集合{R}并不是等价的格点。且函数 A m 满足下列条件: / 2 ∫BZ Am kd k =0, ∀ {m 0, m ∈ I } / 2 ∫ A m k An d k = N n mn
m
BZ
离散化的网格点的相同的量:
S mn q = 1 / q
3 p ,r , s=1

q
A m k prs A n k prs = N m N n W q =1 / q ∑ e
ab j r= 1 q
− 1/ 2
∑ ∑ ∏ W ab j q
a=1 b= 1 j =1
相关文档
最新文档