在VASP里,POTCAR不是可有可无的辅助文件,而是必需输入文件之一。它保存的是每一种原子对应的赝势信息,而且多元素体系下,POTCAR里各元素的排列顺序必须和POSCAR里的元素顺序一致;如果把顺序拼错,计算虽然有时还能跑起来,但结果解释会直接出问题。VASP官方Wiki也特别提醒过,POTCAR的内容属于只读,不建议手工改写。
一、VASP POTCAR怎么生成
POTCAR的生成思路其实很直接。单元素体系就是把对应元素的POTCAR拷到工作目录,多元素体系则把各元素的POTCAR按POSCAR里的元素顺序拼接成一个总POTCAR。VASP官方给出的标准示例就是用`cat`依次拼接不同元素的POTCAR文件。
1、先确认这次要用哪一套赝势
开始之前先把要用的势函数版本定清,比如标准势、带半芯态的_sv或_pv版本。官方建议通常优先选推荐的POTCAR,并根据你关心的物理量自行做测试,不要只图省事随便换。
2、单元素体系直接复制
如果结构里只有一种元素,官方给出的做法就是把该元素目录下的POTCAR直接复制到当前工作目录,例如把某个元素的POTCAR拷成当前目录里的`POTCAR`。这样做最简单,也不涉及顺序问题。
3、多元素体系按顺序拼接
如果结构里有多种元素,就要把这些元素对应的POTCAR文件依次拼接。官方示例明确写了类似
`cat/path/to/pot/Al/POTCAR/path/to/pot/C/POTCAR/path/to/pot/H/POTCAR>POTCAR`
这样的命令。关键不在命令本身,而在拼接顺序必须和POSCAR一致。
4、不要混用不同XC家族
VASP Wiki还明确提醒,多元素拼接时不要把不同XC类型的POTCAR混在一起。也就是说,如果你整体打算做一套PBE计算,就不要把某个元素临时换成别的XC家族势函数直接拼进去。
二、VASP POTCAR元素顺序怎么核对
顺序核对这件事,不是跑前随便看一眼就够,而是要把POSCAR和POTCAR两边对上。VASP官方对POSCAR的定义很清楚,元素名这一行和元素个数这一行共同决定了物种顺序;而POTCAR页面也明确说明,POTCAR里的赝势排列必须与POSCAR相同。
1、先看POSCAR元素行
POSCAR里元素名这一行就是最直接的核对起点。官方文档写得很明白,这一行列出的species names,其顺序应与POTCAR中各元素的顺序一致。比如POSCAR写的是`B N`,那POTCAR就必须先是B的势,再是N的势。
2、再看POTCAR头部的TITEL
POTCAR官方页面说明,每个势文件开头都有`TITEL`信息,用来标识具体的赝势名称和版本。多元素拼接后的总POTCAR里,每一段势文件都会带自己的TITEL,所以核对时可以顺着TITEL一段一段看,确认元素排列有没有和POSCAR对上。
3、拼接顺序以POSCAR为准,不以化学式习惯为准
这是最容易出错的地方。很多人会按自己习惯的化学式顺序去拼,比如先Ti再O,但如果POSCAR里元素行写的是`O Ti`,那POTCAR也必须先O后Ti。官方在Preparing a POTCAR页面里反复强调的就是这一点。
4、把元素名写进POSCAR更稳
VASP官方还专门提醒,如果POSCAR里给出了species names,而顺序和POTCAR不匹配,运行时会打印warning,虽然VASP仍可能继续跑,但至少你能及时发现问题。也正因为这样,实际准备输入文件时,最好不要省掉POSCAR的元素名这一行。
三、VASP POTCAR检查点怎么收
真正能少出错的,不是记住一条命令,而是把检查动作固定下来。先看POSCAR元素顺序,再拼POTCAR,拼完再回头核对TITEL,这样比只凭记忆操作稳很多。VASP官方给出的几条提示,其实已经把最常见的坑都点出来了。
1、先定元素顺序再拼文件
不要一边翻POSCAR一边临时拼,先把元素顺序写清,再去执行拼接命令,错误会少很多。这个习惯最适合多元素、合金和掺杂体系。
2、拼完先核对TITEL顺序
总POTCAR生成后,不要急着提交任务,先顺着各段TITEL看一遍,确认元素和势函数版本都对。这样既能查顺序,也能顺手查是不是拼错了_sv、_pv或普通势。
3、POSCAR里的元素名不要省
官方已经明确说了,给出species names可以让顺序错位时触发warning。对日常算例来说,这一步几乎没有额外成本,但能明显减少低级错误。
4、不同XC家族不要混拼
只要体系里是多元素,就更要养成这个检查习惯。拼接前先确认这几种势是不是来自同一XC家族,能省掉后面很多不必要的返工。
总结
VASP POTCAR怎么生成,核心就是单元素直接复制,多元素按POSCAR元素顺序拼接成一个总POTCAR。VASP POTCAR元素顺序怎么核对,最稳的办法则是先看POSCAR元素行,再看总POTCAR里的TITEL顺序,同时把元素名明确写进POSCAR,让VASP在顺序不匹配时帮你给出warning。把这几步固定下来,POTCAR这类最基础也最容易忽略的输入错误,通常会少很多。