VASP软件中文版手册第二章:程序结构概要及教程

您所在的位置:网站首页 vasp教程书 VASP软件中文版手册第二章:程序结构概要及教程

VASP软件中文版手册第二章:程序结构概要及教程

#VASP软件中文版手册第二章:程序结构概要及教程| 来源: 网络整理| 查看: 265

VASP是备受专业技术人员认可的DFT计算软件,每年发表论文超过1万篇,至2022年底,文章总量已超过11万篇。其计算结果不仅可以验证实验,更能够预测实验结果,指导实验路线。

本文为华算科技朱老师技术团队的Cilver老师和Ravi老师制作的《VASP官方入门手册》第二篇:VASP简介、程序结构概要及教程。本教程将详细介绍VASP软件及其计算方法,帮助大家快速入门VASP计算,搞定顶刊技能!

2 VASP简介

2.1 程序结构概要

VASP.4.X 是一个 Fortran 90 程序。它允许动态内存分配和单一可执行文件,可用于任何类型的计算。

一般来说,源代码和赝势函数应位于以下目录中:

VASP/src/vasp.4.lib

VASP/src/vasp.4.X

VASP/pot/..

VASP/pot_GGA/..

VASP/potpaw/..

VASP/potpaw_GGA/..

vasp.4.lib 目录包含的源代码很少更改,更新时通常不需要重新安装该目录。不过,在将代码应用到新平台时,可能需要对 vasp.4.lib 进行重大修改。vasp.4.X 目录包含主要的 Fortran 90 代码。pot/pot GGA/(以及可能为 potpaw/ potpaw GGA/)目录分别包含(超软)赝势和投影缀加波。LDA 版本放在 pot 和 potpaw 目录中,而 GGA 版本(Perdew,Wang 1991)放在 pot GGA 和 potpaw GGA 目录中。源文件和赝势可在文件服务器上获取(见第 3.2 节)。

大多数计算将在工作目录下进行,在开始计算之前,必须在该目录下创建几个文件。最重要的输入文件如下:

INCAR POTCAR POSCAR KPOINTS

2.2 教程,第一步

如果您尚未安装 VASP,请阅读第 3.2 节。本教程中讨论的计算所需的文件可以在 VASP 文件服务器(tutor/...目录下)中找到。本地计算机上必须有 VASP 可执行文件(最好放在您的搜索路径中)。如果您对搜索路径这一词不熟悉,请停止阅读本节内容,您应该获取一本 UNIX 指南以了解更多有关 UNIX shell 环境的信息。

2.2.1 金刚石

将 tutor/diamond 目录下的所有文件复制到工作目录下,然后逐步进行:

1.以下四个文件是核心输入文件,必须存在于工作目录中才能执行 VASP。请使用编辑器检查每个文件。

INCAR 文件

INCAR 文件是 VASP 的核心输入文件。它决定 "做什么和怎么做"。它是一个带标签的自由 ASCII 文件:每行由一个标签(即字符串)、等号"="和一个或多个值组成。大多数参数都有默认值。请查看教程中提供的 INCAR 文件,它的长度可能比实际需要的要长。例如,POTCAR 文件中给出了截断能的默认值,因此 INCAR 文件中通常不需要。但在这个简单的示例中,INCAR 文件中提供了截断能值(在大多数情况下这样做可能是明智的)。

POSCAR

POSCAR 文件包含离子的位置。以金刚石为例,POSCAR 文件包含以下几行:

cubic diamond comment line

3.7 universal scaling factor

0.5 0.5 0.0 first Bravais lattice vector

0.0 0.5 0.5 second Bravais lattice vector

0.5 0.0 0.5 third Bravais lattice vector

2 number of atoms per species

direct direct or cart (only first letter is significant)

0.0 0.0 0.0 positions

0.25 0.25 0.25

这些位置可以用直接坐标(分数坐标)或笛卡尔坐标表示。在第二种情况下,位置将根据第二行提供的通用缩放因子进行缩放。晶格矢量始终按通用比例因子缩放

KPOINTS

KPOINTS 文件决定 K 点设置。

4x4x4 Comment

00 = automatic generation of k-points

Monkhorst M use Monkhorst Pack

4 4 4 grid 4x4x4

0 0 0 shift (usually 0 0 0)

第一行是注释。如果第二行等于零,则使用 Monkhorst-Pack 方法自动生成 k 点(第三行的第一个字符为 "M")。使用提供的KPOINTS文件进行计算时,会使用一个4×4×4的Monkhorst-Pack网格。

• POTCAR

POTCAR 文件包含赝势(如果有多个种类的赝势,可以使用UNIX命令cat将POTCAR文件连接起来)。POTCAR 文件还包含原子的相关信息(如原子质量、原子化合价、赝势创建时的原子参考构型能量等)。

2.键入命令运行 VASP

> vasp

同样,只有当 vasp 可执行文件位于搜索路径的某处时,该命令才能正常运行。搜索路径通常在 UNIX shell 的 PATH 变量中提供。有关详细信息,用户可参阅 UNIX 手册。

启动 VASP 后,将得到类似以下的输出结果:

VASP.4.4.3 10Jun99

POSCAR found : 1 types and 2 ions

LDA part: xc-table for CA standard interpolation

file io ok, starting setup

WARNING: wrap around errors must be expected

entering main loop

N E dE d eps ncg rms rms(c)

CG : 1 0.1209934E+02 0.120E+02 -0.175E+03 165 0.475E+02

