本文总阅读量
文章目录
  1. 1. 回顾
  2. 2. 批量处理
    1. 2.1. 大家常用的测试方法
    2. 2.2. Linux里面的一些基本命令
  3. 3. 总结

回顾

前面一节大家已经学习了怎么制作文本格式的输入文件。回顾一下我们所学的东西:

  • VASP必须有的输入文件都有哪些? INCAR、KPOINTS、POSCAR、POTCAR

  • 这些文件用什么编辑器修改或者制作?

  • 文本内部格式都有哪些需要的注意事项?
  • 目前学到的INCAR中各个参数代表的含义?
  • KPOINTS, POSCAR文本中每一行所代表的含义?
  • POTCAR中几个参数的含义。

批量处理

在提交VASP任务之前,我们先学习一下在Linux系统中常用的批量处理任务文件的办法。本书的宗旨是:稳中求快,欲速则不达。因此,不是所谓的速成教材,更不是10分钟学会XXX的理想手册。每一节的内容,都需要认真阅读,亲自上手操作练习。如果耐不住性子,请放弃本书的学习。而大师兄VASP多年的经验告诉我,批量处理在新手学习上有着非常重要的作用,因为很多参数他们不知道怎么去选择,但是,这种情况其实很好处理,只需要测试下就可以了。

大家常用的测试方法

在VASP官网上,亦或者百度里面搜索的VASP教程里面,你可以找到很多个测试参数的小脚本,大部分都是这样的:参考链接:https://cms.mpi.univie.ac.at/wiki/index.php/Cd_Si

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
BIN=/path/to/your/vasp/executable
rm WAVECAR SUMMARY.dia
for i in 5.1 5.2 5.3 5.4 5.5 5.6 5.7 ; do
cat >POSCAR <<!
cubic diamond
$i
0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
2
Direct
-0.125 -0.125 -0.125
0.125 0.125 0.125
!
echo "a= $i" ; mpirun -n 2 $BIN
E=`awk '/F=/ {print $0}' OSZICAR` ; echo $i $E >>SUMMARY.dia
done
cat SUMMARY.dia

然而,很多新手对linux的基本命令还不是很熟悉,更不用说脚本了。由于对于本书所默认的Linux基础为0的读者来说,上面的脚本会有些难度。因此,本节需要学习在linux系统下(确切点是在一个Terminal,终端里),一些基本的命令以及大师兄本人常用的批量处理任务文件的一个办法。

这时候你要问了,师兄,你的这个方法和VASP官网中的那个比起来,哪个更好啊?

其实本质是一样的。只是操作思路稍微有些区别。这个没有最好的,要根据你所要达到的目标,目前对程序的理解水平来定的。但是,你必须要学会一种,一个好的开始对于大家的后程发力和高效解决日常任务非常重要。

Linux里面的一些基本命令

首先:教给大家常用的查看(进入)目录,查看文件的几个相关的命令: ls, cat,和 grep。

通过这几个命令复习并查看上一节我们制作的输入文件: INCAR, KPOINTS, POSCAR 和POTCAR。

