计算金刚石结构 Si 的热导率
软件需求
- VASP
- phono3py
第一步 结构优化
结构优化设置与计算 Si 声子谱和声子态密度时保持一致。
第二步 扩胞并生成位移文件
与计算 Si 声子谱类似,使用 phono3py 生成位移文件。例如:
phono3py-init -d --dim 3 3 3 -c CONTCAR通用格式为:
phono3py-init -d --dim 2 2 2 -c <优化后的结构文件>其中,<优化后的结构文件> 表示优化后的 POSCAR 结构文件。与声子谱计算相比,这一步主要是将 phonopy 替换为 phono3py。
预期会生成 phono3py_disp.yaml 和一系列 POSCAR-xxxxx 文件。
第三步 自洽计算
对一系列 POSCAR-xxxxx 结构进行自洽计算。可将这些结构按 disp-000XX 编号建立目录,放入对应结构并提交 VASP 计算。
第四步 提取受力数据
确认所有位移计算完成后,在包含 phono3py_disp.yaml 的目录中运行:
phono3py-init --cf3 disp-{00001..末尾编号}/vasprun.xml其中,--cf3 表示提取三阶力常数。
若文件目录形式如下:
SCF_1a/
├── phono3py_disp.yaml
├── part-01/disp-00001/vasprun.xml
├── part-01/disp-00002/vasprun.xml
├── part-02/disp-000xx/vasprun.xml
└── part-03/disp-xxxxx/vasprun.xml则可在 SCF_1a 目录中使用:
phono3py-init --cf3 part-*/disp-*/vasprun.xml运行前可先检查待读取文件的数量是否正确:
printf '%s\n' part-*/disp-*/vasprun.xml | wc -l收集完成后应生成 FORCES_FC3。注意:FORCES_FC3 保存的是位移超胞的受力数据,并非已经计算好的 FC3 力常数。
第五步 计算热导率
在包含 phono3py_disp.yaml 与 FORCES_FC3 的文件夹中运行:
phono3py --mesh 20 20 20 --br --ts 300其中,--br 表示使用单模弛豫时间近似(RTA)求解;--ts 300 指定计算温度为 300 K。该计算可能较为耗时。
--mesh 20 20 20 表示 q 网格为 \(20^3\),即对第一布里渊区进行倒空间采样;程序会在各 q 点上统计声子性质,并积分得到热导率。
若要一次计算一组温度,例如 100、200、300、400 K,可使用:
phono3py --mesh 20 20 20 --br --ts 100 200 300 400Slurm 提交脚本示例
该步骤也可像 VASP 计算一样,通过 Slurm 提交脚本指定节点、核数和内存:
#!/bin/bash
#SBATCH -t 120
#SBATCH -N 1
#SBATCH -n 64
#SBATCH -w node24
#SBATCH -p
#SBATCH --mem-per-cpu=4G
#SBATCH -J Si_phonon_FC3
#SBATCH --output=phono3py-%j.out
# 完整输出:终端 → Slurm 的 phono3py-%j.out,同时落盘到 phono3py-full.log
phono3py --mesh 20 20 20 --br --ts 100 200 300 400 500 600 700 800 2>&1 | tee phono3py-full.log
# 精简结果:从完整日志中提取热导率表格(标题行到空行),保持顺序去重
grep -A 100 "Thermal conductivity (W/m-k) with tetrahedron method" phono3py-full.log \
| awk 'NF==0{exit} {print}' \
| awk '!seen[$0]++' > kappa-result.txt第六步 检查收敛性和物理模型准确性
比较以下设置变化时热导率是否趋于稳定:
- 不断提高 q 网格的密集程度;
- 增大 FC3 超胞大小,例如从 \(2\times2\times2\) 增大后重新计算并比较结果。

发表回复