Phono3py专题

Phono3py JDOS、自能与谱函数

实际运行JDOS、虚实自能与公开API谱函数,区分采样频率、声子带和展宽参数。

更新于 2026-10-30约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

JDOS描述参与三声子过程的可用相空间;自能进一步包含相互作用信息;谱函数则展示某个q点与声子带的频率响应。它们的曲线不是同一种物理量。

下载完整实例包,解压到自己的工作目录。包内含真实输入、已有力输出、28个计算条件、工具命令、结果CSV和绘图脚本。

1. 实际计算的条件#

本组采用4×4×4网格、原生网格点编号1、300 K、101个频率采样点。ISE、RSE与谱函数选择第4条声子带。网格点编号1由原生Bz网格定义,不能把它直接称为“路径上的第一个高对称点”;HDF5保留对应网格设置。

bash prepare.sh
bash run.sh jdos-q4-gp1
bash run.sh ise-q4-gp1
bash run.sh rse-q4-gp1
bash run.sh spectral-q4-gp1

2. JDOS#

底层命令:

phono3py-load --jdos --mesh 4 4 4 --ts 300 --sigma 0.1 \
  --exclude-gamma-acoustic --gp 1 --num-freq-points 101 \
  phono3py_disp.yaml

读取 jdos-m444-g1-s0.1-t300.dat:第一列是频率THz,后两列是原生JDOS通道。JDOS反映相空间,不能单独替代散射率或直接给出热导率。

3. 虚自能与实自能#

phono3py-load --ise --mesh 4 4 4 --ts 300 --sigma 0.1 \
  --exclude-gamma-acoustic --gp 1 --num-freq-points 101 \
  --bi 4 -- phono3py_disp.yaml

phono3py-load --rse --mesh 4 4 4 --ts 300 --sigma 0.1 \
  --exclude-gamma-acoustic --gp 1 --num-freq-points 101 \
  --bi 4 -- phono3py_disp.yaml

CLI的 --bi 4 为1起始带序号;API中同一条带使用0起始索引3。gammas-*.dat 给虚自能半峰宽,deltas-*.dat 给实自能频移,两者单位THz。RSE文件中的 e0.1 标记该计算的ε,不要把文件名误读成热导率结果。

4. 谱函数用配套API入口#

本例Phono3py 4.8.2使用 spectral_api.py,由 bash run.sh spectral-q4-gp1 自动准备三份输入和设置文件。核心调用如下:

p.mesh_numbers = [4, 4, 4]
p.sigmas = [0.1]
p.band_indices = [[3]]
p.init_phph_interaction(exclude_gamma_acoustic=True)
p.run_spectral_function(
    [1], [300], num_frequency_points=101,
    write_txt=True, write_hdf5=True,
)

这是实际运行的公开API路线。不同版本的命令行入口存在差异,本例不把帮助列表出现的 --spf 当作已验证可直接替换的运行命令。

5. 画图与解释#

bash analyze.sh
ls analysis-reference/figures/spectral-jdos.png

原生JDOS、自能与谱函数

谱函数横轴为THz,纵轴为THz⁻¹;本例101点网格相对稀疏,窄峰的面积和峰位会受频率步长影响。需要定量峰宽或归一化积分时,应增加采样并检查频率窗口,而不是从这张教学曲线直接读取精确寿命。

脚本独立用频率、半峰宽和实部频移重建谱函数,与原生HDF5对照;同一个条件下的API半峰宽也与独立ISE命令输出一致。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