ABACUS 平面波 KSDFT 电子电导热导计算教程

作者:任泓旭,邮箱:rhx0820@stu.pku.edu.cn

审核:陈默涵,邮箱:mohanchen@pku.edu.cn

最后更新时间:2026/02/07

一、介绍

对于物质的电导率和热导率性质,一般可以分成电子和离子贡献,离子部分贡献目前已有较成熟的算法,特别是可以借助机器学习势函数加速计算。对于电子贡献的部分,则可以使用 Kubo-Greenwood 的公式进行计算[Phys. Rev. B 83, 235120 (2011)],该方法已被应用于液态金属、温稠密(Warm Dense matter, WDM)等物质的计算。Kubo-Greenwood 通过直接计算含频的昂萨格系数,来计算电子的电导与热导:

这里的 n,m 指标取值范围为 1, 2, 为体积,为 k 点的权重,为第 i 个波函数对应的本征能量, 为费米狄拉克分布,为化学势,为 delta 函数,在实际计算中 delta 函数可以用高斯函数或洛伦兹函数代替,为速度算符的第个分量对于速度算符,速度算符的定义为

含频电导,直流电导

含频热导, 热导

通过 KSDFT 求解的波函数、本征能量,可以轻易的带入公式进行计算。

ABACUS 同时实现了基于 sDFT(Stochastic Density Functional Theory,随机波函数密度泛函理论)的 Kubo-Greenwood 方法,在温度高于 20 eV 的场景下效率更高。具体可参考 ABACUS 随机波函数 DFT 计算电子电导热导教程 · GitBook

二、采用 KSDFT 进行电子的电导热导计算

1. 输入文件

在电导热导计算中,包含布里渊区 K 点的 KPT 文件和包含原子位置的 STRU 文件与传统的 KSDFT 计算并无区别,主要的不同在于输入文件 INPUT。为了计算电导热导,我们只需要把 cal_cond 参数打开即可,INPUT 文件如下:

INPUT_PARAMETERS 
#Parameters     (General) 
calculation     scf 
pseudo_dir      . 
#Parameters     (Accuracy) 
ecutwfc         60    
scf_thr         1e-8 
symmetry        0 
#Parameters     (Smearing) 
smearing_method fd 
smearing_sigma  0.0304014440309863  # Rydberg 
#Parameters (MD) 
basis_type      pw  
nspin           1 

#Parameters (6.Conductivity) 
cal_cond         1 
cond_fwhm        0.05 
cond_wcut        10 
cond_dw          0.2 
cond_dt          0.1 
cond_nonlocal    true

以上参数在 ABACUS 的线上文档中均有详细说明,这里再进行简单概述:

  • cal_cond: 控制是否计算电子贡献的电导热导
  • cond_smear: 设置展宽类型,1:高斯展宽(默认),2:洛伦兹展宽
  • cond_fwhm: 设置半高宽 FWHM,对于高斯展宽, ; 对于洛伦兹展宽 .
  • cond_wcut: 计算频率的截断值,决定输出含频数据的频率范围, 单位: eV
  • cond_dw: 频率的间隔,单位:eV
  • cond_dt: 对响应函数积分时的积分间隔,原子单位 a.u.
  • cond_nonlocal: 是否使用速度算符的非局域赝势修正,true:修正,false:不修正,默认为 true。更多信息可参考 Phys. Rev. B 110, 014207

此外,将 smearing_method 设为 fdsmearing_sigma 设为温度(单位为 Rydberg)可以实现有限温度下的电子电导热导模拟。完整的算例可以在 https://github.com/MCresearch/abacus-user-guide/tree/master/examples/ks_cond 中找到。

计算时间的说明:

  • KSDFT 下 Kubo-Greenwood 方法计算电导热导的计算时间对 cond_dt 相对不敏感,建议取得尽可能小一些直至收敛。
  • 相较于 sDFT,KSDFT 的 Kubo-Greenwood 方法不涉及切比雪夫展开和 cond_dtbatch 参数。

2. 输出

