热电导率优化
寻找具有高热电导率的材料为可持续能源提供了一个综合解决的方案。因此,寻找如何优化 热电导率变得非常必要。品质因数\(ZT\)可以用来衡量一种材料的热电导率,它的定义是:
其中\(\sigma \)是电导率,\(S\)是塞贝克系数,\(T\)是温度,\(\kappa _{\textsc{e}}\) and \(\kappa _{\textsc{l}}\)分别表示电子热导率和晶格热导率。除了\(\kappa _{\textsc{l}}\), 假设在一个恒定的弛豫时间内,其余参数的值都是可以通过使用代码BoltzTraP 25 来计算一系列的弛豫优化(比如使用VASP)的结构来得到的。
相关软件的安装
通过USPEX进行热电导率优化需要其他软件的支持。
BoltzTraP 25 的源代码。可以从 http://www.icams.de/content/departments/cmat/boltztrap/下载。请参考源代码 附带的手册来进行安装。
Python and python 库。 USPEX的接口, VASP和 BoltzTraP 25 都在Anaconda Python 2.7.10经过了测试。 Anaconda Python 2.7.10 可以在https://www.continuum.io/downloads进行下载。 除了Python标准库之外,还需要以下库:
numpy, version 1.4.1 或者以上。
scipy, version 0.11.0 或者以上。
ase, version 3.8.1 或者以上。
pyspglib (任意版本)
matplotlib (任意版本)
有了Anaconda Python, 大量的库可以通过命令conda被安装。以下命令行是安装 进行热电优化库的一个例子。
$ conda install numpy scipy matplotlib $ pip install ase pyspglib
在一个安装pip的Python发行版里, 我们可以通过输入以下命令行来安装要求的软件包。
$ pip install numpy scipy matplotlib ase pyspglib
在INPUT.txt里设置热电导率计算
对于热电导率优化,optType应该被设置成14: :
14 : optType
因为热电性质的计算针对的是已经弛豫的结构,因此一系列的结构弛豫应该在此之前完成。 目前VASP是唯一一个可以与USPEX和BoltzTraP
25
结构的代码。特定的设置如下:
% abinitioCode
1 1 1 1 14
% ENDabinit
% KresolStart
0.12 0.10 0.07 0.05 0.05
% Kresolend
在以上的例子中,结构弛豫通过一系列的VASP计算来完成(一共4步),每增加一步都对应着 更密的k点。注意由于兼容性的问题,最后一个KresolStart数值将不会被使用。
NOTE: 正如在Section ??, abinitioCode keyblock中提到的,括号是用于对结构施加对称性以用于进一步的性质计算。
热电导率的优化只对calculationType 300和301开放。为了使用这个方法,需要 进行以下设置。为了更深一步理解它们,用户可以参考提出BoltzTrap的论文 25 。
800.0 : BoltzTraP_T_max
50.0 : BoltzTraP_T_delta
0.15 : BoltzTraP_efcut
300.0 : TE_T_interest
0.45 : TE_threshold
ZT : TE_goal
\(\triangleright \) variable BoltzTraP_T_max
Meaning: BoltzTraP计算的最大温度(K)。
Default: 800.0
Format:
800.0 : BoltzTraP_T_max
\(\triangleright \) variable BoltzTraP_T_delta
Meaning: BoltzTraP里温度(K)的增加值。
Default: 50
Format:
50.0 : BoltzTraP_T_delta
\(\triangleright \) variable BoltzTraP_T_efcut
Meaning: 这个变量表示的是BoltzTraP计算里化学式\(\mu \) (eV)的间隔
Default: 0.15
Format:
0.2 : BoltzTraP_efcut
\(\triangleright \) variable TE_T_interest
Meaning: 在使用USPEX进行热电斜率优化的过程中,温度(K)一直被监视和追踪 这个应该是热电材料的工作温度。
Default: 300.0
Format:
300.0 : TE_T_interest
\(\triangleright \) variable TE_threshold
Meaning: 这个参数是用来减少优化时产生的存储,同时设置\(ZT\)值得 下限。存储BoltzTraP产生的所有的信息将会占用大量的磁盘空间。那些\(ZT\)值低于 设定值TE_threshold的结构将会被遗弃
Default: 0.5
Format:
0.45 : TE_threshold
\(\triangleright \) variable TE_goal
Meaning: \(ZT\)的组成将会被优化,因为用来定义\(ZT\)的物理量是张量, 用户需要去选择\(ZT\)的组成来进行优化。目前支持的选项是追踪ZT或者是对角元ZT_xx, ZT_yy, 和ZT_zz。
Default: ZT
Format:
ZT : TE_goal
输出
热电导率的优化的输出文件在文件夹results-folder的子文件夹TEproperties里。 \(ZT\)的最大值和对应的\(\mu \)列在summary.txt中,第一列代表结构的ID。有了ID, 这个结构就可以在文件gatheredPOSCARS找到。keepBest没有被列 在summary.txt中,summary.txt中的一小段样板列举如下:
# trace
# ID mu_max_1 ZT_max_1 mu_max_2 ZT_max_2
1 0.019900 0.314997 -0.186600 0.294976
2 0.152270 0.913590 0.002270 0.864951
3 -0.021300 4.951155 0.152200 3.244481
4 -0.194630 0.677683 0.054370 0.628948
6 0.024120 6.144226 0.053620 0.914606
7 0.030460 0.887808 0.041960 0.831734
9 0.167860 0.479234 0.159360 0.446431
10 0.133260 0.893694 0.144760 0.822560
12 0.063250 0.903193 0.075750 0.843479
13 0.044820 1.793899 0.004820 1.026578
个体的热电导性质(例如\(\sigma \),\(S\),\(\kappa _{\textsc{e}}\)和功率因子\(\sigma S^2\)) 可以用对应文件附加的结构ID号在文件夹TEproperties中找到。
注意,由于热电性质的计算中会出现数值的不稳定,有些结果或许不正确,在这种情况下\(ZT\)的值 可能是正常值得10倍或者上百倍。为了解决这个问题,在这个数大于设定的上限例如10,就会被乘 以-1。这样这些反常的值将不会应该优化的结果。