Ex00 为什么是"The Hard Way"

在学习本书时,大师兄们会默认读者掌握了一些基本的电脑操作技能,以及化学的基本常识(结构化学,物理化学等)。本章列举出一些常用的计算工具和软件,以及假设大家掌握的一些技能。如果没有达到基本的要求,那么请在学习前面几章的同时,抓紧提升自己的能力。 化学的基本知识如果没有掌握,不建议学习本书。

1 心态

主动行动、思考

学习过程中要时刻抱着主动的心态去解决问题。

  • 遇到不会的问题,主动去查找解决方法;
  • 遇到不懂的基础知识,主动去找教科书;
  • 遇到什么好的资源,书籍,课件等,主动去网上搜索,下载;
  • 本书中的练习,看到别人有意思的计算,主动去重复重复。
  • 没事就主动去官网溜达,
  • VASP计算出错,主动去google或者官网的论坛找答案!

注意

  • 上面说的主动是对于你自己来说的,别碰到不会的就主动求助别人,这样你很难得到提升。
  • 去google搜索遇到的问题,也就意味着你要学会科学上网。
  • 如果遇到热心帮你解决问题的人,好好准备你的问题,千万不要一个劲的追问,因为这样显得你不动脑子,非常惹人烦。

2 操作系统

做计算,有三个操作系统可以选择:

  • Windows 系统:会使用Windows系统:会开机,打字,安装软件;

  • Linux 系统,强烈推荐,大师兄本人一直用的是Ubuntu,但不局限于Ubuntu系统,自己喜欢什么就用什么。

  • Mac系统,兼顾Windows和Linux,一般比较贵,经济条件允许,也可以。

给重点照顾对象:Windows用户的第一个提醒:

Windows用户在进行计算的时候,只要计算出错了,就要本能地记起第一个解决的办法: dos2unix 。 这个命令干什么的不要紧,先死死记住即可。

3 文本编辑工具

文本编辑工具主要用来编辑,查看VASP的输入(出)文件,要求会打开文件,打字,保存文件。

1)vim

这个必须要学会,linux下面自带。原因是绝大多数的计算都是在linux下面进行的,学会vim的基本操作可以极大提高你的文字处理能力和工作效率。关于VIM的使用介绍,自己百度下或者搜一搜相关的视频,学习下。

2) notepad++

  • 这个是对于Windows用户来说的,要求会创建文件,输入内容并保存文件,这个软件或者类似的必须学会使用!

原因在于:Windows下面自带的记事本保存的文件与linux下的文件格式不匹配,提交任务的时候经常出问题,用notepad++则不会出现这个问题。

因此,Windows的记事本杜绝使用。为了安全,即使用了notepad++,Windows用户在进行计算的时候,也需要注意下面两点:

  • Windows下面编辑的输入文件,如果想在linux服务器上运行,最好先执行: dos2unix 这个命令。

    1
    dos2unix  INCAR
  • Windows用户计算出错了,一定要首先想到 dos2linux 这个命令来解决问题!!!

3) Atom

这个Atom是文本编辑工具,不是原子的意思。Windows,Linux,Mac系统均可使用。

4 常用建模相关软件:

本书默认大家已经在自己的电脑里安装了下面三个软件:

1) Material Studio

  • 这个软件,百度里面一大堆下载链接,安装教程,大家自行下载安装即可。
  • 本书默认大家已经安装成功,会不会使用暂且不要求;
  • 不要问我从哪里下载,安装出现问题也不要找我解决。

2)**VESTA**

来自日本的良心软件,Linux,Windows,Mac系统均可使用。链接:http://jp-minerals.org/vesta/en/

  • Windows下面安装就不再介绍了,下载程序,解压,双击图标即可运行,相信大家都能搞定。

  • Linux下安装:

    • 下载binary程序文件,本人解压后放到了/opt/VESTA-x86_64目录

    • 编辑 ~/.bashrc 文件,在文件最后,添加下面2行。

    1
    2
    export VESTA=/opt/VESTA-x86_64 
    export PATH="$PATH:$VESTA"
    • 在终端里面进行的操作如下:第一行打开/.bashrc文件, 自己添加上面提到的两行即可,第二行更新下/bashrc文件,第三行运行VESTA。
    1
    2
    3
    $ vim ~/.bashrc
    $ . ~/.bashrc
    $ VESTA