注:以下结果仅供参考,最终结果以最新版本计算输出为准。

  • 对于 LTS 版本,响应函数和昂萨格系数输出至对应输入文件所在目录;
  • 对于 develop 版本,响应函数和昂萨格系数统一输出至默认输出目录。(文档撰写时,最新的 develop 版本为 3.9.0.24。)
  • 本文所列结果基于 LTS v3.10.1 版本运行得到。

a. 屏幕输出

Calculating conductivity....
nw: 50 ; dw: 0.2 eV                              总频率数,频率间隔
nt: 43460 ; dt: 0.1 a.u.(ry^-1)                  总时间数,时间间隔
Recommended dt: 1.06327 a.u. 
DC electrical conductivity: -410750 Sm^-1        直流电导值(直接线性外推的简单估计值,实际需要根据含频电导拟合外推)
Thermal conductivity: 27.0337 W(mK)^-1           热导值
Lorenz number: -1.84646 k_B^2/e^2                洛伦兹常数

b. je-je.txt

#t(a.u.)         c11(t)         c12(t)         c22(t)          decay 
       0             -0             -0             -0              1 
     0.1     -0.0294619     0.00509203    -0.00117584              1 
     0.2     -0.0588492      0.0101685    -0.00234789              1 
     0.3     -0.0880875       0.015214    -0.00351237              1 
     0.4      -0.117103       0.020213    -0.00466553              1 
     0.5      -0.145823      0.0251505    -0.00580368              1 
     0.6      -0.174174      0.0300114    -0.00692316              1 
     0.7      -0.202088       0.034781    -0.00802041       0.999999 
     0.8      -0.229493      0.0394451    -0.00909192       0.999999

储存响应函数的文件,各列分别为均为原子单位,时间 t, 响应函数, 窗函数

c. Onsager.txt

## w(eV)         sigma(Sm^-1)     kappa(W(mK)^-1)        L12/e(Am^-1)      L22/e^2(Wm^-1) 
     0.1              424701             132.163             64877.9              644295 
     0.3              702565              47.104            -14780.7              226411 
     0.5         1.05583e+06             204.219              300223         1.06562e+06 
     0.7              715223             44.6657              169304              254472 
     0.9             41811.5             8.79352             20755.9             52512.6 
     1.1              466320             77.0295              140156              411867 
     1.3              538842             27.2582             -228481              227721 
     1.5              244561             23.5012              143053              196483 
     1.7             9128.47           0.0162282            -23180.6             58941.9

储存昂萨格系数的文件,各列分别为频率,电导,热导,

d. vmatrix*.dat

二进制文件,输出至默认输出目录,用于存储速度矩阵,可作为中间变量快速计算电子电导热导,其具体使用方法将在下一节中介绍。

使用速度矩阵计算电子电导热导

前文已提到,为实现收敛往往需要调节 cond_fwhm 等参数,可能需要多次重新计算电导。若每次从头运行自洽迭代计算,将造成不必要的时间开销;若通过保存波函数来避免重复计算,则会带来较大的存储开销。

ABACUS 打开 cal_cond 开关时会生成 vmatrix*.dat,可用于外部软件 Candela 在不重新运行 SCF、也不保存波函数的情况下,仅通过调整运行参数重新计算电导。Candela 的安装请参考 https://github.com/MCresearch/CandelaABACUS+Candela 使用教程 · GitBook

可以在示例输入如下:

calculation ele_conductivity 
wf_in_type ABACUS 
wfdirectory OUT.ABACUS 

dw 0.1                        # 和ABACUS的cond_dw相同
wcut 10                       # 和ABACUS的cond_wcut相同
smear 1                       # 和ABACUS的cond_smear相同
fwhm 0.01                     # 和ABACUS的cond_fwhm相同 
cond_method 1
readvmatrix 1                 # 关键!
temperature 4800              # 单位为K

Candela 采用与 ABACUS 不同但数学上等价的方式计算电导,不需要设置 cond_dt

经测试,ABACUS 最后兼容该功能的版本为 3.4.2,自 3.4.3 版本开始,输出文件的格式有大幅修改,目前所有 LTS 版本和最新的 develop 版本都暂不支持这一功能。

Copyright © mcresearch.gitee.io 2023 all right reserved,powered by Gitbook该文章修订时间: 2026-02-07 17:37:31

results matching ""

    No results matching ""