四面体积分法

  • strict warning: Non-static method view::load() should not be called statically in /home/vasp/wwwroot/drupal-6.33/sites/all/modules/views/views.module on line 906.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /home/vasp/wwwroot/drupal-6.33/sites/all/modules/views/handlers/views_handler_argument.inc on line 744.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/vasp/wwwroot/drupal-6.33/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home/vasp/wwwroot/drupal-6.33/sites/all/modules/views/plugins/views_plugin_row.inc on line 134.

四面体积分法的基本公式
 

 第一原理计算方法中,基于平面波展开的周期性方法因其高性能得到了越来越广泛的应用。这一类方法的实现中有一个关键性的步骤,即算符的期待值或平均值的计算需要在体系的第一布里渊区(或其不可约部分)进行积分。比较常用的数值积分方法有两大类:特殊点法(special points)以及解析四面体积分法 (analytical tetrahedron method)。其中后者(以下简称为四面体法)是一种更为普适的方法,除了可以应用于计算绝缘体和金属体系的算符期待值之外,还可以给出体系的谱函数,也即可以计算体系的动态响应性质。

 体积分

 在这一节里首先给出四面体法的基本概念和一些重要的公式。对于算符TeX Embedding failed!,其期待值TeX Embedding failed!在倒空间中计算如下:

TeX Embedding failed!

 上式中TeX Embedding failed!是第一布里渊区的体积,TeX Embedding failed!是费米-狄拉克分布函数,而TeX Embedding failed!是算符TeX Embedding failed!在第TeX Embedding failed!条能带中指定TeX Embedding failed!点上的值。 为计算这个积分,四面体方法将第一布里渊区分解成若干个小的四面体,然后在各个四面体中分别计算积分,再对所有四面体求和,即

TeX Embedding failed!
 
 而在每个四面体内TeX Embedding failed!采用线性函数TeX Embedding failed!近似。TeX Embedding failed!的线性系数由边界条件TeX Embedding failed!决定,TeX Embedding failed!是四面体的四个顶点。这样,TeX Embedding failed!在每个四面体中的积分为
 
 TeX Embedding failed!
 
 其中TeX Embedding failed!为四面体顶点的函数值。可以证明TeX Embedding failed!这个权重来源于积分[1]

TeX Embedding failed!
 
 其中TeX Embedding failed!是顶点分别为(0,0,0),(1,0,0),(0,1,0),(0,0,1)的参考四面体。而TeX Embedding failed!。更严格的说,考虑TeX Embedding failed!,上式中的前置系数应改为TeX Embedding failed!,也就是这个四面体小于费米能级TeX Embedding failed!的部分的体积。上式也是现有算法中最基本的表达式。在不产生误解的前提下,此后的讨论中如无必要,能带指数TeX Embedding failed!将不再出现。

 更严格的工作指出[1,2],利用线性函数近似TeX Embedding failed!有些情况下并不是最理想的选择,这时对其更好的近似应该取为两个线性函数的商
  TeX Embedding failed!

 与前面叙述相似,TeX Embedding failed!的系数由边界条件TeX Embedding failed!决定,其中TeX Embedding failed!是第TeX Embedding failed!个顶点上的能量本征值。相应的TeX Embedding failed!在顶点处等于TeX Embedding failed!。经推导可得,这时四面体的积分可表示为

TeX Embedding failed!
 
 其中TeX Embedding failed!
 
 TeX Embedding failed!
 
 考虑到简并情况,Zaharioudakis给出了比较完整的权重表示[2]:
1. TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed! 同方程(6)
2. TeX Embedding failed! = TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed!
      
       TeX Embedding failed!
      
       TeX Embedding failed!
       
       TeX Embedding failed!TeX Embedding failed!形式相同,只需要将上式中的TeX Embedding failed!TeX Embedding failed!互换即可。
3. TeX Embedding failed!TeX Embedding failed! = TeX Embedding failed!TeX Embedding failed!
      
       TeX Embedding failed!

       TeX Embedding failed!
  
       TeX Embedding failed!TeX Embedding failed!形式相同,只需要将上式中的TeX Embedding failed!TeX Embedding failed!互换即可。
4. TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed! = TeX Embedding failed!
   
       TeX Embedding failed!

       TeX Embedding failed!

       TeX Embedding failed!TeX Embedding failed!形式相同,只需要将上式中的TeX Embedding failed!TeX Embedding failed!互换即可。