3)p4vasp

  • Windows版本,好像很久没有更新了,点击此处下载,解压,双击图标即可运行。也可以在大师兄QQ群或者其他QQ群文件中下载。

  • Linux版本功能更加强大。可以

    Ubuntu(18以及更老的版本)用户使用命令一键安装: sudo apt-get install p4vasp

    Ubuntu 20以及后续的安装有些麻烦。p4vasp已经不更新了,很多功能可以用其他的软件替代。如果坚持使用p4vasp,可以联系大师兄付费安装(50块钱)。

4) ASE

ASE 是Atomic Simulation Environment的缩写,可以实现搭建结构,读取VASP的输入和输出,以及一些后处理功能。如果p4vasp没办法安装,那么ASE必须要安装在你的电脑上。

5)其他软件

这里说的软件主要是针对VASP计算的模型搭建这一方面,有兴趣的也可以试试Avogadro. 值得一提的是,我们自己的国产建模软件那是相当得少,更别提计算软件了。而我们比较擅长的是写教程和后处理,然后发公众号割韭菜。

5 服务器相关

VASP的计算就跟开车一样,设计到很多的内容,比如大街上的路怎么铺的?桥怎么建的?发动机怎么工作的?方向盘怎么工作的,刹车片什么材料做的?车身颜色怎么喷的? 没有人会懂所有相关的知识。但是怎么打开车门,坐车里,启动发动机,踩油门,打方向盘,这是本教程所关心的,也就是类似驾校教练指导你学会如何开车,而不是关系如何去造车,去铺路。这里的车就是VASP。其他相关的不做详细介绍。

1) 知道怎么连接自己组内或者租赁的服务器;

2) 初步学习使用基本的linux命令:

  • 进入目录 : cd

  • 移动文件(夹): mv

  • 复制文件: cp

  • 复制文件夹用: cp -r ; 注意 cp 和 -r 之间有个或者N个空格

  • 创建文件夹:mkdir

  • 删除文件: rm ;

  • 删除文件夹: rm -r

  • 强制删除文件夹: rm -fr 或者 rm -rf (f 和 r 的顺序可以颠倒 )

  • 显示目录下文件: ls 等命令;

  • 这里大师兄就不再啰嗦了,后面教程里会介绍一些命令的使用,老司机们自动略过,新手自行百度:linux 命令,你会得到铺天盖地的信息。

3) 手上有可以正常运行的VASP程序

  • 组里面已经安装好vasp程序,或者使用超算中心的VASP程序,只要手上有可以正常运行的VASP即可。因为我们在本书里,不讨论

    • 去哪里下载VASP? 怎么安装VASP? 去哪里下载VASP的pseudo potentials?
    • 前面的问题可以在QQ群里面讨论,也可以付费求助别人解决。
    • 对于VASP的pseudo potentials,也就是POTCAR。
      • 你老板买了VASP的版权,就直接问他要。
      • 用的盗版VASP,找其他人要一份,但是发文章的时候会很麻烦。国内很多人都是找有版权的老师挂名,其实这是非常学术不道德的事情。一方面涉及到版权,一方面涉及到瞎几把挂名。
      • 免费的可以用QE,CP2K,GPAW等开源的软件,没必要非得在VASP上面死磕。
  • 知道怎么提交VASP任务?

    • 自己组里都有提交任务的脚本,如果没有的话,
        1. 找组里的师兄师姐帮忙;
      1. 第一个啃螃蟹的人,找老师解决,求助服务器商,求助超算管理员;
      2. 自行动手解决。

6 程序语言学习

建议大家学习两个语言: bash 和 python。主要是为了辅助计算,节省时间,并拓展自己的思维方式。

  • bash语言:日常terminal里面常用的基本命令,比如cd,ls这些,以及结合基本的逻辑语法,可以让你写出一些简单的小脚本,提高自己的工作效率;
  • Python 语言:python是一款语法简单,很容易上手的程序,有着丰富的数据库支持,目前深受科研人员的喜爱。注意,这里我们不讨论类似:python是一门高级语言,运行的时候跟机器交互性差,需要时间比C++长这样的问题。因为这是专业程序员的事。不出意外,看这本书的大部分人,能够用python写个小脚本,方便地处理自己的任务和数据,就已经非常棒了,快和慢,对于我们来说,顶死了也就几秒的问题,完全可以接受。
  • 学习程序语言,一方面可以极大地提高自己的工作效率,另一方面也可以改变自己看待事物的思维方式。
  • 如果不喜欢Python,当然也可以学习其他的程序语言,C++,R等。

