对量子化学计算初入者的几点建议

量子化学是通过计算机来求解方程,其理论本身,对于没有学习过量子力学的人来说也不易理解。因此建言如下:

  1. 虽然很多号称“老鸟”的人,会给“菜鸟”推荐厚厚的一本书,并告诉你,只要这本书看懂了,你就什么都懂了。但不得不打击一下:它可以提供理论基础,但看了,可能还是不知道计算出来的数据,定性是正确还是不正确、可用还是不可用、如何理解数据背后你正在寻找的规律。就如同书上告诉你,战场上可以用轰炸机、坦克、火箭弹、中子弹……,但你真正上战场的时候,这些东西长什么样子?几百个按钮分别是干什么的?可能是完全一无所知的。因为理论和计算之间还有一道鸿沟,就是将二者对应的经验。这些,必须自己有心,去慢慢积累,逐渐丰富自己对数据的认知、判断。
  2. 不要指望软件会像火腿肠生产线一样,猪肉进去,火腿肠包装的漂漂亮亮的就出来了。软件只是帮你求解方程,方程本身有时候会收敛到错误的解上面去,什么样的解是错误的?什么样的解是正确的?经验的积累,知识的积累,可以带来直观的判断能力。例如如果我们计算两个距离很远的体系之间的相互作用,发现Pauli排斥、静电作用都几乎为0,而轨道作用却很大——这发生了什么?显然是两个片段之间根本就没有相互作用,因为最长程的力也为0了。轨道作用很大,是由于孤立片段计算的时候,收敛到一种电子态上(很可能是正确的),而两个片段放在一起的时候,就收敛到错误的态上去了,这样就产生了一种错觉:是片段的轨道相互作用导致电子排布发生变化,和孤立片段的时候变的不一样了——这显然违背了我们的常识,所以我们知道这个结果是不正确的。我们直观上知道,这两个片段离那么远,根本就不可能有轨道作用——这种非常近程的作用,彼此的电子排布,与孤立状态相比,根本就不可能发生变化。
  3. 不要过度执着于计算值和实验值对比。很多时候,计算的数字和实验测量的数字,在物理上并不是一个东西。很多时候,计算数据和实验数据,并不能符合的很好。我们希望知道的是规律,如何从“看起来不是很好的数据”背后找到你希望发现规律?这就是真正的科研。如果总是指望软件给出完美的数据,跟实验一对照,就符合了,这样的科研,价值在哪里?是软件在做科研,还是人在做科研?
  4. 要善于学习。例如前面说到长程、短程,第一次听说可能非常迷糊,但我们做一些简单的计算,就可以了解长程长到什么程度,短程短到什么程度。比如我们可以尝试计算一个<chem>H2O</chem>和一个<chem>OH-</chem>的体系,这两者之间会有比较强的静电作用。这个体系很小,计算量很小,基本上1分钟以内就算完了。人们常说静电作用是长程作用,我们可以看看距离多少的时候,静电力消失到几乎为0?轨道作用被认为是短程作用,到距离才多少的时候,就消失完了?又比如,人们说Pauli排斥体现的是分子轨道的空间位阻,那么我们看看<chem>H2O</chem>和<chem>OH-</chem>以各种部位靠近的时候,Pauli排斥的大小差别?还可以把它们各自的分子轨道打印出来,看看是哪个占据轨道和哪个占据轨道在排斥,另外也可以把碎片的占据轨道之间的重叠积分计算出来,看看重叠积分最大的,是不是就是空间上最靠近,从而Pauli排斥最大的?通过这样一些非常简单的体系,自己去学习、摸索、了解、感知这些基本的一些知识、概念。让自己真正知道是怎么回事,而不是面对一大堆数据,大脑一片空白。
  5. 多一些耐心。虽然现在时代比较功利,但真正要学好量子化学、计算化学,需要耐心。计算出错了,找到出错的原因AMS实际上很少出现程序bug报错,而往往报错是因为参数不合理导致,知道错误的来龙去脉,这本身就是加深自己对计算理论、数据的理解能力。
  6. 向其他人请教问题,初学者容易出现一种情况:把一篇文献直接甩给对方,希望对方能够很快懂得文章中所有的细节,然后高屋建瓴的给自己讲所有的东西。这很理想,但一般除了你自己之外,其他人并不会很乐意纯粹为了你,去研究一篇和他无关的文献,因此对方大多数时候可能会感到被冒犯。因此,比较好的方式,是自己好好读完,把非常具体的问题,以及该问题的背景,告诉对方。最好是,你能把对方当作什么都不懂、不知道的人,你能够对他描述清楚你的问题,这实际上也考验了你自己对你自己问题的理解。实际上,这样对方能够用最省力的方式,为你解决问题。这是双方对彼此最大的尊重。
  7. 不要一味追求手写命令,认为这很高级。Linux的基本操作,会、熟悉,就可以了。但没有必要把很多时间浪费在这里。量子化学的核心是在对理论的理解,以及对数据的理解上,而不是手写输入文件写的多熟。但熟悉一些Linux的常用命令,能够提高工作效率,笔者总结了一些常用、确实能提高效率的一些命令,参考:Linux系统与Windows系统操作
  8. 通过邮件咨询他人问题的时候,表明自己的身份(如果不想说名字,哪怕说下大致的单位和昵称也好),并称呼对方一声,是最基本的礼仪。有的人给别人写邮件的时候,连自己是谁都不说,这是非常粗鲁、具有很强冒犯性的方式。