5. TeX Embedding failed! = TeX Embedding failed! = TeX Embedding failed! < TeX Embedding failed!
      
      TeX Embedding failed!

      TeX Embedding failed!
     
6. TeX Embedding failed! < TeX Embedding failed! = TeX Embedding failed! = TeX Embedding failed!
      
      TeX Embedding failed!
      
      TeX Embedding failed!
     
7. TeX Embedding failed! = TeX Embedding failed! < TeX Embedding failed! = TeX Embedding failed!
      
      TeX Embedding failed!
     
      TeX Embedding failed!
     
8. TeX Embedding failed! = TeX Embedding failed! = TeX Embedding failed! = TeX Embedding failed!
      
      TeX Embedding failed!
 

 态密度

 四面体法的提出,最早是为了解决形如

 TeX Embedding failed!
 
 类的积分。当TeX Embedding failed!,积分式前乘以因子TeX Embedding failed!,上式就是态密度的定义。除了在物理上的重要性以外,讨论态密度有助于直观的理解四面体法的几何意义。

 Lehmann和Taut指出[3],设四个顶点的能量本征值满足条件TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed!,在四面体内能量按照线性函数展开,与上节的TeX Embedding failed!相同:

 TeX Embedding failed!

 其中TeX Embedding failed!以及TeX Embedding failed!。上式中TeX Embedding failed!,因此可以按照倒格矢与正格矢的关系式写出TeX Embedding failed!如下:

TeX Embedding failed!

 分母是以TeX Embedding failed!为顶点的四面体体积的六倍TeX Embedding failed!。因此该四面体对于态密度TeX Embedding failed!的贡献为

  TeX Embedding failed!
                   TeX Embedding failed!
                   TeX Embedding failed!
                   TeX Embedding failed!
                   TeX Embedding failed! > TeX Embedding failed!

 其中函数TeX Embedding failed!的几何意义是等能面TeX Embedding failed!在四面体内的截面面积。因此容易得出TeX Embedding failed!的表达式为
 
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!

 实际上对于态密度,Jepsen和Andersen[4]还提出了更直观简单的计算方法,Blöchl[5]也采用了这种方法,并做了改进。可以将每个四面体看作是容器,给定等能面TeX Embedding failed!之后,该四面体对于电子态数目TeX Embedding failed!的贡献等于TeX Embedding failed! TeX Embedding failed! TeX Embedding failed!填充的体积相对于第一布里渊区体积的比值。而态密度TeX Embedding failed!可以定义为TeX Embedding failed!。通过简单的三角锥体积计算,可以得到

  TeX Embedding failed!
         TeX Embedding failed!
         TeX Embedding failed!
         TeX Embedding failed!
         TeX Embedding failed! > TeX Embedding failed!                          (25)

 上式对于TeX Embedding failed!求导,即得方程(23)。对于简并情况,方程(23)-(25)并不适用。因此对于上式的第三种情况,可等效的写为[4]
  当TeX Embedding failed!时,
  TeX Embedding failed!
 
 而相应的,该情况下的态密度TeX Embedding failed!也可写为

  TeX Embedding failed!

图1:等能面截面图图1:等能面截面图 

 

 其他函数的面积分

 考虑方程(20),对于任意函数TeX Embedding failed!的加权积分可以利用四面体法通过类似于态密度的讨论进行计算[3]。将TeX Embedding failed!在四面体内也利用线性函数近似,则类似于方程(21),TeX Embedding failed!可写为

 TeX Embedding failed!

 其中TeX Embedding failed!。因此每个四面体对于方程(20)的贡献为

  TeX Embedding failed!
        TeX Embedding failed!
        TeX Embedding failed!
        TeX Embedding failed!
        TeX Embedding failed! > TeX Embedding failed!

 其中TeX Embedding failed!是密度随TeX Embedding failed!呈线性变化的截面TeX Embedding failed!的重心:
 
 TeX Embedding failed!
 
 从上面几个公式也可以看出四面体法的一个优点,就是在计算公式中不出现被积函数的导数值。这一点大大的简化了计算,使得编写程序更为容易。

从格林函数的角度统一思考
 

 上一部分中我们分别给出了体积分和面积分的四面体法计算公式。这两类积分所以重要,是因为固体物理中绝大多数的响应性质的计算公式都可以归结到其中(例如有效质量张量、电导率以及磁化率等等)。重新写出更为普遍的体积分式如下

 TeX Embedding failed!