7 吐槽

速成思想,快餐文化害死人,图快的读者中,就有很多来自做实验的。现在大家普遍认为:实验+计算很好发文章。两者结合可以更深入地理解你的研究体系,发现并解决科研中有价值的科学问题。但很多老师却感觉计算就是动动鼠标,操作个软件的活,是个人就能做计算似的。在这种错误的理解,对计算难度过分低估,在高IF文章的诱惑下,安(suan)排(ji)自己的学生去搞计算。写到这里,很多脏话硬生生从嗓子眼憋回去了。骂是解决不了问题的。那么我们就理一理,一个实验的课题组,在没有任何计算背景的条件下,安(Po)排(Hai)一个学生做计算所遇到的问题吧:

  • 计算软件的选择:大千世界无奇不有,计算的软件也是多得数不过来,每个软件都有自己适用的体系,哪个更适合你的体系,你不会选择;

  • 软件的购买:比如你决定了使用VASP,你需要找代理商购买软件(有些还很贵,舍不得买,用盗版的,发文章的时候还担心版权问题);

  • 服务器的购买:买了软件我们要安装啊。你可能说,这个容易,直接买几台电脑装上就可以了。这里的问题在于:用台电脑就可以算,就可以发文章的时代造就过去了,你可能被淘汰十几年了。所以,

    • 要买服务器,但服务器价格不菲,怎么选你也不知道;
    • 不买服务器,可以买超算中心的机时啊。好吧,就当这一关也过了。
  • 软件安装:这也是个麻烦事。计算软件不是QQ,也不是360安全卫士,不是你下载个exe文件双击选择d盘就可以傻瓜式安装成功的。各种环境变量,依赖的库都是需要自己安装的。要不然那么多培训班上来就先给大家介绍软件是怎么安装的呢。

  • 熟悉Linux系统:计算软件大部分都是在Linux系统下安装的,所以Linux系统的一些常用命令操作你得学会;而Linux的桌面之所以不如Windows,用户习惯是个难以突破的瓶颈,在没人陪伴的情况下,自己熟练Linux系统也是非常不易;

  • 软件学习:这也是本书的重点,纯做计算的菜鸟,每天屁活都不干,就看本书,Linux系统下操练,有人指导的情况下差不多2个月能入门。对号入座,你一个做实验的,每天捣鼓设备,转转反应,就快累的嗝屁了,恨不得回到家或者宿舍就躺着歇会,还要跟朋友出去嗨,陪对象逛,当然还要玩把王者农药。真的能抽出时间来认真学习么?

  • 有些体系对软件参数依赖性很强,没人指导,你不会设置,软件出错不会解决,计算结果不会分析,算对算错都不知道,迷迷糊糊就这样得到了一些结果。

  • 计算的目的,肯定要跟实验对比啊?怎么对比,从哪方面下手,又没头绪,很多时候都是硬凑,结论反了也傻呵呵地跟别人说实验和理论吻合地很好,可以冲个大文章。

  • 折腾完了,要投文章了。因为计算太烂,XJB乱扯结论而被直接拒掉的又有一批;

  • 好不容易送审了, 最好去烧烧香,祈求不要落到做计算的人手里。真落到计算的人手里,算的太烂,也是很有可能因此丧命或者大修。

  • 就当你运气好,大修了。审稿人抛出来的专业计算问题你可能又答不上来,怎么补数据都无从下手。

  • 让你再幸运一把,补上数据,文章接受了。

  • 那下一篇还这样弄么? 可以,但经过上面的折腾,小硕士估计要毕业了,小博士也要滚蛋了。又得找下一个垫背的,也就是因为这样,上一批的不知对和错的经验就传授给了下一代。

  • 总结:一个做实验的老师,不把自己在实验方面的专长传授给自己的学生,硬让人家自己去琢磨你什么都不懂的领域,最后造就了一个四不像的怪物出来,何为师道?