大师兄在超算中心的一些具体的基本操作。大家可以照着命令自己练习下面的几个命令。先敲一遍,看下输出结果。(老司机自动跳过)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[iciq-lq@ln3%th2 ~]$ ls
bin LVASPTHW
[iciq-lq@ln3%th2 ~]$ cd LVASPTHW/
[iciq-lq@ln3%th2 LVASPTHW]$ ls
ex01
[iciq-lq@ln3%th2 LVASPTHW]$ cd ex01/
[iciq-lq@ln3%th2 ex01]$ ls
INCAR KPOINTS POSCAR POTCAR
[iciq-lq@ln3%th2 ex01]$ pwd
/THFS/home/iciq-lq/LVASPTHW/ex01
[iciq-lq@ln3%th2 ex01]$
[iciq-lq@ln3%th2 ex01]$ cat INCAR
SYSTEM = O atom
ISMEAR = 0
SIGMA = 0.01
[iciq-lq@ln3%th2 ex01]$ cat KPOINTS
K-POINTS
0
Gamma
1 1 1
0 0 0
[iciq-lq@ln3%th2 ex01]$ cat POSCAR
O atom in a box
1.0
8.0 0.0 0.0
0.0 8.0 0.0
0.0 0.0 8.0
O
1
Cartesian
0 0 0 #
[iciq-lq@ln3%th2 ex01]$
[iciq-lq@ln3%th2 ex01]$ grep TIT POTCAR
TITEL = PAW_PBE O 08Apr2002
[iciq-lq@ln3%th2 ex01]$
[iciq-lq@ln3%th2 ex01]$ grep EMAX POTCAR
[iciq-lq@ln3%th2 ex01]$ grep ENMAX POTCAR
ENMAX = 400.000; ENMIN = 300.000 eV
[iciq-lq@ln3%th2 ex01]$

详解:

1) ls 命令:列出来当前目录下的所有文件和文件夹;

2) cd: 进入文件夹所在的目录;

3) pwd:显示当前所在的绝对目录。

4) cat 后面加上文件名,就可以在输出里面查看该文件的内容:cat 和文件名之间有空格, 可以是一个,也可以是N个。(上一节,我们也提到使用cat命令来生成VASP的POTCAR)

5) 对于一个大文件来说,里面有很多行, 用cat就不方便查看了, 我们可以用grep这个命令提取出来所需要的信息,比如上一节的POTCAR文件,复习下上节的操作:

  • 例子1:我们想知道POTCAR中包含的元素,可以用: grep TIT POTCAR ,

TIT就是POTCAR中的一个固定的字符,通过提取这个字符,获取我们需要的结果,这里我们知道了 POTCAR中含有O元素;

  • 例子2:通过使用:grep ENMAX POTCAR 可以获取POTCAR中O元素的截断能是400 eV;

  • 注意:grep 后面提取的字符,最好在文件中是唯一存在的或者只出现几次。否则我们不容易得到期望的结果; 大家可以运行下面这两个命令,感受下结果;

1
2
3
grep EMAX POTCAR
grep PBE POTCAR
grep 0 POTCAR (可以是0,也可以是字母O)

6) 查看文件的命令还有 more,例如下面的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[iciq-lq@ln3%th2 ex01]$ ls
INCAR KPOINTS POSCAR POTCAR
[iciq-lq@ln3%th2 ex01]$
[iciq-lq@ln3%th2 ex01]$ more INCAR
SYSTEM = O atom
ISMEAR = 0
SIGMA = 0.01
[iciq-lq@ln3%th2 ex01]$ more POSCAR
O atom in a box
1.0
8.0 0.0 0.0
0.0 8.0 0.0
0.0 0.0 8.0
O
1
Cartesian
0 0 0 #
[iciq-lq@ln3%th2 ex01]$

7) 或者less, 运行less 命令 后,会显示文件的内容,

  • 如果要退出 敲一下 q 键即可;

  • 如果想编辑文件,再敲一下键盘上的v键,则可以直接进入vim 的编辑界面。退出时和vim的退出方法是一样的。

总结

本节的内容虽名为详解,实为简介!如果想学的更加深入还要靠自己百度查找相关的Linux命令学习手册,ppt等,平时多加操练。但,请不要让我推荐参考书给你。百度搜索关键词: Linux命令 即可。到现在,我们讲到的Linux基本命令有: ls,cd,pwd,cat,grep,more,less 以及vim 这个编辑器。如何才能圆满达到本节的要求呢?

1) 熟练操作使用这些命令;

2) 搜索百度,尝试一些教程相关的学习;

3) 养成遇到不会的命令,就自己主动认真搜索学习的习惯。

文章目录
  1. 1. 回顾
  2. 2. 批量处理
    1. 2.1. 大家常用的测试方法
    2. 2.2. Linux里面的一些基本命令
  3. 3. 总结
/* */