CG : 2 -0.1644093E+02 -0.285E+02 -0.661E+01 181 0.741E+01

CG : 3 -0.2047323E+02 -0.403E+01 -0.192E+00 173 0.992E+00 0.416E+00

CG : 4 -0.2002923E+02 0.444E+00 -0.915E-01 175 0.854E+00 0.601E-01

CG : 5 -0.2002815E+02 0.107E-02 -0.268E-03 178 0.475E-01 0.955E-02

CG : 6 -0.2002815E+02 0.116E-05 -0.307E-05 119 0.728E-02

1 F= -.20028156E+02 E0= -.20028156E+02 d E =0.000000E+00 writing wavefunctions

VASP使用Pulay混合方法的自洽循环和迭代矩阵对角化方案来计算Kohn-Sham(KS)基态。每一行对应一个电子步,在每个电子步中,波函数都会被迭代改进一点,电荷密度也会被优化一次。stdout(即在屏幕上看到的内容)的副本也会写入 OSZICAR文件中。

各列的含义如下:N 列是电子迭代步骤计数,E 是当前的自由能,dE 是两步之间自由能的变化,d eps 是能带结构能量的变化。ncg 栏表示哈密顿算符应用于波函数的频率。rms 这一列给出了在所有占据带上求和的残差向量的初始范数(R = (H−εS)|φi),并且表示波函数的收敛程度。最后一栏rms(c) 表示输入和输出电荷密度之间的差值。在前五步中,密度和势能没有更新,对波函数进行预收敛(因此 rms(c) 没有显示)。前五次迭代后,开始更新电荷密度。以金刚石为例,只需要三次更新就可以获得足够精确的基态。最后一行显示的是达到收敛后的自由电子能 F。

OUTCAR文件中包含有关力和应力张量的更多信息。请查看该文件,以便了解 OUTCAR 文件中包含的信息。

另一个重要文件是 WAVECAR 文件,它存储着最终的波函数。为了加快计算速度,VASP 通常会在启动时读取该文件。在计算结束时,该文件将被写入(如果存在则被覆盖)。

3.要计算平衡晶格常数,请尝试输入 ./run。run脚本是一个简单的shell脚本,用于在不同晶格参数下运行 vasp。可以使用编辑器检查该脚本的内容。

4.确定平衡体积(例如,使用能量的二次拟合)。平衡晶格常数应接近 3.526。

5.现在,在 POSCAR 文件中设置平衡晶格常数,并将位于 0.25 0.25 0.25 的离子移动到 0.24 0.24 0.24,然后使用 VASP 将其弛豫到平衡位置。必须在INCAR文件中添加以下行(参见6.22节):

NSW = 10 ! allow 10 steps

ISIF = 2 ! relax ions only

IBRION = 2 ! use CG algorithm

设置参数以便在系统中进行最小化能量的计算过程中,VASP会沿着力的方向进行线性最小化。线性最小化需要VASP根据力的方向进行一次小试探步进,然后重新计算总能量。VASP 根据能量变化、初始力和最终力计算出最小值的位置。对于碳元素而言,自动选择的试探步进往往过大,如果在INCAR文件中设置参数POTIM,就可以使VASP以更高效的方式运行:

POTIM = 0.1 ! reduce trial step

进行此步骤,并从一个更粗糙的结构,如(0.20,0.20,0.20)作为起始结构再次进行计算。

在每个任务结束时,VASP 都会将最终位置写入 CONTCAR 文件。该文件与 POSCAR 文件格式相同,可以通过将 CONTCAR 复制到 POSCAR 并再次运行 VASP 来继续运行。

6.作为最后的练习,将 POSCAR 文件中的晶格常数改为 3.40,并将 INCAR 文件中的 ISIF 改为:

ISIF = 3 ! relax ions + volume

POTIM = 0.1 ! you need to specify POTIM as well

然后重新开始计算。如果 ISIF 设置为 3,VASP 将弛豫离子位置和晶胞体积。

不要忘记随时检查 OUTCAR 文件.

7.最终的晶格常数将相当精确(约 3.510 A)。与能量体积曲线拟合得到的晶格常数的微小差异是由于 Pulay 应力造成的(见第 7.6 节):只有在计算相对于基组完全收敛的情况下,应力张量才是正确的。解决此问题有几种可能。

8.在 INCAR 文件标准值(ENMAX=550)的基础上,将平面波截断值提高 30%。现在基组基本收敛,可以得到更精确的晶格常数结果。尝试将此设置应用于碳,并通过设置来提高电子基态计算的精确度。

EDIFF = 1E-7 ! very high accuracy required 10ˆ-7 eV

在 INCAR 文件中。从最后一次计算的 CONTCAR 文件开始(即把 CONTCAR 复制到 POSCAR)。

9.误差与结构无关,因此可以使用大的基组和小的基组分别计算一次。从平衡结构开始,采用高截断能(ENCUT=550)。应力张量应为零。

然后使用默认截断能。现在的应力为 -43 kBar。这样就可以估算出基组不完备可能造成的误差。(可以通过在INCAR文件中设置

PSTRESS=-43!Pulay stress=-43 kB

来修正弛豫,但通常最好增加ENCUT)

希望这个小例子能让您对 VASP 的工作原理有所了解。更多详细的教程可以在 VASP 研讨会的会议记录中找到(我们强烈建议所有新手一步一步地学习这些教程,可能需要几天时间,但应该会有收获)。

http://cms.mpi.univie.ac.at/vasp-workshop/slides/documentation.htm



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3