ATAT振动零点项与静态能量参照
从同一Al EMT模型实际运行svsl和mkteci,区分完整振动自由能、零点项和热激发部分。
阅读本篇目录
计算温度自由能时,要先分清静态能量、零点项和热激发部分。本文用一个实际Al EMT弹簧模型,把这三项连接到 svsl 和 mkteci 的输入输出。
下载三篇共用的真实输入、数值与绘图包,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd atat-free-energy-reference
sbatch job.slurm
本例使用ATAT3.52/GCC13.3,提取绘图用sisl0.16.4。CPU分区按56核整节点申请,包内实际顺序1核;分区维护时等待恢复,在已分配CPU作业内可 bash run.sh。三篇共用一次运行:4组电子温度网格、1组振动自由能、4次温度ECI组合。使用既有真实DOS、已拟合的弹簧关系及磁性代表,不重新进行VASP、MD或位移受力计算。
inputs/是完整输入及运行后的原生结果,combinations/是派生温度ECI输入/输出,reference-results/保留本文原件。科学数组在 analysis-fields.npz,图在 plots/。
1. 看清结构、弹簧和质量输入#
cat inputs/vibrational/str.out
cat inputs/vibrational/slspring.out
cat inputs/vibrational/masses.in
完整参考结构:
3.9942741526 3.9942741526 3.9942741526 90 90 90
0 .5 .5
.5 0 .5
.5 .5 0
0 0 0 Al
弹簧长度关系:
Al Al
2
11.36481
-3.65626
2
-1.04199
0.34879
质量文件是 Al 26.981538,单位u。这里显式给出 -m=masses.in,自己的输入不依赖家目录中的默认质量文件。弹簧来自Al EMT实际位移受力拟合,晶格参数3.9942741526Å。它是EMT模型,不是PBE声子或实验参数。
2. 原生svsl的实际调用#
包内在振动目录执行:
svsl -ns=1 -T0=0 -T1=1000 -dT=100 -kp=4000 -pa -sig=12 -m=masses.in
-ns=1为单体积谐近似;温度0—1000K,间隔100K;-kp设倒空间积分密度;-pa要求每原子归一化。输出 fvib是一列自由能,svsl.out有温度列,vdos.out给声子态密度。
cat inputs/vibrational/fvib
cat inputs/vibrational/svsl.out
本例与已发布的同一模型曲线逐点一致。当前构建部分输出含字面的反斜杠t,配套读取函数临时将其解释为分隔符,原始文件保留。
3. 三项具体是什么#
静态EMT能量 E0=−0.004882684533eV/原子。原生 fvib(0)=0.034296eV/原子是本模型振动零点项,不能把它当作应删除的温度噪声。fvib(T)−fvib(0)才是相对0K振动态的热激发部分。
| 量 | 0K/eV·原子⁻¹ | 1000K/eV·原子⁻¹ |
|---|---|---|
| 静态E0 | −0.004882684533 | −0.004882684533 |
| 完整fvib | 0.034296 | −0.356946 |
| E0+fvib | 0.029413315467 | −0.361828684533 |

4. 两种正确分拆得到同一条总曲线#
可以用 E0 + fvib(T),也可以用 (E0+ZPE) + [fvib(T)−ZPE];两者相同。本包分别生成两个输入目录,通过原生 mkteci 实际组合,核对其相同总曲线。若静态基准已经含ZPE,又加完整fvib,就重复加了零点项。
cat combinations/vibrational/eci.out
cat combinations/vibrational-ZPE-shift/eci.out
cat combinations/vibrational/teci.out
这里的ECI只有一个空团簇系数,用于演示能量记账,不表示已经拟合了完整合金簇展开。组合格式与温度网格见温度ECI操作。
有原生结果后,只重新整理和画图:
module load sisl/0.16.4
python analyze_prepare.py
python analyze.py
python plot.py
这一步重写自己派生的ECI输入与分析文件,不重新运行原生工具,也不修改原生输出。
用于自己的材料时,应先检查结构稳定性、超胞、受力方法、弹簧拟合及倒空间收敛;不要把本例EMT零点能当成所有Al计算的通用修正。参考ATAT官方工具范围。