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
2export 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任务?
- 自己组里都有提交任务的脚本,如果没有的话,
- 找组里的师兄师姐帮忙;
- 第一个啃螃蟹的人,找老师解决,求助服务器商,求助超算管理员;
- 自行动手解决。
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的使用,这里大师兄想起了金庸笔下的打狗棒法, 本书传授的只是招式,而心法口诀则是你扎实的科研基础功,是自己这些年(高中,大学,硕士,博士)通过坚持不懈学习来积累获得的,对次,本人确实无能为力,而这一点也恰恰是我们最欠缺的部分,希望可以引起大家的重视,在等待任务结束的时候,多多补习自己的基础知识。