VASP晶胞约束

optcell缺省、全零与组合方向约束

比较不写掩码、九个1、九个0与xz面内组合,给出可直接查看的完整输入。

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

下载15组有效输入、一个错误示例、实算数据和短命令脚本(ZIP)。本篇承接非正交晶胞与剪切,把最容易混淆的几个掩码写法做成真实对照。九个数按xx、xy、xz、yx、yy、yz、zx、zy、zz排列,作用于笛卡尔形变驱动力。

1 不写IOPTCELL与写九个1#

ISIF = 3
IOPTCELL = 1 1 1 1 1 1 1 1 1

在本集群optcell分支中,不写这一项的缺省控制与九个1都不额外屏蔽形变驱动力。本例另用无补丁原生VASP作对照,三者从相同Si8出发,最终能量、晶胞与力相符。

cat inputs/Si-default-opt/INCAR
cat inputs/Si-all-opt/INCAR
cat inputs/Si-default-native/INCAR

原生全放松用了9个离子步,最终体积163.551791 ų、最大原子力0.015960 eV/Å。这个结论针对当前6.6.1构建和本例输入,不能替代核对别处补丁的缺省逻辑。

2 九个0冻结的是晶胞#

ISIF = 3
IOPTCELL = 0 0 0 0 0 0 0 0 0

这会屏蔽全部晶胞形变驱动力,原子仍可放松。原生固定胞对照使用 ISIF=2。不要把下面这一组写法当成可运行的替代:

# 错误示例,原生6.6.1会在SCF前拒绝
ISIF = 3
LATTICE_CONSTRAINTS = .FALSE. .FALSE. .FALSE.

本次实际收到原生程序的配置矛盾提示并以1退出,没有得到优化结果。这个输入单独放在invalid-example,不在calculate.sh的15个有效任务里。固定整个晶胞请直接用ISIF=2。

cat inputs/Si-zero-opt/POSCAR
cat inputs/Si-zero-opt/INCAR
cat invalid-example/Si-zero-native/INCAR
cat inputs/Si-fixed-native/INCAR

本例九个0的晶胞全过程不变,最终最大力0.017991 eV/Å,最大分数坐标变化0.003792;两项分别说明原子得到放松、晶胞受到固定。

3 同时允许x、z方向与xz剪切#

补丁组合掩码:

ISIF = 3
IOPTCELL = 1 0 1 0 0 0 1 0 1

允许xx、xz、zx、zz,屏蔽y对应的行和列。原生对应输入:

ISIF = 3
LATTICE_CONSTRAINTS = .TRUE. .FALSE. .TRUE.
cat inputs/Si-xz-opt/POSCAR
cat inputs/Si-xz-opt/INCAR
cat inputs/Si-xz-native/INCAR

初始晶胞带xz剪切,实际逐步检查y行和y列保持不变;本组原生与补丁的终态相符。原生用了7步,终态体积162.987140 ų。这里允许的张量分量对应相同,和上一篇“只留xy/yx”对比“整个xy面内放松”的不同自由度例子应区别理解。

缺省、全1、全0和xz组合的真实能量对照

4 从提交到提取#

首次准备和提交整套15例:

bash prepare.sh
bash calculate.sh
bash status.sh

全部完成后:

bash verify.sh
cat work/analysis/optcell-branches-summary.csv
head work/analysis/optcell-branches-trajectories.csv

表格包含每步能量、晶胞、原子力、分数坐标变化、形状和体积变化。ISIF0不输出完整应力、ISIF1只有迹可靠,CSV不会把缺少或不可靠的完整应力冒充零应力。

5 换材料时按这个顺序#

先写清允许改变的是原子位置、形状、体积还是张量分量;然后选择ISIF,再决定是否额外加掩码。最后核对每步结构和未优化方向的残余应力。

本篇和前四篇覆盖本集群各ISIF分支及所列常见掩码,没有穷举所有九整数排列。不同约束问题仍需按实际晶胞验证,尤其是斜胞、旋转晶胞和只允许剪切的情况。原生行为及版本条件可查官方方向约束说明。

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

查看配图

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

100%查看原图 ↗