Ex3.9 VASP 的输出文件:vasprun.xml

vasprun.xml 文件采用 XML (Extensible Markup Language) 格式。尽管如此,它仍是一个文本文件,可以直接用 vim 打开,或使用 grep 等命令行工具进行信息提取,前提是你要找一个简单的例子从头到尾去看一下这个文档中的信息,大体知道结构长什么样子。

1. 文件的特点

  • 格式优势: XML 格式赋予了它极佳的结构化机器可读性。数据通过清晰的标签(tags)组织,层次分明,极大地便利了程序进行自动解析和处理。
  • 文件定位: 它不仅仅是计算的日志,更是一个集成式的结果数据库。它承担了计算日志和结果数据库的双重角色,是官方推荐的用于提取 VASP 计算信息的核心文件

2. 主要包含信息概览

vasprun.xml 囊括了整个 VASP 运行周期内的所有关键信息,大致可分为以下几类:

  • 输入与结构:
  • 输入参数(incar): 记录了运行计算时使用的所有 VASP 输入参数(如 ENCUT , KPOINTS 等)。
  • 结构信息(poscar): 包含初始和最终的晶体结构,包括晶格矢量、原子坐标和原子类型。
  • 能量与动力学:
  • 能量与力: 详细记录了每个离子步(结构优化或 MD)或电子步(SCF)的总能量费米能级以及作用在每个原子上的
  • 其它计算结果:应力张量、声子频率(来自 IBRION =5/6 计算)以及分子动力学轨迹。
  • 电子结构核心数据:
  • 电子态信息: 包含详细的电子态数据,如能带结构的原始数据、态密度 (DOS) 的分量(PDOS)、以及投影的轨道磁矩等。

3. 主要分析用途

由于 vasprun.xml 数据高度集中且结构清晰,它是进行后续深入分析的主要数据源

  • 结果验证与收敛性:
  • 检查总能量是否收敛,确认结构优化是否达到了预设的收敛标准(如原子受力小于 EDIFFG)。
  • 电子性质分析:
  • 提取数据用于绘制态密度 (DOS) 图,分析电子在不同轨道上的分布。
  • 绘制能带结构,据此判断材料是金属、半导体还是绝缘体。
  • 动力学与热力学:
  • 从 MD 轨迹中提取结构信息,或从振动计算结果中提取热力学量。
  • 自定义数据提取:
  • 作为所有原始数据的集合,用户可以编写脚本自定义提取和计算任何感兴趣的物理量。

4. 关键处理软件与工具

为了高效利用 vasprun.xml 的数据,社区开发了大量专注于解析和可视化的工具:

软件类型 工具名称 主要功能描述
脚本/库 pymatgen 强大的 Python 库,内置高效的 XML 解析器。能将 vasprun.xml 数据转换为易于操作的 Python 对象,是进行批量分析和自动化工作流的首选
脚本/库 ASE (Atomic Simulation Environment) 灵活的原子模拟环境。它将 vasprun.xml 视为一个标准的数据容器,可提取结构和物理量,转化为 ASE 内部统一格式进行分析。
可视化 p4vasp 经典的 VASP 结果查看器,能够直观地查看结构、能带、DOS 等。
可视化 VESTA 主要用于晶体结构的可视化,但也能够导入 vasprun.xml 文件来查看计算的最终结构

5. 个人的使用经验

本人平时很少使用这个文件,因为基本的一些信息都是通过CONTCAR, OSZICAR, OUTCAR,和 DOSCAR来获取的。 但是,这也衍生出了vasprun.xml非常重要的作用,那就计算过程以及结果的备份。由于大量的操作集中到OUTCAR或者CONTCAR上面,难免会误删或者覆盖,导致结果丢失,此时可以用vasprun.xml来补救了。比如可以通过下面的命令,使用ASE 获得最后一个离子步的结构。

ase gui vasprun.xml@-1 -o POSCAR 

另外一点需要注意的是,如果记录的信息太多,会导致这个文件很大,可以通过下面的命令压缩一下,需要的时候解压即可。

tar -zcvx vasprun.xml.tar.gz vasprun.xml && rm vasprun.xml