POSCAR 文件 #
一、作用与文件格式 #
POSCAR 包含计算模型的结构信息,也就是你要研究的对象(晶胞、原子种类与位置等)。POSCAR 有自己固定的格式,每一行都有特定的含义,认真掌握这些,对于搭建模型非常有帮助。下面是一个简单的 POSCAR 文件:
O atom in a box
1.0
8.0 0.0 0.0
0.0 8.0 0.0
0.0 0.0 8.0
O
1
Cartesian
0.0 0.0 0.0
各行含义如下:
- 第一行(注释行):可以写与材料相关的信息(如元素、体系名称),不影响计算。
- 第二行(缩放因子):一般建议将其设置为 1.0。晶胞基矢的实际大小 = 缩放因子 × 第三至五行的基矢。
- 第三至五行(晶胞基矢):元胞的三个基矢,单位是埃(Å)。基矢需要乘上第二行的缩放因子才是真正的晶胞大小。
- 第六行(元素种类):体系中的元素,多个元素用空格隔开,如
O H或Fe O。 - 第七行(原子个数):第六行元素对应的原子个数,多个数字用空格隔开,如
2 1表示 2 个 O 原子和 1 个 H 原子。 - 第八行(坐标系):体系中原子的坐标系,可以为笛卡尔坐标(
Cartesian,单位 Å),也可以为分数坐标(Direct,相对于基矢的比例,0~1 之间)。 - 第九行及以后(原子坐标):体系中原子的坐标信息,每行一个原子,顺序与第六、七行的元素顺序一一对应。
注意:有时候 POSCAR 文件最后带着很多行的 0.0000,那其实是对应了上面每个原子的速度(VASP 6 及部分工具生成的 POSCAR 会附带速度行)。如果是做 AIMD(从头分子动力学)计算,要把这些 0 删掉;做其他计算不必理会。
二、如何准备 POSCAR 文件 #
第一步:获取 cif 文件 #
① 各类晶体数据库网站,例如 Materials Project(https://next-gen.materialsproject.org/)、CCDC(剑桥晶体数据中心)、ICSD(无机晶体结构数据库)等,下载目标材料的 cif 文件。
② 使用 Materials Studio 软件建模(构建晶体、表面、界面等),保存为 cif 文件。
第二步:将 cif 文件转为 POSCAR #
① 使用 VASPKIT 工具的 105 功能:vaspkit – 回车 – 105 – 回车 – 输入 cif 文件名 – 回车,即可在当前目录生成 POSCAR 文件。
② 使用 VESTA 软件打开 cif 文件,依次点击 File → Export data,选择好文件路径,填上文件名后,依次点击保存 → OK(默认分数坐标 Direct 即可)。
注意:VESTA 软件保存的 POSCAR 文件带 .vasp 后缀,使用时需要先把 .vasp 后缀删掉,也就是保持文件名字与 POSCAR 严格一致(VASP 只认名为 POSCAR 的文件)。
其他常用方法:① 使用 ASE(Atomic Simulation Environment)的 ase.io.read + write('POSCAR', atoms, vasp5=True) 转换;② 使用 pymatgen 的 Structure.from_file + to('POSCAR') 转换;③ 从已发表论文的 Supporting Information 直接下载 POSCAR/CONTCAR;④ 超胞(supercell)构建可用 VASPKIT 的 201/202/203 功能或 ASE 的 atoms * (2, 2, 1) 实现。
三、坐标系与原子固定(Selective Dynamics) #
分数坐标与笛卡尔坐标 #
- 分数坐标(Direct):原子位置用基矢方向的分数表示(0~1),改变晶胞大小时原子相对位置不变,推荐在结构优化中使用。
- 笛卡尔坐标(Cartesian):原子位置用绝对坐标表示(单位 Å),直观但晶胞变化时需重新换算。
- 两种坐标可以混用(如部分原子用笛卡尔坐标),但不推荐;一般保持全文件统一。
Selective Dynamics(选择性动力学) #
在第八行坐标系之前插入一行 Selective dynamics,并在每个原子坐标后追加 3 个标志(T = 允许弛豫该方向,F = 固定该方向),即可固定部分原子。示例(固定底层原子,弛豫表层原子):
O atom in a box
1.0
8.0 0.0 0.0
0.0 8.0 0.0
0.0 0.0 8.0
O
2
Selective dynamics
Direct
0.0 0.0 0.0 F F F
0.5 0.5 0.5 T T T
应用场景:表面(slab)计算中固定底层原子模拟体相环境;吸附计算中固定基底原子只弛豫吸附分子;界面计算中固定远离界面的部分。
注意:旧版 VASP 中 Selective dynamics 需要写在坐标系行之前,且每个坐标行必须有 3 个标志;若做 AIMD 计算,不要使用 Selective dynamics 固定原子(MD 中所有原子都运动),应通过其他方式约束。
四、常见问题与注意事项 #
- 元素顺序必须与 POTCAR 一致:POSCAR 第六行的元素顺序必须与 POTCAR 中赝势的拼接顺序严格一致,否则计算结果错误(元素张冠李戴)。建议用 VASPKIT 检查(
vaspkit的检查功能)或人工核对。 - 原子个数之和必须等于总原子数:第七行各数字之和应等于后面坐标行的行数,否则 VASP 报错或读取错误。
- 缩放因子与基矢:基矢单位是 Å,缩放因子一般写 1.0;若缩放因子为负值可翻转手性(特殊用法)。
- 分数坐标范围:Direct 坐标一般在 0~1 之间,超出范围表示原子在晶胞外(周期镜像),可能影响结果解读。
- 结构优化后必须更新 POSCAR:把 CONTCAR 复制为 POSCAR 再进行下一步计算(静态、能带等)。
- 速度行处理:POSCAR 末尾多余的 0.0000 速度行,AIMD 前需删除;若保留,VASP 可能将其视为初始速度。
- 表面/二维材料:POSCAR 中 z 方向需保留足够真空层(一般 15~20 Å),且该方向用分数坐标时原子坐标值较小,注意检查。
- 检查工具:可用 VESTA 打开 POSCAR 可视化检查结构;VASPKIT 的 105 反向功能(POSCAR 转 cif)可验证结构合理性;ASE 的
ase.visualize也可直接可视化。
