前言
今天打算跟着大师兄在VASP上泡一下上面的示例,以便加深印象。
正文
了解VRHFIN, LEXCH,TITEL,ZVAL,ENMAX 几个参数的意义:
- VRHFIN 用来看元素的价电子排布,如果你元素周期表倒背如流,可以忽略这个参数;
- LEXCH 表示这个POTCAR对应的是GGA-PBE泛函;如果INCAR中不设定泛函,则默认通过这个参数来设定。
- TITEL 就不用说了,指的是哪个元素,以及POTCAR发布的时间; ZVAL 指的是实际上POTCAR中价电子的数目,尤其是做Bader电荷分析的时候,极其重要。
- ENMAX 代表默认的截断能。与INCAR中的ENCUT这个参数相关。
学会利用 grep
命令:
$ ls Fe*
Fe:
POTCAR PSCTR
Fe_GW:
POTCAR PSCTR
Fe_pv:
POTCAR PSCTR
Fe_sv:
POTCAR PSCTR
Fe_sv_GW:
POTCAR PSCTR
$ grep ZVAL Fe*/POTCAR
Fe/POTCAR: POMASS = 55.847; ZVAL = 8.000 mass and valenz
Fe_GW/POTCAR: POMASS = 55.847; ZVAL = 8.000 mass and valenz
Fe_pv/POTCAR: POMASS = 55.847; ZVAL = 14.000 mass and valenz
Fe_sv/POTCAR: POMASS = 55.847; ZVAL = 16.000 mass and valenz
Fe_sv_GW/POTCAR: POMASS = 55.847; ZVAL = 16.000 mass and valenz
$ grep ENMAX Ge*/POTCAR
Ge/POTCAR: ENMAX = 173.807; ENMIN = 130.355 eV
Ge_d/POTCAR: ENMAX = 310.294; ENMIN = 232.720 eV
Ge_d_GW/POTCAR: ENMAX = 375.434; ENMIN = 281.576 eV
Ge_GW/POTCAR: ENMAX = 173.807; ENMIN = 130.355 eV
Ge_h/POTCAR: ENMAX = 410.425; ENMIN = 307.818 eV
Ge_sv_GW/POTCAR: ENMAX = 410.425; ENMIN = 307.818 eV
根据官网 确定需要元素的ENMAX .
将多个元素弄到一起称一个POTCAR的方法
cat ~/Potentials/PBE/potpaw_PBE.52/Al/POTCAR ~/Potentials/PBE/potpaw_PBE.52/C/POTCAR ~/Potentials/PBE/potpaw_PBE.52/H/POTCAR >POTCAR
初步了解:Fe_sv,Fe_pv, Ge_d, Ge_gw,C_s, C_h 这些标记的含义:
- 根据价电子的处理方式,分成了诸如:Fe,Fe_pv,Fe_sv的这样的情况。v是valence的缩写。pv代表把内层的p电子作为价电子来处理。sv代表则是把更内层的s电子也作为价电子来处理。具体到自己体系中的元素,可以结合元素周期表,以及ZVAL关键词所对应的价电子数目,来进行推断。
相关的参考资料:
Vim使用练习:自己搜资料学习,百度里面很多,学会怎么输入,保存。
POSCAR1 POSCAR2 POTCAR1 POTCAR2 ISMEAR1 ISMEAR2
Linux基础语法:
-
循环和输出
$for i in {2..9}; do cp 0.01 0.0$i -r ; done $for i in ${seq 8 2 16}; $echo{1..100}
-
sed命令修改INCAR
$ sed '3,5s/0.01/0.02/g' INCAR > INCAR_new $ mv INCAR_new INCAR $ cp INCAR INCAR_back $ sed -i '3s/0.01/0.02/g' INCAR $ for i in {2..9}; do sed -i "3s/0.05/$i/g" $i/INCAR ; done $ abc=bigbro $ echo '$abc' $ $abc $ echo "$abc" $ bigbro > sed –i 是sed 的命令和其附加选项, -i 表示直接对源文件进行编辑,也就是说编辑之后源文件被新文件替换掉。因此,使用这个参数的时候要小心,小心,再小心。要格外小心!!!保险一点的办法是先备份
这里我们用的是双引号 “ “ ,sed 命令中你会见到大部分都用单引号 ‘ ‘ 。但如果这里使用单引号,则所有的 0.01 都会被替换成 $i (单引号中的$i 是纯字符),因为单引号中的所有内容都会被当做字符来处理,也就是里面是什么就输出什么。使用双引号,则可以读取变量 $i 的值,
- 附 sed命令 详解