FourPhonon专题

FourPhonon:从ZnS实算力到极性TDEP力常数

准备54原子ZnS位移结构、读取四次实际DFT力,使用原生TDEP进行极性力常数拟合。

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

下载ZnS极性TDEP与FourPhonon示例包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd polar-tdep-fourphonon-examples
bash results.sh
bash read.sh
bash plot.sh

以上命令读取本例的实算结果并画图,不会重算VASP。需要自己重新拟合时,运行sbatch run.slurm,然后用bash read.sh work读取新的原生输出。CPU队列按整节点申请56核,本例小程序实际使用1个MPI进程和1个线程;申请核数不能用来缩减整节点计费。绘图使用ase-3.29.0的Python,HDF5读取使用phonopy-4.8.3的Python,脚本已写好解释器路径。

本例使用TDEP25.03(d38f435)与FourPhonon1.3-fix20260924(5b814b3)的CPU程序,Intel oneAPI2024.2、Intel MPI2021.13、MKL顺序库。四个位移结构的力由VASP6.6.1实算获得:NVHPC25.3、CUDA12.8、HPC-X2.22.1、MKL2023.2,P100/V10016G单卡。

1. 从什么结构开始#

使用闪锌矿ZnS,常规晶格常数5.45 Å,原胞顺序固定为S、Zn。3×3×3原胞超胞包含54个原子。对独立位移方向取±0.02 Å,共四个位移结构。本例是静态有限位移的谐力常数演示,不是有限温度分子动力学拟合。

输入 内容与作用
inputs/fit/infile.ucposcar 2原子平衡原胞,确定原子顺序
infile.ssposcar 54原子平衡超胞
infile.positions 四个实际计算构型的全精度分数坐标
infile.forces 按构型、按原子排列的实际DFT力,eV/Å
infile.meta 原子数54、构型数4;后两项0
infile.lotosplitting 同一组Born有效电荷与介电张量
infile.isotopes 与原胞顺序一致的32.065、65.38 u
infile.stat 实际DFT能量;未用的温度/时间/压力等列为0

不能将infile.stat中的零温度、零时间列理解成一条热轨迹。换体系时,应一起更新结构、力、物种顺序、质量、Born电荷及介电张量。

2. 四个VASP输入如何准备#

实际POSCAR较长,完整文件在optional-DFT-inputs/disp-000至disp-003。可以直接检查:

head -n 12 optional-DFT-inputs/disp-000/POSCAR
cat optional-DFT-inputs/disp-000/INCAR
cat optional-DFT-inputs/disp-000/KPOINTS

实际INCAR:

SYSTEM = ZnS finite displacement
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
NELM = 100
ALGO = Normal
ISMEAR = 0
SIGMA = 0.05
IBRION = -1
NSW = 0
ISYM = 0
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.

实际KPOINTS:

ZnS54 matched primitive6cube density
0
Gamma
2 2 2
0 0 0

这里2×2×2的超胞网格保持与原2×2×2超胞、3×3×3网格相同的原胞k点密度。POTCAR使用S、Zn顺序的PBE势,需要自行准备有授权的文件;资料包不分发POTCAR。每个结构单独计算,不能把前一个构型的原子排序带进下一个构型。提取vasprun.xml中的力时保留构型和原子顺序。XML坐标只打印8位小数,本例用全精度实际POSCAR构造TDEP位置文件;不要据打印舍入重新修改实际结构。

3. 用原生TDEP拟合#

以下命令应写入计算脚本,在申请的CPU资源中执行;完整顺序已放进run.slurm:

source /etc/profile.d/lmod.sh
module load tdep/25.03-8173m
cd inputs/fit
extract_forceconstants --polar -rc2 5.5 > fit.log

--polar使用极性长程分离,-rc2 5.5是请求的二阶相互作用截断,单位Å。实际可用截断仍受超胞大小限制;本例实际4.51890 Å、每个原子29个邻居,不应把请求5.5 Å直接写成实际截断。

sed -n '1,12p' outfile.forceconstant
sed -n '/FORCES (eV\/A)/,$p' fit.log

得到outfile.forceconstant后,把它作为FourPhonon的infile.forceconstant。这个文件尾部同时包含极性信息,不能只复制前面的二阶矩阵。

4. 实际结果说明什么#

原16原子超胞的实际截断只到2.35992 Å,力残差RMS为0.009423 eV/Å;改为54原子、同类独立位移后,较长截断拟合的RMS为0.001116 eV/Å。本例采用0.005 eV/Å作流程比较条件,两个超胞的结果都保留。

ZnS超胞与力拟合对比

图中结构显示平衡超胞,实际四个位移POSCAR随包提供。该比较只说明本例有限位移数据与截断的匹配情况;正式有限温度TDEP需要代表目标温度的足够独立构型,并继续检查超胞、采样、截断和力误差。

可下载拟合比较CSV与四次DFT条件CSV。下一步见极性Ewald输入。TDEP输入文件含义可查官方文件说明。

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

查看配图

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

100%查看原图 ↗