其中TeX Embedding failed!代表积分主值。这样,方程(20)和(29)分别对应于体系的格林函数TeX Embedding failed!的虚部和实部。因此,利用格林函数方法可以统一得到这两者的计算公式。现简要介绍如下:

 在给定基函数的表象下,预解算符可表示为[6]

 TeX Embedding failed!

 将上式中对TeX Embedding failed!点求和改为对第一布里渊区积分,并且将谱投影算符TeX Embedding failed!的矩阵元记为TeX Embedding failed!,则可以得出预解算符的矩阵元为

 TeX Embedding failed!

 与第一部分相同,利用TeX Embedding failed!点网格将第一布里渊区划分为若干四面体,则对于给定的能带指数TeX Embedding failed!,每个四面体对于预解矩阵元TeX Embedding failed!的贡献为

 TeX Embedding failed!
 

 其中复权重TeX Embedding failed!遵循方程

 TeX Embedding failed!

 实宗量的格林函数TeX Embedding failed!可以看作是预解矩阵元TeX Embedding failed!沿虚轴正半轴接近实轴的极限,即

 TeX Embedding failed!

 相应的复权重可以写为

 TeX Embedding failed!

 利用恒等式
 TeX Embedding failed!

 代入方程(33),就可以得出TeX Embedding failed!TeX Embedding failed!分别为

  TeX Embedding failed!

  TeX Embedding failed!

 其中TeX Embedding failed!是Heaviside单位阶跃函数。因此结合方程(32)、(34)、(35)可得给定能带中,每个四面体对于TeX Embedding failed!的贡献为
 
 TeX Embedding failed!
 
 格林函数理论表明[7]
TeX Embedding failed!
TeX Embedding failed!

