Phono3py专题

Phono3py RTA与LBTE热导率

实际比较同网格同展宽的RTA和直接LBTE,提取张量并展示温度变化。

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

RTA用每个声子模的弛豫时间近似输运;直接LBTE进一步求解线性化玻尔兹曼方程。比较两种方法时,温度、q网格、展宽、力常数和散射条件必须一致。

下载完整实例包,解压到自己的工作目录。包内含真实输入、已有力输出、28个计算条件、工具命令、结果CSV和绘图脚本。

1. 运行RTA#

bash prepare.sh
bash run.sh rta-q6-s0p2

底层命令在包含同一套力常数和YAML的任务目录执行:

phono3py-load --br --mesh 6 6 6 --ts 300 \
  --sigma 0.2 --exclude-gamma-acoustic phono3py_disp.yaml

--br选择RTA,--mesh是声子q网格,--ts单位K,--sigma单位THz。--exclude-gamma-acoustic处理Γ点声学零频模;不是任意删除其他低频模。

2. 运行相同条件的直接LBTE#

bash run.sh lbte-q6-s0p2

底层只把求解方式改为:

phono3py-load --lbte --mesh 6 6 6 --ts 300 \
  --sigma 0.2 --exclude-gamma-acoustic phono3py_disp.yaml

直接LBTE涉及碰撞矩阵,比RTA更需要内存。先从小q网格确认流程,再评估正式网格的资源需求。

3. 读取热导张量#

module load phono3py/4.8.2
python - <<'PY'
import h5py
with h5py.File('work/lbte-q6-s0p2/kappa-m666-s0.2.hdf5') as f:
    print('T / K:', f['temperature'][:])
    print('LBTE:', f['kappa'][:])
    print('RTA:', f['kappa_RTA'][:])
PY

张量六个分量顺序为 xx、yy、zz、yz、xz、xy,单位W/(m·K)。本例Si具有立方对称性,前三项相同,非对角项接近零;一般低对称材料不能只读第一项代表所有方向。

q网格,300 K,σ=0.2 THz RTA κxx 直接LBTE κxx
4×4×4 119.489115 125.261221
6×6×6 89.566344 98.947977

两者差别是同一有限模型下的求解方式差异,不是与实验比较后的误差。

匹配条件的求解器与温度对照

4. 温度变化#

bash run.sh rta-q6-T100
bash run.sh rta-q6-s0p1
bash run.sh rta-q6-T600

固定FC2/FC3、6×6×6网格和σ=0.1 THz,本例100、300、600 K的κxx分别为450.998015、94.835085、45.516654 W/(m·K)。这些计算改变玻色占据和散射统计,没有重新拟合有限温度力常数,也没有包含热膨胀。

下一步必须检查网格和展宽,不能从一条顺滑温度曲线判断热导率已经收敛。

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

查看配图

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

100%查看原图 ↗