VASP晶胞优化:ISIF分支与停止条件
用真实位移Si8区分原子、形状和体积自由度,说明固定原子时如何选择停止条件。
阅读本篇目录
下载15组有效输入、一个错误示例、实算数据和短命令脚本(ZIP)。本篇补充单轴、固定体积与固定形状中尚未展开的ISIF 0、1、5、6、8。先确定哪些自由度需要优化,再决定如何判断结束。
1 ISIF究竟允许什么变化#
| ISIF | 原子位置 | 晶胞形状 | 晶胞体积 | 应力输出 |
|---|---|---|---|---|
| 0 | 可变 | 固定 | 固定 | 不计算完整应力 |
| 1 | 可变 | 固定 | 固定 | 只有迹可靠 |
| 2 | 可变 | 固定 | 固定 | 完整张量 |
| 3 | 可变 | 可变 | 可变 | 完整张量 |
| 4 | 可变 | 可变 | 固定 | 完整张量 |
| 5 | 固定分数坐标 | 可变 | 固定 | 完整张量 |
| 6 | 固定分数坐标 | 可变 | 可变 | 完整张量 |
| 7 | 固定分数坐标 | 固定 | 可变 | 完整张量 |
| 8 | 可变 | 固定 | 可变 | 完整张量 |
本专题前一批已实际比较2、3、4、7,本篇补齐其余分支。不同ISIF不是精度等级;例如8适合保持形状的体积与原子共同放松,不能替代需要改变轴比或角度的3。ISIF=8从6.4.1起提供,其他版本边界见官方ISIF说明。
“固定原子”在晶胞优化语境里指分数坐标固定,晶胞变形仍会改变原子的笛卡尔坐标,不要仅看XYZ坐标变化就断言原子自由度已放开。
2 查看这批真实输入#
cat inputs/Si-isif5-native/POSCAR
cat inputs/Si-isif5-native/INCAR
cat inputs/Si-isif5-native/KPOINTS
Si8初始一个原子位移[0.03,-0.02,0.01] Å,故有非零原子力;相应晶胞再施加小应变。电子阈值1E-6、截断550 eV、Γ中心4×4×4。以仅调整形状的ISIF5为例,完整POSCAR为:
Si
1.0000000000000000
5.6471999999999998 0.0000000000000000 0.0000000000000000
0.0000000000000000 5.2211538461538458 0.0000000000000000
0.0000000000000000 0.0000000000000000 5.4299999999999997
Si
8
Direct
0.0055248618784530 -0.0036832412523020 0.0018416206261510
0.2500000000000000 0.2500000000000000 0.2500000000000000
0.0000000000000000 0.5000000000000000 0.5000000000000000
0.2500000000000000 0.7500000000000000 0.7500000000000000
0.5000000000000000 0.0000000000000000 0.5000000000000000
0.7500000000000001 0.2500000000000000 0.7500000000000000
0.5000000000000000 0.5000000000000000 0.0000000000000000
0.7500000000000001 0.7500000000000000 0.2500000000000000
对应的完整KPOINTS:
Si constraint branch tutorial
0
Gamma
4 4 4
0 0 0
完整INCAR:
SYSTEM=Si-isif5-native
ENCUT=550
PREC=Accurate
EDIFF=1E-6
EDIFFG=1E-6
ISYM=0
ISIF=5
IBRION=2
NSW=100
POTIM=0.3
ISMEAR=0
SIGMA=0.05
LREAL=.FALSE.
LASPH=.TRUE.
ADDGRID=.TRUE.
ALGO=Normal
NELM=150
LWAVE=.FALSE.
LCHARG=.FALSE.
NCORE=1
这里 EDIFFG=+1E-6 是相邻离子步总能量变化的停止标准,单位eV;不是1E-6 eV/Å的原子力。ISIF6同样使用能量停止;ISIF0/1/2/3/8中允许原子放松的算例仍使用 EDIFFG=-0.02。
3 为什么固定原子时不能照搬力停止#
我们另做的初始对照用ISIF5/6加 EDIFFG=-0.02。晶胞已接近稳定,但固定的位移原子仍有约0.45–0.47 eV/Å的力,无法满足0.02;继续迭代不能通过晶胞变形消除这个受限原子自由度的全部力。
因此本篇的正式仅晶胞对照改用能量停止,并额外核对允许变化的应力分量、体积和分数坐标。ISIF5固定体积,静水压力可以残留;ISIF6允许整体晶胞变化,需要关注完整应力。能量变化很小也不自动证明所有应力严格为零。
原子力0.02仍适用于这里的原子优化;它不能被套到明确定住原子的任务上。EDIFFG官方说明区分了能量停止和力停止。
4 实际结果#

| ISIF | 离子步数 | 体积 / ų | 最终原子最大力 / eV·Å⁻¹ | 最大分数坐标变化 |
|---|---|---|---|---|
| 5 | 10 | 160.103007 → 160.103007 | 0.466894 | 0.000000 |
| 6 | 13 | 166.440524 → 163.600440 | 0.451194 | 0.000000 |
| 8 | 7 | 177.509066 → 163.620752 | 0.019750 | 0.003819 |
ISIF5/6的原子力仍非零,是预先选定自由度的结果;ISIF8允许原子放松,才能把位移引起的力降下来。原生与optcell全1对照使用相同物理输入,比较能量、晶胞与力,不将全1当成另一种独立算法。

5 运行、检查和拿到结果#
先重画参考数据:
unzip optcell-branches-wave264-*.zip
cd optcell-branches-wave264
bash run.sh
首次完整计算:
bash prepare.sh
bash calculate.sh
bash status.sh
15个小算例分别经Slurm使用一张匹配GPU。已经提交过就查看状态,全部完成后:
bash verify.sh
cat work/analysis/optcell-branches-summary.csv
cat work/Si-isif8-native/CONTCAR
自己结果在work,参考图在附件外层figures。verify.sh 按本包固定输入核对相应自由度;换成自己的体系后,还应重新检查精度和约束目标。本例VASP6.6.1原生/optcell采用NVHPC25.3/MKL2023.2,不作为晶格常数或Pulay应力收敛研究。