这种情况到底怎么办? 很多人在的课题组都是做实验的,老板头脑发热的时候,就安排做起了计算。但老板除了一颗乐观的心,屁都不懂啊。这时候的你,除非脑子很好用,否则就会陷入一种叫天天不应,叫地地不灵的境界。在这里,大师兄建议你:

  • 说服老板,找个计算靠谱的组,合作一下,避免自己直接算,自己专心做实验,计算可以跟国内相关领域的老师合作一下,各取所长。
  • 说服不了,找个计算靠谱的组,让老板派你去交流学习一段时间,别自己在那里瞎捣鼓。
  • 认真学习本书,看VASP的手册,以及各种网站上的教程,先摸索一阵子再算老板给你的体系。
  • 总之,时间和精力的成本,自己心里要有个数。

在这里还要吐槽2点:

  • 有些做实验的跟计算合作,挂名的时候把计算放到不起眼位置的人,随意挪动计算作者的顺序,甚至是放到了通讯位置上,但没加*。生活不易,给做计算的留条活口,也给自己留个好名声。
  • 有些跟实验合作的计算工作者,随随便便优化个结构,做个漂亮的图就完事。只做锦上添花工作,而不深入研究课题机理。做计算的日子本来就难,请不要因为自己的不专业坏了计算的名声。
  • 如果想合作,就双方正儿八经地合作,真正意义的合作至少是通过计算解决了课题中的难点,机理,有助于组里课题的下一步进行,更高级点是实验验证了计算的假设,不过能做到这种程度的也没多少课题组。而对于这种良性的合作,实验和计算都给挂个一作,双方老板都挂个通讯,也无可厚非。
  • 不想合作,非让自己的学生做计算。这种情况就不要怕花钱,派学生到做计算的课题组学习上一两个月,然后再回来继续搞。如果有需要,也可以派出去参加参加一些高质量的培训班,暑期学校等,来弥补自己在学生指导方面的不足。

虽然书名叫The hard Way,这本书还是给了很多人一种DFT极品快餐的感觉;更会越来越”毁了”专业做计算的,让各种做实验的做计算的扰乱市场。虽然有这种负面的作用,但我还是想尽自己可能,稍微提高我们做计算的平均水平。因此,认真声明一下:本教程的初衷是给专门做计算菜鸟准备的。对于那些以为靠本书就可以快速入门的筒子们(不管是做计算还是做实验的),劝你们还是趁早放弃本书的学习,科研的路上,从来就没有速成二字。

8 计算 = 转行?

  • 很多人吐槽计算化学是个坑告诉你,既然选择了这条路,就准备改行吧。请避开这些负能量的说法,拿出自己的主见。无论放弃或者坚持,都要拿出你自己的判断力出来,请不要再听别人在你耳边瞎磨。也就是我的人生我做主。
  • 每一行的人都会说自己这一行是个坑,不管你怎么跳,都是坑。引用我老婆的原话:之前带两个孩子的时候,感觉自己每天都很累,现在孩子父母帮忙看着,自己工作了,但每天还是很累。美好的生活,累总是一路同行。
  • 个人的理解是,学习理论计算可以使你的视野更加开阔,思维方式更加灵活,对事物本质的把握和理解上,比别人要更胜一筹。也就是一眼就能找到问题的关键所在。不论是否继续相关的研究,转行与否,对今后的发展总会有所帮助。当然,我这个穷酸书生说的话,大家也可以一笑了之。

