Phono3py RTA与LBTE热导率
实际比较同网格同展宽的RTA和直接LBTE,提取张量并展示温度变化。
阅读本篇目录
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)。这些计算改变玻色占据和散射统计,没有重新拟合有限温度力常数,也没有包含热膨胀。
下一步必须检查网格和展宽,不能从一条顺滑温度曲线判断热导率已经收敛。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。