非正交晶胞的optcell与原生约束
通过真实Si剪切对照说明九整数掩码作用在形变驱动力上,不能直接当成POSCAR矩阵开关。
阅读本篇目录
下载全部输入、实算数据和短命令脚本(ZIP)。对正交胞,固定某一方向通常容易直观理解;对非正交或旋转的晶胞,要先确定约束作用在哪个张量和坐标系上。
1 起始结构与两种允许自由度#
本例Si8初始晶格为:
5.4300 0.0000 0.0000
0.2172 5.4300 0.0000
0.0000 0.0000 5.4300
第二个晶格矢量有x分量,面内夹角约87.71°。完整结构和电子参数在附件中:
cat inputs/Si-shear-opt/POSCAR
cat inputs/Si-shear-opt/INCAR
cat inputs/Si-shear-native-plane/INCAR
补丁只保留xy、yx形变驱动力:
ISIF = 3
IOPTCELL = 0 1 0 1 0 0 0 0 0
原生对照允许面内两个方向,固定层外方向:
ISIF = 3
LATTICE_CONSTRAINTS = .TRUE. .TRUE. .FALSE.
两者有意设置为不同自由度:后者还允许面内对角伸缩,不是“同一约束的两种等价写法”。
2 九个整数到底约束什么#
本集群 cell_relax_finner 补丁按xx、xy、xz、yx、yy、yz、zx、zy、zz的行序屏蔽笛卡尔形变驱动力矩阵。晶格的每一步变化由该矩阵作用于当前晶格产生。
因此,屏蔽xx驱动力不等于永远固定POSCAR中aₓ这一数值:非正交晶格存在耦合,连续剪切也可能积累对角变化。不能把九个数解释为九个晶格矩阵元素的直接开关。
原生约束按相应方向屏蔽张量的行和列。在斜晶胞中,晶格角度也不一定保持不变,参见原生约束说明。
3 实际结果#

| 项目 | 仅xy/yx驱动力 | 原生面内放松 |
|---|---|---|
| 离子步数 | 5 | 6 |
| 初始体积 / ų | 160.103007 | 160.103007 |
| 最终体积 / ų | 160.066667 | 163.211393 |
| 最大原子力 / eV/Å | 0.00101 | 0.000451 |
两组夹角都接近90°,但体积和能量不同,因为允许的形变不同。仅剪切那一组体积也发生了约0.023%的变化,不能把“对角驱动力为0”说成严格固定体积;若目标就是固定体积,应选择对应原生自由度并核对实际体积。
仅剪切那一组最终法向压应力仍约2 GPa;原生面内放松允许该应力进一步释放。因此不能只因原子力小于0.02 eV/Å,就宣称所有应力都已优化。
4 跟着运行并检查全过程#
整套算例首次提交:
bash prepare.sh
bash calculate.sh
bash status.sh
全部完成后:
bash verify.sh
cat work/Si-shear-opt/CONTCAR
cat work/Si-shear-native-plane/CONTCAR
head work/analysis/optcell-trajectories.csv
cat work/analysis/optcell-summary.csv
换成自己的斜晶胞时,先写清固定的是长度、角度、体积、某个笛卡尔方向,还是形变张量分量。再用小任务检查每一步晶胞和残余应力,确认约束符合物理目标后开展正式计算。本专题实际比较ISIF 2、3、4、7及所列掩码,其他组合不能仅凭这里的结果认定等价。