VASP声子到动态结构因子
用硅的实算力常数计算单声子散射强度,理解色散相同但散射权重不同。
阅读本篇目录
声子色散说明模式的频率,散射实验还要看这个模式在指定动量转移下有多大强度。本例从硅的VASP有限位移力常数出发,用Phonopy计算相干单声子产生项的动态结构因子。
1. 先取得力常数#
沿用硅声子教程的16原子超胞与VASP实际受力。VASP 6.6.1 P100版,PBE PAW64、ENCUT=550 eV、EDIFF=1E-6;构建采用NVHPC 25.3、CUDA 12.8、MKL 2023.2及配套MPI。
本篇附件直接提供保存了力常数的si-phonon-v100-result.yaml。若要从自己的体系开始,先完成位移受力计算并生成相应Phonopy文件,再进行本页后处理;不要把硅的力常数套到另一种材料上。
2. 确定散射矢量和温度#
用Phonopy 4.8.3,在300 K下计算两条扫描:Q=(q,0,0)和Q=(2+q,0,0),q从0.05到0.95,共61点。这里坐标沿本模型的原胞倒格矢,不能直接当作常规立方坐标。
两条扫描相差一个倒格矢;相同约化波矢的声子频率相同,但散射权重可以不同,因为它还依赖Q、原子位置、模式偏振与Debye–Waller因子。
本例统一把Si相干散射长度设为1,只比较归一化强度,不输出绝对截面。对单一同位素组成的单元素体系,共同长度因子会在相对归一化中消去;多元素或比较不同同位素时,必须使用各自的散射长度。
3. 执行后处理#
加载module load phonopy/4.8.3,运行附件scattering.py。脚本先用8×8×8完整网格和本征向量计算所需位移统计,再调用动态结构因子接口:
phonon.run_mesh([8, 8, 8], with_eigenvectors=True,
is_mesh_symmetry=False, is_gamma_center=True)
phonon.run_dynamic_structure_factor(
Qpoints, 300, scattering_lengths={"Si": 1.0}, freq_min=0.1)
freq_min单位为THz,用于避免近零平移频率进入分母。完整用法及物理定义见Phonopy动态结构因子说明。
4. 看频率,也看散射权重#

两幅图使用同一个最大值归一化和相同的对数色标,亮度可以相互比较;不能给每幅图各自归一化后再比较绝对强弱。频率方向用0.15 THz高斯标准差展宽,只是绘图设置,不是预测的寿命或仪器分辨率。
简并模式应合并强度再解释,不能给简并子空间里任意选取的某一个本征向量赋予独立不变的实验标签。本图按共同频率叠加所有模式,避免把这种基矢选择误当物理差异。
5. 与实验比较前还要补什么#
本例是谐近似相干单声子产生项,未包含多声子过程、非相干散射、仪器分辨率和实验几何,力常数超胞与Debye–Waller网格也尚未进行收敛比较。
非弹性X射线散射需要用随Q变化的原子形状因子替代中子散射长度。不能将本例设为1的中子式相对权重直接标成X射线实验强度。若要研究有限温度展宽,还要引入适当的非谐声子谱函数或动力学分析。
输入和参考数据#
附件包含实算力常数、后处理脚本与参考JSON;无需重新运行VASP即可复现本页相对强度。需要重新计算力常数时,按硅声子教程下载输入并提交作业。