POSCAR详解:晶格常数、原子坐标、选择性动力学、晶格优化标志
POSCAR这个文件,说白了就是VASP的"地基"。你所有的计算,从结构优化到性质计算,都得从它开始。我见过太多新手,一上来就急着算能带,结果POSCAR写错了,白跑好几天。嗯,今天咱们就把这个文件彻底讲透。
POSCAR的基本结构
先看一个标准的POSCAR长什么样:
Example NaCl
1.0
5.64 0.0 0.0
0.0 5.64 0.0
0.0 0.0 5.64
Na Cl
2 2
Direct
0.0 0.0 0.0 Na
0.5 0.5 0.5 Na
0.25 0.25 0.25 Cl
0.75 0.75 0.75 Cl
这个文件一共就几行,但每一行都有讲究。我按顺序给你拆开讲。
第一行:注释行
随便写,VASP不读它。但我建议你养成好习惯,写上体系名称或计算目的。我曾经在项目里同时跑十几个结构,全靠注释行区分,不然真会搞混。
第二行:缩放因子
这个值很关键。它决定了后面晶格矢量的实际长度。如果写1.0,那晶格矢量就是实际值。如果写别的数,比如2.0,那所有晶格矢量都会乘以这个数。
第三到五行:晶格矢量
这三行定义了你的晶胞形状和大小。每一行是一个晶格矢量,单位是Å(埃)。
举个例子,对于立方晶系:
5.64 0.0 0.0
0.0 5.64 0.0
0.0 0.0 5.64
这就是一个边长为5.64 Å的立方体。如果是六方晶系,你会看到类似这样的:
3.2 -1.85 0.0
0.0 3.7 0.0
0.0 0.0 5.2
这里要注意,晶格矢量不一定要正交。VASP支持任意形状的晶胞,包括三斜晶系。我做过一个三斜的有机分子晶体,那晶格矢量看着就头疼,但VASP照样能算。
第六行:元素符号
按顺序列出原子种类。比如:
Na Cl
或者:
Si O
这里有个坑:元素符号的顺序必须和后面原子坐标的顺序一致。我曾经有一次把顺序写反了,结果Na跑到了Cl的位置上,算出来的能量完全不对。
第七行:原子数目
对应上一行的元素,写出每种原子的个数。比如:
2 2
表示有2个Na原子和2个Cl原子。总数就是4个原子。
第八行:坐标类型
有两种选择:
- Direct:分数坐标,取值范围0到1
- Cartesian:笛卡尔坐标,单位是Å
我个人强烈推荐用Direct坐标。为什么?因为分数坐标不随晶格常数变化,做结构优化时更方便。而且很多后处理工具默认读分数坐标。
原子坐标行
每一行对应一个原子的坐标。如果是Direct坐标,就是三个0到1之间的数。比如:
0.0 0.0 0.0
0.5 0.5 0.5
如果是Cartesian坐标,就是实际的xyz值,单位Å。
这里有个细节:VASP允许你在坐标后面加一个标签,比如:
0.0 0.0 0.0 Na
这个标签VASP不读,但方便你肉眼识别。我写POSCAR时一定会加,尤其是做表面吸附的时候,哪个原子是吸附的,哪个是衬底的,一目了然。
选择性动力学
这个功能很实用。它让你控制哪些原子可以动,哪些不能动。在第八行和原子坐标之间加一行:
Selective Dynamics
然后在每个原子坐标后面加三个标志:T(可以动)或F(固定)。比如:
Direct
Selective Dynamics
0.0 0.0 0.0 T T T
0.5 0.5 0.5 F F F
第一个原子三个方向都能动,第二个原子完全固定。
我在做表面计算时经常用这个功能。比如计算分子在表面的吸附,我会固定下面几层原子,只让表面层和吸附分子动。这样既节省计算时间,又能模拟真实情况。
晶格优化标志
这个标志写在INCAR里,但和POSCAR密切相关。它控制是否优化晶格常数。常用的有:
- ISIF = 2:只优化原子位置,晶格不变
- ISIF = 3:同时优化原子位置和晶格常数
- ISIF = 4:优化原子位置,晶格形状可变但体积不变
我一般这样用:
- 做表面计算时用ISIF=2,因为表面晶格常数通常固定
- 做体材料优化时用ISIF=3,让晶格常数自由变化
- 做相变研究时用ISIF=4,保持体积不变只改变形状
知识体系结构图
下面这张图总结了POSCAR的核心逻辑:
常见错误与避坑指南
我总结几个最常见的POSCAR错误:
- 原子数目不对:总数必须和后面坐标行数一致。多一行或少一行都会报错。
- 坐标类型混淆:写了Direct但给了大于1的坐标,或者写了Cartesian但给了0到1的小数。
- 选择性动力学格式错误:T和F必须大写,而且每个原子必须写三个标志。
- 晶格矢量不合法:三个矢量必须能构成一个三维空间,不能共面或共线。
好了,POSCAR的核心内容就这些。记住,这个文件是你和VASP沟通的第一步,写对了,后面就顺了。写错了,那真是"一步错,步步错"。我当年刚学VASP时,光POSCAR就折腾了一周,现在想想,其实没那么复杂,就是细节多。