方程将(37)中的TeX Embedding failed!宗量TeX Embedding failed!取为0,则可得到方程(5),方程(20)中的TeX Embedding failed!,则可得方程(23)。一般的面积分可表为TeX Embedding failed!

 通用的四面体划分法及改进的四面体法

 传统的四面体法中,首先通过对称群的操作找出第一布里渊区的不可约部分。然后在等间距的TeX Embedding failed!点网格上将其手动划分为若干四面体。这种划分有一定的随意性,因为给定一组TeX Embedding failed!点网格, 可以有很多种不同的方法将其围成若干互不重叠的四面体,进而进行计算。这种随意性是否会造成计算上的误差甚至错误? Kleinman对此做了讨论[8],利用一个简单的例子,他证明在TeX Embedding failed!点比较稀疏的情况下,不同的划分会造成高达14%的误差,而正确的划分会给出与特殊点法相同的结果。而在TeX Embedding failed!点足够稠密时,这种划分上的随意性对计算结果的影响可以忽略不计。其原因在于四面体法中,除个别TeX Embedding failed!点以外,绝大多数TeX Embedding failed!点由多个四面体共享,因此在积分中实际上参与超过一次计算,边界及靠近边界的TeX Embedding failed!点在不同的划分中所归属的四面体个数不尽相同,从而使得各自对于积分值的贡献有所差别,而网格中间区域的TeX Embedding failed!点不存在这个问题。因此TeX Embedding failed!点稠密时,边界处TeX Embedding failed!点贡献可以忽略,但是TeX Embedding failed!点较少时这种差别则会影响最终结果。Kleinman的工作使得Jepsen和Andersen对四面体法重新思考,从而提出了通用的、适用于编程的四面体划分法[9],为后来Blöchl的工作奠定了基础。

 Kleinman的工作的另一个重要性在于第一次明确指出了利用四面体法,同样可以将方程(1)所示积分转化为各个TeX Embedding failed!点上的被积函数值的加权求和:

 TeX Embedding failed!

 其中圆括号中的求和遍历所有以TeX Embedding failed!为一个顶点的四面体,而TeX Embedding failed!则是这个四面体中满足TeX Embedding failed! TeX Embedding failed! TeX Embedding failed!的体积,具体公式参见方程(25)。实际上,这一点也可以从方程(3)直接推出。

 在前面工作的基础上,Blöchl给出了包含较大改进的四面体法的普适算法[5],有三个主要特点:四面体的自动划分、各TeX Embedding failed!点的权重以及对于金属体系的Blöchl修正。下面分别介绍如下。

 四面体的自动划分

 前面已经指出,为了减少需要计算的四面体数目,首先需要找出第一布里渊区的不可约部分。这样的策略有一个副作用,即对不可约部分的四面体划分几乎不可避免的要进行人工干预,不利于编程求解。因此Blöchl提出,利用Monkhorst-Pack方法(MP)[10]首先在第一布里渊区内生成等距的TeX Embedding failed!点网格。然后给每个TeX Embedding failed!点编号:

 TeX Embedding failed!

 其中TeX Embedding failed!分别是该TeX Embedding failed!点沿倒格矢TeX Embedding failed!的序数的二倍,TeX Embedding failed!分别是在三个方向上的TeX Embedding failed!点数。TeX Embedding failed!是MP方法中TeX Embedding failed!点的偏移量,有偏移则为1,否则为0。编号之后建立标识数组,其位置与该位置储存的元素值相同,例如,第一个位置存储“1”,第二个位置存储“2”,依此类推。然后从第一个位置开始,利用对称群的操作矩阵对每个TeX Embedding failed!点坐标进行操作,再与数组中其他TeX Embedding failed!点的坐标进行比较,如果彼此相同且后者的编号大于前者,即将后者的元素值改为前者。这样对全部数组操作完毕之后,立即可以挑出所有不可约TeX Embedding failed!点——只有当TeX Embedding failed!为不可约TeX Embedding failed!点时,其编号才与其存储位置相同。之后,为了计算方便,可以对所有这些不可约TeX Embedding failed!点按存储位置的顺序重新编号,即从“1”到“TeX Embedding failed!”。数组中的各个元素也相应的改为新的编号(或叫名称)。这样整个第一布里渊区中的TeX Embedding failed!点都可用不可约TeX Embedding failed!点标记。

 下一步讨论四面体的自动划分过程。以下八组坐标代表的TeX Embedding failed!点构成平行六面体:
 
  TeX Embedding failed!
  TeX Embedding failed!
 
 为了尽量减小插值引起的误差,可以取此平行六面体中最短的体对角线作为等体积的六个四面体的公共对角线,设为TeX Embedding failed!,则可以采用下面6组途径确定这六个四面体的各个顶点:

  TeX Embedding failed!
  TeX Embedding failed!

 对每个平行六面体重复上述过程,可以将整个第一布里渊区划分为体积相等的若干四面体,每个四面体的顶点可用标识数组中的不可约TeX Embedding failed!点标记。将这四个顶点的标号按升序排列,则每个四面体的简并度可以轻易得出。因此,这个过程保证了可以只用不可约TeX Embedding failed!点上的信息进行整个第一布里渊区的积分,而无须考虑如何划定其不可约部分。

 上述过程可以避免Kleinman所说的计算误差,而且整个过程可以通过程序自动实现而无须人工干预。

 

 各个TeX Embedding failed!点的权重计算

 四面体法的基本过程是算出每个四面体对积分值的贡献再对所有四面体求和。因此在本节开始时已经指出,绝大多数TeX Embedding failed!参与了多次计算。同时这种算法也需要同时知道每个不可约TeX Embedding failed!点上的被积函数值。因此对于大规模计算而言难免会有存储方面的困难。如同Kleinman指出,方程(1)可以被表示为TeX Embedding failed!点的加权求和

 TeX Embedding failed!

 与标准的四面体法相同,在每个四面体内,TeX Embedding failed!用线性函数TeX Embedding failed!近似。等价于方程(26),TeX Embedding failed!也可写为

 TeX Embedding failed!

 将其带入方程(41),可得每个不可约TeX Embedding failed!点的积分权重TeX Embedding failed!

 TeX Embedding failed!

 若取TeX Embedding failed!为常数1/4,则根据方程(44)很容易得到方程(40)。事实上方程(40)非常简单实用。但是考虑到问题的完整性以及与修正项的自洽问题,我们在这里还是重复一下 Blöch的计算。将TeX Embedding failed!作为线性函数,满足在TeX Embedding failed!以及等价点TeX Embedding failed!上为1,而在其他TeX Embedding failed!点均为0(当然在两TeX Embedding failed!点间TeX Embedding failed!成线性变化)。为计算这种情况下的积分权重TeX Embedding failed!,首先必须计算出体系的费米能级TeX Embedding failed!:利用方程(25)计算能量小于给定TeX Embedding failed!的状态数TeX Embedding failed!,直到TeX Embedding failed!等于体系的总电子数(TeX Embedding failed!为该能级的简并度),此时的TeX Embedding failed!即为所求TeX Embedding failed!。据此可以得出TeX Embedding failed!(省略能带指数TeX Embedding failed!):

TeX Embedding failed! < TeX Embedding failed!时,
TeX Embedding failed!

当E_1 < E_F < E_2时,
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!

 其中TeX Embedding failed!
 
  TeX Embedding failed!
 

TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed!时,
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!
 
 其中
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!
 

 当TeX Embedding failed! < TeX Embedding failed! < TeX Embedding failed!时,
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!
  TeX Embedding failed!

 其中TeX Embedding failed!
 
  TeX Embedding failed!
 

 当TeX Embedding failed! > TeX Embedding failed!时,
  TeX Embedding failed!
 
 因此,对于给定的TeX Embedding failed!,可以找出其自身和等价点所属的四面体,通过分析各四面体内的能级分布情况由方程(45)-(49)计算出积分权重TeX Embedding failed!

 Blöchl修正

 在四面体中对于被积函数的线性插值近似可以获得简单的计算公式,同时不会过多地牺牲精度。但是对于费米面形状复杂且是部分填充的过渡金属体系而言,还是要考虑线性近似带来的误差及其相关的修正问题。

 首先讨论误差。真实的被积函数TeX Embedding failed!在四面体中总有曲率为正以及曲率为负的部分。而线性函数TeX Embedding failed!会高估正曲率区间的函数值,低估负曲率区间的函数值。对于绝缘体和半导体而言,因为积分区域覆盖整个四面体,所以这两部分在极大程度上可以抵消。但是对于金属体系,因为导带部分填充,也即积分区域只覆盖四面体的一部分而非全部,所以高估部分和低估部分只有一项占主要地位。这使得误差大大地增加。具体体现为总能随TeX Embedding failed!点数目收敛缓慢。

 再考虑对上述误差的修正。设一个普遍的二次函数TeX Embedding failed!,在以四面体三条边为坐标轴的坐标系内可以表示为
 
  TeX Embedding failed!
 
 相应的线性差值函数TeX Embedding failed!则为
 
  TeX Embedding failed!
 
 则四面体中的误差为

  TeX Embedding failed!

 其中最后一步利用公式(参看文献[11])

  TeX Embedding failed!

 其中TeX Embedding failed!TeX Embedding failed!分别指四面体顶点处及面心处的函数值。利用方程(50)可以计算整个第一布里渊区(必须是全部区域,仅包含不可约部分的求和无效)中的误差总值TeX Embedding failed!。具体的计算过程可以在文献[5]中找到,这里不再详述,仅给出结果。利用高斯定理以及有限差分近似,最终可得

  TeX Embedding failed!

 则相应的修正权重TeX Embedding failed!

  TeX Embedding failed!

 在利用方程(42)计算形如式(20)和(29)的积分时,对于金属体系,计入上述修正会有效地改善被积函数的收敛行为。

小结

 以上各节较为全面的介绍了现行的四面体积分方法。对于不同类型的积分,其计算表达式不尽相同。这里简要总结一下上文中比较重要的公式。

 1. 利用传统四面体法,对于形如方程(1)及(29),采用公式(6)-(19)进行计算。
 2. 计算态密度,采用公式(23)、(24)计算;计算积分态密度,采用公式(25)。
 3 对于形如方程(20),采用公式(27)、(28)进行计算。
 4 利用各TeX Embedding failed!点加权求和形式,对于形如方程(1)及(29),采用公式(40)、(25)进行计算。
 5. 考虑Blöch修正的各TeX Embedding failed!点加权求和形式,对于形如方程(1)及(29),采用公式(45)-(49)、(52)进行计算。
 

参考文献

[1] J. Molenaar, P. Coleridge, A. Lodder, J. Phys. C: Solid State Phys. 15, 6955 (1982).
[2] D. Zaharioudakis, Comput. Phys. Comm. 157, 17 (2004).
[3] G. Lehmann, M. Taut, Phys. Status Solidi B 54, 169 (1972).
[4] O. Jepsen, O.K. Andersen, Solid State Commun. 9, 1763 (1971).
[5] P.E. Blöchl. O. Jepsen, O.K. Andersen, Phys. Rev. B 49, 16223 (1994).
[6] P. Lambin, J.P. Vigneron, Phys. Rev. B 29, 3430 (1984).
[7] J. Rath, A.J. Freeman, Phys. Rev. B 11, 2109 (1975).
[8] L. Kleinman, Phys. Rev. B 28, 1139(R) (1983).
[9] O. Jepsen, O.K. Andersen, Phys. Rev. B 29, 5965 (1983).
[10] H.J. Monkhorst, J.D. Pack, Phys. Rev. B 13, 5188 (1976).
[11] M. Abranowitz, I.A. Stegun, Handbook of Mathematical Functions, Dover, p.895 (1972).