[toc]
晶格热导率 + 声子寿命计算流程(基于 phono3py + VASP)
Step 1:结构精细优化
目标:得到充分弛豫的晶体结构。
要求:能量收敛到 1e-8 eV 以上,力小于 1e-3 eV/Å。
📂 输入文件:
POSCAR-unitcell:初始晶胞结构
INCAR:
1
2
3
4
5
6
7
8
9
10
11
12
13
14SYSTEM = SiC relaxation
ISTART = 0
ICHARG = 2
ENCUT = 500
PREC = Accurate
EDIFF = 1E-08
ISMEAR = 0
SIGMA = 0.01
IBRION = 2
NSW = 100
EDIFFG = -1E-03
LREAL = .FALSE.
LWAVE = .FALSE.
LCHARG = .FALSE.KPOINTS:推荐 Monkhorst–Pack 网格,比如
6 6 6。POTCAR:元素对应的赝势。
📌 运行 VASP,最后得到优化后的 CONTCAR → 作为后续 POSCAR-unitcell。
Step 2:生成位移超胞
目标:生成有限位移所需的超胞。
1 | phono3py -d --dim="2 2 3" -c POSCAR-unitcell |
说明:
--dim="2 2 3":构造 2×2×3 的超胞。输出:多个
POSCAR-xxx文件,每个文件表示一个原子被轻微位移后的结构。
Step 3:计算力(VASP 批量计算)
目标:对每个位移超胞计算原子受力。
📂 输入文件(放在每个 xxx 目录里):
POSCAR ← 从
POSCAR-xxx复制而来1
2
3
4
5for i in $(seq 1 160); do
dir=$(printf "%05d" $i)
mkdir -p $dir
cp POSCAR-$dir $dir/POSCAR
doneINCAR:
1
2
3
4
5
6
7
8
9
10
11ISMEAR = 0
SIGMA = 0.01
IBRION = -1
EDIFF = 1E-08
PREC = Accurate
ENCUT = 500
IALGO = 38
LREAL = .FALSE.
LWAVE = .FALSE.
LCHARG = .FALSE.
ADDGRID= .TRUE.(与声子谱有限位移计算相同,不让离子移动,仅计算力)
KPOINTS:比如
4 4 4(根据超胞大小适当缩小 k 网格)。POTCAR:对应的赝势。
INCAR、POTCAR、KPOINTS
1
2
3
4for i in $(seq 2 160); do
dir=$(printf "%05d" $i)
cp 00001/INCAR 00001/KPOINTS 00001/POTCAR $dir/
done
📌 每个目录运行 VASP,得到 vasprun.xml。
run vasp
1
2
3
4
5
6
7
8for i in $(seq 1 160); do
dir=$(printf "%05d" $i)
cd $dir/
echo "----" $i "----"
mpirun -np 4 vasp_std
cd ..
done
Step 4:提取力常数
收集所有 vasprun.xml 文件,提取二阶 & 三阶力常数。
1 | phono3py --cf3 {00001..00160}/vasprun.xml |
- {00001..00160}包括所有的结构
输出:
fc2.hdf5→ 二阶(谐)力常数fc3.hdf5→ 三阶(非谐)力常数
Step 5:计算晶格热导率
导热系数计算的一个例子是:
1 | phono3py --mesh 11 11 11 --br | tee out.txt |
这个计算可能需要很长时间。——thm调用一个四面体方法进行布里渊区域积分,用于声子寿命计算,这是默认选项。相反,——sigma选项可以用于涂抹宽度。
在这个命令中,声子在许多网格点上的寿命是连续计算的。每个网格点的声子寿命计算可以单独计算,因为它们是独立的,计算时不需要通信。操作步骤如下
1 | # phono3py --fc3 --fc2 --mesh 11 11 11 --br --wgp |
说明:
--mesh="11 11 11":声子布里渊区网格(越大越精确,但计算量更大)。
Step 6:计算声子寿命
声子寿命与散射率信息已存储在 kappa-m202020.hdf5 中。
可视化:
1 | phono3py-kdeplot kappa-m202020.hdf5 |
输出:
- 图像文件(显示声子寿命分布 vs. 频率)。

✅ 最终产物
- 热导率 κ(T) from
out.txt和kappa-m111111.hdf5 - 声子寿命分布 from
phono3py-kdeplot