optcell缺省、全零与组合方向约束
比较不写掩码、九个1、九个0与xz面内组合,给出可直接查看的完整输入。
阅读本篇目录
下载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面内放松”的不同自由度例子应区别理解。

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分支及所列常见掩码,没有穷举所有九整数排列。不同约束问题仍需按实际晶胞验证,尤其是斜胞、旋转晶胞和只允许剪切的情况。原生行为及版本条件可查官方方向约束说明。