ABACUS 专题

ABACUS 晶格热导率与寿命分析

从实际ABACUS力常数到ShengBTE,提取热导率、寿命、平均自由程和收敛对照。

更新于 2026-10-29约 5 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、42个力计算结果、6个热输运条件和绘图脚本。解压进入附件根目录。先用已有结果熟悉提取与画图:

bash analyze.sh

结果表在 reference/analysis,6张高清图在 reference/figures。这个命令只处理附件内的实际计算结果,不启动新的DFT或热输运任务。下面按准备输入、提交、检查、提取的顺序操作。新计算请使用新解压目录,已有 work 时脚本会停止,避免覆盖结果。

1 声子稳定后,再准备热输运#

先完成声子实操及三阶力常数。整套GPU模板最后会自动准备6个热输运条件;手动流程使用:

module load phono3py/4.8.2
python -B make_thermal_inputs.py work

输入在 work/thermal-inputs。脚本先检查主要声子模型没有明显虚频、力常数转换一致,再创建目录,已有目录时不覆盖。以下是300 K、4×4×4 q网格的实际CONTROL:

&allocations
 nelements=1,
 natoms=2,
 ngrid(:)=4 4 4
&end
&crystal
 lfactor=0.543,
 lattvec(:,1)=0.0 0.5 0.5,
 lattvec(:,2)=0.5 0.0 0.5,
 lattvec(:,3)=0.5 0.5 0.0,
 elements="Si",
 types=1 1,
 positions(:,1)=0.00 0.00 0.00,
 positions(:,2)=0.25 0.25 0.25,
 scell(:)=2 2 2
&end
&parameters
 T=300.,
 scalebroad=1.0,
 maxiter=200,
 eps=1e-6,
 nticks=40
&end
&flags
 nonanalytic=.FALSE.,
 convergence=.FALSE.,
 improved_iteration=.TRUE.,
 isotopes=.TRUE.,
 autoisotopes=.FALSE.,
 nanowires=.FALSE.,
 wigner=.FALSE.,
 onlyharmonic=.FALSE.,
 nthreads=1
&end

lfactor=0.543 是nm,与5.43 Å一致;scell=2 2 2对应DFT超胞,ngrid是声子输运q网格;convergence=.FALSE.计算RTA,迭代对照改为 .TRUE. 并使用 improved_iteration。scalebroad=1.0是本模型的散射积分展宽设置,不是通用收敛结论。

实际ISOTOPES为:

Si 28.0855 1.0

这里是均匀有效质量28.0855,质量方差g=0,用来与声子模型保持一致;不代表天然同位素混合,也不能当作真实纯同位素硅的质量。

2 单独提交CPU后处理#

GPU力计算成功后,再提交:

sbatch thermal.slurm

安装的 shengbte/2.1.0-8173m 使用GNU13.3、OpenMPI5.0.10、MKL2024.2和spglib2.7,要求AVX512 CPU,不能直接放在P100主机E5 v3上运行。选择可用的相容CPU资源;模板按CPU分区规则申请整节点,这个小模型本身只使用1进程、1线程,不用它判断并行性能。若CPU分区暂不可用,可先处理附件已有输出、读图和熟悉流程。

6个条件分别比较q网格、温度及RTA/迭代方法。脚本运行后会提取数据和画图,新结果在 work/analysis 和 work/figures。单个条件在已分配的相容CPU环境中,本质上运行:

module load shengbte/2.1.0-8173m
cd work/thermal-inputs/si-q4-T300-rta
mpirun -np 1 ShengBTE

这段手动方式会在当前输入目录产生输出,与 thermal.sh 创建独立 thermal-results 的完整方式二选一,不要混用结果目录。完整教程建议直接用提交模板。

3 先看数值和q网格变化#

cat reference/thermal-results/si-q4-T300-rta/BTE.KappaTensorVsT_RTA
cat reference/thermal-results/si-q4-T300-iterative/BTE.KappaTensorVsT_CONV
cat reference/analysis/THERMAL-VALIDATION.json

实际主算例结果如下,单位W/(m·K):

q网格 温度/K 方法 热导率
3³ 300 RTA 36.097825
4³ 300 RTA 58.897394
6³ 300 RTA 89.766588
4³ 100 RTA 224.850487
4³ 600 RTA 28.885641
4³ 300 迭代 53.362974

实际q网格与温度对照

300 K的3³、4³、6³结果变化仍明显,尚不能把任意一项当作收敛硅热导率。这组数据展示完整操作与检查方法。独立重新计算全部力后,4³、300 K的RTA约59.943641,迭代约54.385746,与主算例相差约1.8%/1.9%;两次原生输出的原子力在输出精度内一致,但二阶文件末位约1.2×10⁻¹⁴ eV/Ų的差异,在这个粗网格简并模处理中引起了群速度与热导率变化。这提示该模型对数值细节敏感;短程FC3、粗q网格及简并模处理都需要进一步检查,应保留这种变化并继续做参数收敛,不能强制把两次曲线改得完全相同。

4 寿命、平均自由程怎样提取#

module purge
module load phono3py/4.8.2
python -B analyze_thermal.py reference
python -B plot_results.py reference
原生文件 数据含义
BTE.omega 角频率rad/ps,除2π才是THz
BTE.v_full 完整q网格群速度,km/s,数值等同nm/ps
T300K/BTE.w 模式总散射率ps⁻¹,RTA寿命τ=1/w
T300K/BTE.kappa_scalar 第0行RTA,后续行为迭代结果
BTE.qpoints_full 完整q网格到不可约点的映射
thermal-data.npz 已整理寿命相关原始量、RTA累计曲线与迭代数据

RTA平均自由程为 |v|τ,本单位下直接得到nm。脚本用完整q网格的实际速度、不可约点散射率映射和量子模式热容,独立重建κ的迹/3;六个条件均与原生RTA数值吻合。简并模处不能用一个不可约速度模长乘权重来替代完整速度。

实际模式散射率、寿命及独立RTA求和对照

Γ点零频/零散射率不提供有限寿命,原生 BTE.w_final 中可能出现未定义值。保留原文件,按该版原生求和规则排除Γ点,不把NaN改成0再解释成材料寿命。

实际迭代与RTA平均自由程累计曲线

本例迭代在8步后相对变化约7.05×10⁻⁷。迭代收敛只是当前离散模型的求解器收敛,不是q网格、超胞或FC3范围收敛;图中的寿命和平均自由程对应RTA,不能直接换名为迭代寿命。后续依次检查电子k网格与力精度、位移幅度、超胞大小、FC3距离、q网格和积分展宽,再讨论材料值。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