总结:

  • 初学者学习本书,所必须具有的技能:

    • 熟练使用一个操作系统;
    • 会编辑文本,写入和保存文件;
      • Windows 用户Notepad++必须掌握,
      • linux用户可以vim或者其他编辑器,比如Atom
    • 安装好或者会初步使用一款建模软件。-
      • **p4vasp **安装在Windows和Ubuntu系统上;
      • VESTA 安装在Windows,Ubuntu,Mac系统上;
      • Materials Studio 安装在Windows上。
    • 会连接服务器,使用的vasp程序并且会提交任务
      • 这个大师兄帮不了你,自行找服务器商或者其他售后人员解决。
  • 所具有的心态:

    • 主动去面对遇到的问题和困难,冰冻三尺,非一日之寒,遇到问题,主动解决,日积月累就会收获良多;
    • 对自己要有自信,即使自己是彻头彻底的小白,也不必要担心。相对于那些积累了很多错误经验的人来说,什么都不知道则具有更好的可塑性。
    • 不要盲目相信他人,有自己的理解。如果你在网上搜索问题的答案,会找到很多人的回答,但实际熵很多人水平都可能没有你高,而你却把他们的话当成真理一般去相信,这是致命的。
  • 大师兄的要求:

    • 新手认真阅读序言里面推荐的那本参考书;

    • 尽可能多地浏览VASP官网,对某些参数有疑惑,认真查阅手册;

    • 最重要的是不要偷懒,遇到不会的东西或者困难,立刻记下来或者去解决,否则明天你就会忘掉;

    • 好东西要学会分享,可以在QQ群里分享自己的心得,帮助其他正在入门的小师弟,妹们。

在BB了这么多废话之后,感觉时候再强调下本书的重点了:The Hard Way. The Hard Way 在本人的眼里,类似于书山有路勤为径,学海无涯苦作舟的感觉,类似于经过无数瞎折腾终于尝到一点点小胜利甜头的感觉,类似于苦尽甘来,柳暗花明又一村的感觉。所以:Hard Way是本书的重点,也是痛苦学习的一个过程。别人耗费精力和时间开发出来的软件,短时间就精通是不可能的事情。所以,也别指望着一口气吃成个胖子,耐住寂寞。

本人学习和使用VASP已经快10年了,该教程差不多也5岁了。我进入课题组之前,不会用Ubuntu系统,也不会用脚本,也不会用python写脚本,也没用过VASP。我的VASP入门,是花了一个月看了Davide Sholl的书后,老板又手把手花了一个多月的时间学会的,学习的资料是老版本的Hand on Session系列。每天做的是系列中的练习,准备老板布置的作业,思考老板预留的问题,然后第二天听老板解释每个参数的含义,里面的关键点。而真正操作起来进入课题的时候,又有组里细心的博后专门帮忙指导答疑,也有很多人可以进行讨论学习。写这么多并不是在秀自己遇到了一个多好的老板,多好的课题组。在这样的环境中,经过了四年的学习,好几个课题的实战,才变成你们感觉很牛逼的大师兄(其实我只是经验比你们多一点点而已)。而这本书,也是本人这四年来学习到的精华,每一节都要花费差不多4个小时的样子才能完成,或者更多。而这四年的精华,岂能让你把这本书看一遍就掌握了? 到现在为止,瞎BB了76节。每节你花一天的时间去学习,加上其他参考书的学习,也需要2个月的时间。而2个月,对一个新手来说,完全在承受范围之内,请相信时间的力量。这里,我们澄清下对新手的定义:全职搞计算的菜鸟。所以,Hard Way 就是需要你花掉每一个整天的时间,一点点认真琢磨,反复操练,绝对不是什么速成。而现在我们搞科研都很浮躁,什么都喜欢图快,我们也有句古话:欲速则不达。因此,打算朝夕之内就学会VASP的读者,本书可能真的不适合你。

致谢:

本教程在写作的过程中,得到了很多人的支持。 有些地方可能描述不清,当然书里面也肯定避免不了错误的出现,也收到了很多人的建议和批评指正。在这里,向他们表示诚挚的谢意。很多人认为,通过这个教程,学到了很多东西,但请不要过分把功劳归在我身上。引用佛系的观点:因果,完全是自作自受。你自己学习了,自己认真练习了,水平的提高完全是你自己辛苦付出的结果。教程就在这里,你学或者不学,都跟我没有关系。私以为,收获最大的还是本人。一方面把自己多年的学习的经验整理总结出来,另一方面,很多当时一知半解的地方,在写作的过程中,通过查阅资料,认真分析得到了解决。

教程的宗旨在于快速带领大家入门VASP的使用,这里大师兄想起了金庸笔下的打狗棒法, 本书传授的只是招式,而心法口诀则是你扎实的科研基础功,是自己这些年(高中,大学,硕士,博士)通过坚持不懈学习来积累获得的,对次,本人确实无能为力,而这一点也恰恰是我们最欠缺的部分,希望可以引起大家的重视,在等待任务结束的时候,多多补习自己的基础知识。