ABACUS 无轨道DFT体积与压力实操
五个真实Al体积点,比较原生应力压力与独立能量导数,讲清单位、符号与有限差分。
阅读本篇目录
如果改变晶胞体积,原生应力给出的压力能否和总能量的变化对应起来?本篇固定WT动能泛函、局域Al赝势和60 Ry截断,用五个真实SCF体积点做一个可直接复现的对照。
1. 得到参考数据#
下载全部输入与实际结果,解压后进入根目录:
bash analyze.sh
新计算用sbatch submit.slurm;CPU资源和模块选择见完整实操。图和CSV分别输出到reference/figures与reference/analysis;完整重算的输出在work。

本例只是固定近似下的局部体积对照,未进行离子MD或严格状态方程研究,也没有把给定原胞体积称为实验平衡体积。
2. 晶胞怎样缩放#
以参考晶格常数为基准,分别乘0.98、0.99、1.00、1.01、1.02。三个基矢一起缩放,所以体积按比例的三次方变化;不能把晶格缩放1%理解成体积只变1%。原子使用分数坐标,几何位置随晶胞一起缩放。
| 晶格缩放 | 体积,ų/原胞 | 能量,eV/原胞 | 原生压力,GPa |
|---|---|---|---|
| 0.98 | 14.723928 | -57.911193207 | 7.248430 |
| 0.99 | 15.179276 | -57.926897654 | 3.891838 |
| 1.00 | 15.643916 | -57.933855090 | 0.987438 |
| 1.01 | 16.117942 | -57.932969218 | -1.514072 |
| 1.02 | 16.601449 | -57.925073319 | -3.654817 |
每个条件采用独立目录,不串联覆盖结果。当前KEDF、赝势和固定离子位置保持相同;若同时改变泛函或赝势,就不能把能量差仅解释为体积效应。
3. 压力的单位和符号#
采用P = −dE/dV,eV/ų到GPa乘160.21766208。原生TOTAL-STRESS和TOTAL-PRESSURE以kbar输出,转GPa乘0.1;标量压力是应力张量对角线平均值,不是三项直接求和。
中央体积处的实际对照:
| 方法 | 压力,GPa |
|---|---|
| 原生应力迹/3 | 0.987438 |
| 五体积非等间隔差分 | 0.986581 |
| 两侧相邻点的割线 | 1.036334 |
五点差分与原生值相差约0.000857 GPa;相邻两点的割线差异更大,说明有限差分步长和体积点分布会影响结果。脚本先在中央体积附近做四次局部插值求导,再用独立的非等间隔差分权重交叉核对;不把这条局部插值曲线当作完整的物理状态方程。
4. 终端提取#
python - <<'PY'
import json
r = json.load(open('reference/analysis/RESULTS.json'))
e = r['WT_EOS']
for key in ['reference_volume_A3', 'native_pressure_GPa',
'five_volume_derivative_GPa', 'two_volume_secant_GPa']:
print(key, e[key])
PY
conditions.csv保留每个体积的原生能量、压力及优化停止信息。若需要更小的能量差或更精确的压力,先检查密度优化判据,再增加截断和缩小差分区间;不能仅凭原生日志保留很多小数位就认为物理精度同样高。