密度泛函理论(五):实际计算中的问题

(绝缘体,金属和半导体中价带,导带和费米能级的关系)

在前面的文章中,我们介绍了利用Bloch理论、傅里叶变换和平面波展开的方法,在倒易晶格中求解各个k点处波函数与电子能量的求解方法。在实际应用中,由于计算量和波函数函数积分的问题,我们还需要考虑能量截断模糊处理(smearing)。然后,本文将简要介绍密度泛函理论在实际计算中的算法和第一性原理-分子动力学方法。

能量截断

在每个k点处的波函数可以用平面波展开,原则上,这些平面波可以有无穷多个,但是在实际计算中,平面波的个数必须为有限个,因此,我们需要对平面波的能量进行截断。高能量平面波的分量对波函数的贡献很小,因为高能量平面波的展开系数很小,因此可以对平面波的能量进行截断。

在前面的文章中,我们计算过平面波的动能为:

截断能Ecut定义为:

在对每个k点的平面波展开时,我们只考虑能量低于Ecut的分量。截断能的具体取值与计算的系统有关,一般来说,我们需要重复计算越来越大的截断能,知道体系的能量趋于稳定,进而确定一个体系的截断能。

截断能的取值与密度泛函理论的计算量有直接关系,根据截断能的定义,我们可以估算展开波函数所需要的平面波与体系大小和截断能的关系,如下式所示:

通常地,每个原子的波函数约需要上百个平面波展开,对于一般的体系,一般需要1000~100000个平面波对波函数进行展开,这就意味着,需要计算与平面波个数对应的矩阵的对角化,尤其是当体系比较大时,计算量将大大增加。

模糊处理

对于一个孤立的原子,该原子的电子会占据特定的离散的轨道,比如: 1s, 2s, 2p, 2d...等。当很多原子形成固体时,非常靠近原子核的电子不参与成键,仍然保持在原有的能量轨道上,而参与成键的价电子都试图占据同一能级,n个原子将会有n个相同能级的轨道,因此,多原子体系中同一能级有更多的状态,进而形成能带。如下图所示:

费米能级定义为,体系处于基态时,电子所占据的能量最高的能级。费米能级与导带和价带的位置关系决定了固体材料的导电性。例如,金属材料的价带很宽,导致费米能级位于导带中,因此,金属大多具有很好的导电性。而绝缘体和半导体在费米能级附近,电子的状态密度很低,存在较大的能隙,因此他们导电性较差。

对于绝缘体或者半导体而言,因为态密度在价带顶部逐渐衰减,电子密度也逐渐衰减,直至能隙下端,因此在每个k点对波函数进行积分时可以直接计算。但是对于金属来说,由于部分电子会在导带上分布,态密度在接近费米能级时不会逐渐衰减,而且,电子在费米能级附近的状态占据数会直接由1变为0,因此,电子密度在费米能级处会急剧衰减,由于电子密度是波函数在第一布里渊区的某种积分,电子密度急剧变化时,波函数在利用平面波展开时的精度就会大大下降。因此,需要对金属费米能级附近的能级的状态的占据数进行模糊处理,如下图所示:

一般而言,状态占据数的模糊方法有:高斯模糊 (Gaussian smearing), 费米模糊 (Fermi smearing)和Methfessel-Paxton模糊

高斯模糊是Fu和Mo在1983年提出的,其主要原理是利用高斯函数虚构了一个电子温度,等效对体系稍微进行加热,电子温度为0.1 eV,此时在费米能级附近的电子的能量范围就会稍微拓宽,不会出现骤降。

费米模糊利用的原理类似,不同的是费米模糊采用Fermi-dirac函数进行有限温度的虚构,如下式所示:

费米模糊中的电子温度为KBT, 也就是25 meV约为300 K。

Methfessel-Paxton模糊由Methfessel和Paxton在1989年提出,是在实际中计算中使用最多的模糊方法。其主要原理是对step函数进行多项式和高斯函数展开。

实际算法

密度泛函理论的计算需要重复处理非线性特征值问题,对于给定计算能力的计算机。计算效率就取决于实际使用的算法。对于电子密度和能量的计算其实耗费很少的计算资源,而K-S矩阵的对角化基本上占据了70%的计算资源,合理的选择计算算法对提高计算效率很重要。

电子能量最小化指保持离子的位置不变,使电子达到基态。对于整个体系的能量最小化,需要在电子能量最小化后,进行离子能量的最小化。电子能量最小化的方法包括:直接对角化方法(Direct diagonalization),迭代戴维森算法(Iterative Davidson method)和RMM-DIIS方法。直接对角化方法不适合很大的矩阵的对角化,也就是有很多平面波(10000~100000)需要展开的时,使用直接对角化方法效率会很低。

迭代戴维森算法的计算效率比较慢,但是有很好的可靠性,也就是不同的初始迭代条件,最终都会收敛到基态能量。RMM-DIIS算法的计算效率很快,也可以进行并行运算。但是,如果RMM-DIIS算法在某些初始迭代条件下,会出现无法收敛到基态能量的情况,也会丢失特征值。因此,在实际DFT计算中,往往首先采用迭代戴文森算法,然后使用RMM-DIIS算法。

离子能量的最小化指,在进行电子能量最小化后,计算每个离子的受力,然后将离子能量最小化,在连续进行电子能量最小化和离子能量最小化后,整个体系的能量将达到最小化。

Hellmann-Feynman力: 在进行离子能量最小化的时候,离子受到的力来自其他离子和电子,Hellmann-Feynman指出,离子的受力等于哈密顿量关于原子位置的偏导数的平均值,因此离子的受力如下:

在实际的密度泛函理论计算中,离子的受力计算效率很高,相比电子能量的最小化而言其计算时间几乎是可以忽略的。得到离子的受力后,可以采用常规的共轭梯度法,近似牛顿法或者阻尼分子动力学方法进行最小化。

第一性原理-分子动力学方法

在经典分子动力学方法中,我们采用经验化的势函数,这种势函数有两个缺点:其一、不同的情形下我们需要采用不同的势函数和参数来计算相同的体系的相互作用。其二、体系的电子和磁性特性无法被计算。如果我们能够把密度泛函理论和分子动力学耦合起来,这些缺点将会被克服。

两种常见的第一性原理-分子动力学方法包括:Born-Oppenheimer分子动力学方法(BOMD)和Car-Parrinello分子动力学方法(CPMD)

BOMD方法可以看做是前面讲到的离子能量最小化方法的推广,其主要步骤如下:

1、固定原子核的位置,求解电子能量最小化;

2、计算Hellmann-Feynman力;

3、按照经典牛顿运动力学移动原子,例如速度verlet算法;

4、重复以上步骤,直至系统达到稳定。

这个方法在实际计算中的效率很慢,因为每一步分子动力学都需要对电子能量最小化,而电子能量最小化非常耗费计算资源。

CPMD方法将变分最小化应用到电子基态的寻找中,而变分最小化方法可以由模拟退火方法实现。这种方法将电子和离子的自由度都耦合到经典坐标体系中。CPMD方法在计算金属时,由于价电子的移动会出现电荷波动。尽管如此,CPMD方法仍然是很成功的一种第一性原理分子动力学方法。

原文发布于微信公众号 - Bottom2top(gh_a3885137171a)

原文发表时间:2019-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券