VASP晶胞约束上手与结果检查
先分清原子和晶胞优化,再用短命令复现11个小体系约束算例。
阅读本篇目录
下载全部输入、实算数据和短命令脚本(ZIP)。本专题按使用场景拆成四篇:约束入门 → MoS₂固定晶胞高度 → 单轴、固定体积与固定形状 → 非正交晶胞与剪切。
1 结构优化到底优化什么#
原子位置优化改变原子坐标;晶胞优化改变晶格长度、角度或体积。两者可以同时进行,也可以只做其中一种。POSCAR的 Selective dynamics 控制原子自由度,不等于固定晶胞。
| 目标 | 本专题使用的设置 |
|---|---|
| 固定整个晶胞,只优化原子 | ISIF=2 |
| 原子和选定晶胞形变同时优化 | ISIF=3 配合补丁或原生约束 |
| 固定体积,允许形状和原子调整 | ISIF=4 |
| 固定形状,只改变体积 | ISIF=7,本例理想Si原子保持分数坐标 |
这些选项决定自由度,不替代截断能、k点、电子收敛和最终力检查。本例电子阈值1E-6,原子力目标0.02 eV/Å。
2 先重画真实结果#
unzip optcell-practical-wave262-*.zip
cd optcell-practical-wave262
bash run.sh
这个入口读取本集群真实VASP结果,生成四张PNG和两张CSV,不提交计算。
ls figures
cat analysis/optcell-summary.csv
head analysis/optcell-trajectories.csv
数据表保留每一步能量、体积、晶轴长度、夹角、原子力及应力。只看CONTCAR存在不足以判断优化是否完成。
3 自己完整运行一次#
bash prepare.sh
bash calculate.sh
bash status.sh
prepare.sh 建立自己的 work/,用VASPKIT 1.5.1的103任务按元素顺序生成授权赝势;附件不包含POTCAR。calculate.sh 将11个小算例分别通过Slurm提交,每个使用一张匹配的P100或V100 16G。不要在已经提交后删除提交记录再次执行,以免重复计算。
全部任务完成后:
bash verify.sh
ls work/analysis
ls work/figures
新算结果在 work/,附件参考图在最外层。run.sh 重画的是随包提供的参考结果,不会自动把参考数值替换成自己新算的数值。示例输入保持原样时,可直接用 verify.sh 检查复现;改成自己的体系后,应按自己的输入、原子数和约束目标重新检查。
4 两种约束入口#
补丁分支:
ISIF = 3
IOPTCELL = 1 0 0 0 1 0 0 0 0
只在相应 vasp/6.6.1-p100-optcell 或V100 optcell模块中使用。本集群的九整数写在INCAR,不能把其他项目的外部 OPTCELL 文件格式直接套入。
原生分支:
ISIF = 3
LATTICE_CONSTRAINTS = .TRUE. .TRUE. .FALSE.
本专题实际采用VASP 6.6.1。原生 LATTICE_CONSTRAINTS 与IBRION 1/2的组合从6.4.3起支持,与ISIF 4/5的组合从6.5.1起支持,较早版本还有相关修复边界,选择其他版本请核对官方说明。
5 软件环境#
本例P100、V100 16G分别使用6.6.1原生及optcell分支,NVHPC 25.3、MKL 2023.2;脚本装载各自匹配的MPI和GPU环境。CPU节点性能数据不在本专题中。
module show vasp/6.6.1-p100-optcell
module show vasp/6.6.1-v100
本例是约束操作参考,不是材料晶格常数的高精度收敛研究。后续计算能带、缺陷或吸附时,应在一致精度下另做合适的静态计算。