做表面吸附计算时,经常需要固定基底的底层原子,让表面和吸附物自行弛豫。VASP可以在POSCAR中为每个原子指定允许变化的坐标分量,改动集中在坐标区。容易弄混的是,坐标用哪种方式输入,和约束按哪个方向生效,是两件需要分别核对的事。尤其是斜晶胞,看到F F T就理解成只沿竖直方向移动,可能会把约束设偏。
一、VASP原子约束怎么设置
原子约束写在POSCAR里,每一行坐标对应一个原子。拿表面模型来说,动手前可以先认清哪些行属于基底底层,避免文件按元素分组时把连续几行误当成同一层。
1、找准要固定的原子行
①备份原始【POSCAR】,核对文件中的【元素顺序】和【各元素原子数】。
②在结构查看工具中打开【POSCAR】,从侧面辨认基底底层,记录需要固定的原子序号。
③回到【POSCAR】的坐标区,从坐标首行开始计数,核对这些序号对应的坐标行。若查看工具重新排列过原子,以输入文件的坐标行顺序为准。
同一层可能包含多种元素,这些原子在文件中也可能隔得很远。还有一种情况是底层原子分布在周期边界两侧,单凭第三列数值的大小容易选漏。遇到这两种模型,看过结构再对照坐标行更稳妥。
2、启用选择性动力学并补齐标记
开启约束需要单独加一行选择性动力学标记。它的位置在原子数量行之后、坐标类型行之前。
①在【各元素原子数】所在行的下一行写入【Selective dynamics】。
②在其下一行保留原来的【Direct】或【Cartesian】,坐标数字未转换时,沿用原有坐标类型。
③在每个原子的三个坐标值后面追加三个标记。要固定的底层原子填【F F F】,需要自由弛豫的表面原子和吸附物填【T T T】。
④保存【POSCAR】,检查坐标行数是否等于原子总数,并逐行确认三个约束标记都已填写。
3、让计算实际执行离子弛豫
①打开【INCAR】,选用离子弛豫算法,例如共轭梯度法【IBRION=2】。
②将【NSW】设为正整数,例如【NSW=60】,给离子优化留出步数。
③若需要保持晶胞形状和体积不变,设置【ISIF=2】,再用修改后的输入文件提交计算。
二、VASP原子约束中的T和F是什么意思
T表示允许对应的坐标分量变化,`F`表示固定该分量。三个标记从左到右,分别对应三个直接晶格矢量所定义的分数坐标。即使坐标行用Cartesian输入,这个对应关系也一样。
1、按原子需要保留的自由度填写
①要在固定晶胞中锁住一个原子,在它的坐标行末尾填【F F F】,三个分数坐标都保持不变。
②要让一个原子在三个方向上都可以弛豫,填【T T T】。例如,坐标行可写为【0.500000 0.500000 0.350000 T T T】。
③只允许第三个分数坐标变化时,填【F F T】。如果要保留前两个分量、固定第三个分量,则填【T T F】。
允许移动的原子也可能几乎不动。比如初始位置已经接近平衡,或者该方向上的力很小,就算写了T,优化前后的坐标差也可能很小。判断约束时,可以先看写了F的分量有没有保持固定。
2、在斜晶胞里确认方向再填标记
第三个分数坐标变化,意味着原子沿第三个晶格矢量移动。如果这个矢量带有侧向分量,原子移动时就会同时改变侧向位置。
①打开【POSCAR】,查看开头三行【晶格矢量】,确认第三个矢量是否平行于希望保留的移动方向。
②若只想让原子沿表面法线弛豫,确认第三个晶格矢量平行于该法线后,再在对应原子行写入【F F T】。
③若第三个晶格矢量相对表面法线有倾斜,按实际晶格方向解释现有【F F T】;若必须沿法线移动,则先重新构建满足方向要求的【POSCAR】。
三、VASP原子约束设好后怎么核对结果
优化结束后,可以把输入结构和最后一个离子步的结构放在一起核对。固定晶胞时,直接比较分数坐标就能查约束;晶胞也参与优化时,还要考虑晶格矢量本身的变化。
1、比较约束分量在优化前后的数值
①打开输入的【POSCAR】和本次生成的【CONTCAR】,按同一个原子序号找到对应行。
②将两份结构统一到【Direct】坐标后,逐项比较标为【F】的分量,允许输出末位有舍入差异。若查看工具把原子重新放回晶胞内,先排除相差整数的周期等价坐标。
③若分数坐标一致但显示位置变了,对照【POSCAR】和【CONTCAR】中的晶格矢量,再查看【INCAR】的【ISIF】设置。
晶胞参与优化时,分数坐标不变的原子也可能随晶胞改变其笛卡尔位置。如果实验设计要求固定基底的空间位置,晶胞是否保持不变就要和原子标记一起检查。
2、续算前确认用的是哪一份结构
只做了静态计算,或者作业脚本从别处读入了旧文件,输出里就很难看出刚改的约束。续算前可以直接检查提交目录里的输入。
①打开本次计算的【OUTCAR】,核对生效的【IBRION】和【NSW】,确认任务执行了离子步。
②需要接着优化时,将上一次的【CONTCAR】复制为新一轮的【POSCAR】,检查坐标区的【Selective dynamics】和逐行标记。
③保存后在实际提交目录重新打开【POSCAR】,抽查一个固定原子和一个放开的原子,确认行号和标记都对应本轮模型。
总结
同样是固定底层原子,计算结果能否用于比较,还取决于各个模型固定了哪几层、放开了哪些方向。做一组吸附构型时,把固定层和晶胞条件随输入文件一起记下来,后面看到吸附能或表面位移有差别,才好判断差异来自构型还是约束。若换成斜晶胞模型,可以把第三个晶格矢量与表面法线的关系也记进计算记录。