FourPhonon温度网格与求解选项
对比300/600 K及3至5网格,实际运行同位素、完整迭代和抽样分支。
阅读本篇目录
下载Si真实结构、受力、力常数、8张图和终端脚本,保存为 si-fourphonon.zip。所有本系列文章使用同一个包:
python3 -m zipfile -e si-fourphonon.zip .
cd fourthorder-fourphonon-silicon-wave288
bash preview.sh
ls preview/figures
包中 reference/ 保存本次实算参考;work/ 是您重新生成的文件,results/data/ 是提取后的CSV。受力来自真实VASP计算;下载包不含POTCAR、波函数、完整电子输出或第三方程序。
1 先看温度和q网格#
本例同一套力常数,热导单位均为W/(m·K):
| q网格 | 300 K 三声子 | 300 K 三+四声子 | 600 K 三声子 | 600 K 三+四声子 |
|---|---|---|---|---|
| 3³ | 26.17719 | 24.06041 | 13.31482 | 11.10168 |
| 4³ | 31.30840 | 29.51893 | 15.55604 | 13.63978 |
| 5³ | 46.81802 | 44.13535 | 22.92591 | 20.09586 |

3³到5³的变化仍大,这些结果未达到q网格收敛。只在3³网格比较温度,不能据此预测材料真实温度曲线。更细网格需逐级增加,比较相邻网格热导与关键散射率;不能只比较运行是否正常结束。四声子任务随网格增长很快,先做小网格核对输入,再安排长任务。
2 修改参数时用新目录#
在一个已经准备好的输运目录基础上:
mkdir my-qmesh
cp work/transport/CPU-q3-T300-3plus4ph/{CONTROL,FORCE_CONSTANTS_2ND,FORCE_CONSTANTS_3RD,FORCE_CONSTANTS_4TH} my-qmesh/
cd my-qmesh
${EDITOR:-vi} CONTROL
# 在CONTROL中修改ngrid或T,保存后通过CPU作业脚本运行
cat CONTROL
实际生产应只复制 CONTROL 与三份力常数至干净目录,避免把旧输出误认为新结果。
关键行如 ngrid(:)=4 4 4、T=600。scalebroad=1控制能量守恒的自适应展宽尺度;它也应检查,不能通过随意增大展宽只为得到平滑曲线。本系列小例没有宣布展宽或q网格收敛。
3 同位素散射#
将 isotopes=.true.,并指定质量方差因子;本例保持动力学质量28.085u不变,只对比额外同位素散射。使用Si自然丰度0.92223/0.04685/0.03092及相应同位素质量,计算 g=Σc(1−m/平均质量)²=0.00020070044882143897。
# 在CONTROL中使用
gfactors(1)=0.00020070044882143897
# flags
isotopes=.true., autoisotopes=.false.
300 K、3³网格、三加四声子RTA热导由24.06041降到 23.12866 W/(m·K)。这不是更换原胞平均质量后得到的完整同位素替换预测。
4 完整迭代与RTA#
CPU例将 convergence=.true.、four_phonon_iteration=.true.,eps=1E-6、maxiter=200。本例最终在第9次迭代收敛,热导为 18.81389 W/(m·K);RTA初值仍为24.06041。
cat work/transport/CPU-q3-T300-3plus4ph-iteration/T300K/BTE.kappa_tensor
tail -n 20 work/transport/CPU-q3-T300-3plus4ph-iteration/native.log
查看最后两步的变化,同时确认没有只因达到maxiter而退出。RTA与迭代的差别是输运近似,不能把后者称为“四声子修正百分比”而忽略求解方法变化。
5 抽样选项#
CPU版示例将 num_sample_process_3ph=10000、num_sample_process_4ph=10000,其余相空间抽样参数保持−1。本次这一组得到约 24.03656 W/(m·K)。它只演示抽样入口,不证明10000足够;程序当前用 random_seed() 初始化,没有本教程可设置的固定种子入口,因此独立复跑会有变化。
做定量抽样研究,应增加样本数、做多次独立重复并报告离散度;不要把一次很接近全枚举的数字当成统计误差。当前GPU入口不支持这组抽样或完整迭代配置,使用CPU模块。
