FourPhonon专题

FourPhonon读取TDEP格式力常数

将同一组真实Si二阶力常数无损表达为TDEP格式,比较原生频率并说明温度重整化的边界。

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

已有TDEP结果时,不能只把文件改名为FORCE_CONSTANTS_2ND。FourPhonon有专门的TDEP二阶常数读取入口。本例用已经计算的真实Si力常数演示这条输入路径;这里只做无损格式表达,不是重新拟合温度依赖力常数。

下载实际Si力常数、完整数值、CONTROL、三个结构/数据图及终端脚本。在已分配的CPU资源中计算,登录节点用于准备和提交。

python3 -m zipfile -e fourphonon-interfaces-wave321-*.zip .
cd fourphonon-interfaces
module load pymatgen/2026.9.24
bash run.sh

这一步读取已有输出并绘图,不重新计算DFT或输运。新的原生计算使用:

bash prepare.sh
sbatch cpu.sh
squeue -u "$USER"

CPU脚本采用当前集群的整节点资源申请约定;队列应选择当时可用、支持AVX512的兼容CPU资源。FourPhonon1.3-fix20260924固定源码5b814b3,oneAPI2024.2、Intel MPI2021.13与顺序MKL。这里不提供CPU节点性能结论。

1 两种输入各自用什么文件#

读入方式 文件与关键开关
通常的二阶常数 FORCE_CONSTANTS_2ND,tdep=.false.
TDEP格式二阶常数 infile.forceconstant,tdep=.true.

本例infile.forceconstant来自同一组16原子超胞的完整二阶常数。等长最短像分别分配权重,原胞原子索引和晶格平移写入文件;按超胞周期重新合并后,16×16×3×3全部分量与原数据一致。不是只复制一个3×3弹簧矩阵或只对齐一条Gamma频率。

head -n 12 inputs/infile.forceconstant
cat cases/Si-q5-TDEP-harmonic/CONTROL

2 完整CONTROL#

展开本例实际输入
&allocations
 nelements=1, natoms=2, ngrid(:)=5 5 5
&end
&crystal
 lfactor=0.1
 lattvec(:,1)=0 2.715 2.715
 lattvec(:,2)=2.715 0 2.715
 lattvec(:,3)=2.715 2.715 0
 elements="Si", types=1 1
 positions(:,1)=0 0 0
 positions(:,2)=0.25 0.25 0.25
 masses(1)=28.085, gfactors(1)=0.00000000000000000e+00
 scell(:)=2 2 2
&end
&parameters
 T=300, scalebroad=1, maxiter=200, eps=1e-6
 num_sample_process_3ph=-1
 num_sample_process_3ph_phase_space=-1
 num_sample_process_4ph=-1
 num_sample_process_4ph_phase_space=-1
&end
&flags
 nonanalytic=.false., espresso=.false., tdep=.true.
 convergence=.false., four_phonon=.false.
 four_phonon_iteration=.false.
 isotopes=.false., autoisotopes=.false.
 nanowires=.false., onlyharmonic=.true.
&end

这里是Si非极性模型,nonanalytic=.false.。onlyharmonic=.true.在谐波/相空间阶段结束,不读取三四阶常数,也不输出完整的热导计算结果;因此本目录不需要放三、四阶文件。

3 在自己的计算资源中运行#

准备脚本已创建work/Si-q5-TDEP-harmonic/。单目录的原生命令如下,与批处理脚本选一种执行:

module load fourphonon/1.3-fix20260924-8173m
export OMP_NUM_THREADS=8 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1
cd work/Si-q5-TDEP-harmonic
mpirun -np 1 fourphonon
head BTE.omega

BTE.omega是角频率rad/ps,除以2π才是THz;不能直接当成THz画图。回到附件根目录,读取自己新算的结果:

module purge
module load pymatgen/2026.9.24
python verify.py --cases work --output new-results
python plot.py --data new-results --output new-plots

4 同一力常数的实际频率#

同一组完整二阶常数的两种原生读法

两条原生读取路径的单位常数精度略有区别,原始频率约相差0.00113%;包内按固定源码常量及其实际Fortran类型换算后,完整频率数组最大差约8.5E-9 rad/ps。这是输入读法的对应关系,不是通过修改力常数去拟合频率。

5 换成真实TDEP温度模型时#

真实温度相关结果需要先从相应温度的轨迹和受力拟合TDEP常数,再检查结构、原胞、质量、单位和实空间截断。极性材料还涉及Born电荷、介电张量与对应Ewald参数,并应使用匹配的裸短程常数,避免重复加入非解析修正。本Si输入没有演示这些极性步骤,不能将开关直接改成true就视为等价。

参考:固定版本TDEP输入说明。

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

查看配图

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

100%查看原图 ↗