Ex2.1 VASP输入文件的基本概念

基本的输入文件,指的是VASP计算必不可少的输入文件,对新手来说先记住这四个文件的名字:INCAR,KPOINTS,POSCAR,POTCAR。具体是干嘛用的?不懂的话不要紧,后面我们会结合例子,慢慢介绍这几个文件的准备工作。

基本概念

准备输入文件, 脑子里要有下面几个概念:

  • Rubbish in,Rubbish out! 程序只负责算,对错由你决定!错误主要有3类:
  • 模型错误:建模这一块出错,主要对应的是POSCAR;
  • 计算参数:INCAR,KPOINTS,POTCAR
  • 提交任务的脚本或者命令出错。

  • 遇到不懂的参数: (思考 + 看官网) + (思考 + 看官网) + (思考 + 看官网)!重要的话说三遍: 尽量不要去看网上那些乱七八糟的教程。如果英语不好,那么这是一个锻炼你阅读能力的好机会。通过查阅官网解决问题,可以保证你的血统纯正,进而提高你的杀伤力。

  • 学会使用ChatGpt这一先进生产力,如果网站上或者日常工作中有什么疑问,可以直接跟GPT对话然后得到答案。

  • 所有的输入文件都只是文本文件。这句话的意思是:所有的输入文件都可以通过文本编辑器打开,比如:Linux下面可以用Vim; Windows下用Notepad++; 还是那句话:Windows用户记得用dos2unix这个命令。

  • 所有的输入文本没有尾缀,Windows用户可能习惯了带各种各样尾缀的文件,比如bigbro.txt, bigbro.pptx. 但是vasp里面的输入文件,没有尾缀且都是文本。 比如你使用Notepad++这个文本编辑器写了一个输入文件,直接并保存成INCAR就可以了。如果不小心保存成了 INCAR.txt,那么直接将尾缀.txt删除即可,也可以通过命令mv INCAR.txt INCAR.

  • 再次强调: Windows用户使用Notepad++作为编辑器。这是一款免费的强大软件,大家自己下载并安装。 请不要用写字板,记事本等编辑VASP的输入文件。如果你不听话,还是喜欢用它们,那么:

  • 记得出错时,第一个想到使用dos2unix这个命令来解决: 也就是在提交任务前,用:dos2linux 这个命令转换下格式
  • 对自己的错误负责,有时候你会死的很惨,折腾很久可能都找不到哪里出问题,还会被老师骂;

  • 一步一步按照本书的练习进行操作,有问题,先记下来,后面可能自然而然就了解了。

VASP输入和输出文件

  • 有了上面的概念,我们就可以准备输入文件了。下面是官网列出VASP的输入和输出文件,in 代表输入,out代表输出。

先声明一下: 1) 大家不要被下面这么多文件吓傻了,脑子里有个印象就行,很多文件可能穷奇你一生的计算都用不到,而且你以后会花很多时间在删这些乱七八糟的文件上面。 2) 对于新手的话,先简单过目一下即可。可以理解为,从未开过车的你,一下子钻到车里,首先要做的就是熟悉车内部的环境,具体什么功能、怎么回事,后面慢慢摸索。

INCAR      in    **
STOPCAR    in
stout      out
POTCAR     in     **
KPOINTS    in     **
IBZKPT     out
POSCAR     in     **
CONTCAR    out
CHGCAR     in/out
CHG        out
WAVECAR    in/out
TMPCAR     in/out
EIGENVAL   out
DOSCAR     out
PROCAR     out
OSZICAR    out
PCDAT      out
XDATCAR    out
LOCPOT     out
ELFCAR     out
PROOUT     out
  • 对于VASP计算来说,前面这一大堆中的 INCAR , KPOINTS, POSCAR 和POTCAR 是必不可少的输入文件,必须有!

  • INCAR 告诉VASP算什么,怎么算, 可以理解为:开车去哪里,走什么路?

  • KPOINTS 包含计算的K点信息(K点是什么,这个问题很抽象,脑子里先记住,计算的时候必须有这个东西)。VASP中也可以在INCAR中设置KPOINTS。但在涉及到计算能带的特殊K点时候,INCAR中就不可以直接设置了。所以,在本书中,KPOINTS是认为必须有的。请不要再纠结这个问题,也不要专门找我争论这个问题。如果你认为可以没有,那就是可以没有。至少本书中,我们会介绍KPOINTS文件的准备工作。
  • POSCAR是计算模型结构的文字描述,也就是周期性体系的描述,各个原子在xyz方向的坐标信息,后面我们会有专门针对于模型搭建的相关章节。
  • POTCAR对应的是计算过程中每个原子的平面波基组,描述体系中对应的原子核和电子的相关信息。
  • 除了VASP本身的输入文件外,另一个必须要准备的是提交任务的脚本或者命令,没有在列表里面。这个需要你去联系服务器管理员,或者自己照猫画虎写一个。

相关的脚本

刚接触计算,肯定很多人听说过用脚本可以节省很多的时间。但是对于新手来说,大师兄推荐的是先学习自己写输入文件,了解参数的具体功能,然后尝试着学习bash或者Python语言写脚本,进而去实现针对自己特定需求的脚本。Github,视频网站,公众号里面或其他网站上都有各种各样的脚本,在自己不懂得参数具体含义的情况下,贸然使用他人的脚本,是非常不理智的行为。一方面脚本可能很老了,有些甚至是针对于VASP4.X版本的,最新的VASP已经出到6.4版本了。另一方面,别人脚本可能也会有错误,这里的错误指的是不适合你的体系。

所以,对于脚本来说,我们不要着急,后面会一步一步的讲解。当下需要做的就是踏踏实实学习这些基本输入文件的制作过程。