百科问答小站 logo
百科问答小站 font logo



分子模拟和计算化学领域科研是否只是用用软件,没必要掌握编程技术? 第1页

  

user avatar   isaac_yang 网友的相关建议: 
      

谢邀。

类似的问题在知乎很多,但我之前几乎从来回答过这种问题,因为知乎上这种问题看多了,我都怀疑知乎众心目中的“计算化学”和我一直以来理解的计算化学根本就是两个不同的东西。似乎绝大多数知乎众的回答都认为“大多数计算化学研究只需要掌握软件即可”、“编程是做方法的少部分人或者‘高端的深入研究’才用的到的”。然而自打我上研究生以来对于理论与计算化学的理解就一直是“不会推公式就不配称为理论化学,不会编程就不配称为计算化学”。

首先需要明确一下概念,那就是什么是“计算化学”。首先理论化学/计算化学都是属于物理化学的一个分支,而物理化学的定义我想大部分人都很清楚,那就是使用物理学的方法研究化学过程背后的原理。理论与计算化学也不例外,理论化学同物理化学的其他学科相比,其他学科主要是用实验手段来进行研究,而理论化学则是主要用理论手段来进行研究。而严格来讲计算化学应该属于理论化学的一个分支,是利用计算机将理论化学中的理论实现成可以使用的工具以进行研究,然而在计算化学已经渗透到理论化学方方面面的今天,“理论化学”和“计算化学”其实是很难分开的,所以人们更倾向于用“理论与计算化学”这个词来形容这个学科。然而不应该忘记的是,“理论化学”永远是“计算化学”的基础,理论可以没有计算(当然现在这种情况极少,大部分理论化学方法提出的同时几乎都会给出计算的实例),然而计算不能没有理论

拿题目中提到的“分子模拟”为例, @张嘉兴 说“分子模拟应该是属于计算化学的”,然而在我看来其实“分子模拟”不应该同“计算化学”相提并论,因为“计算化学”是一门学科,而“分子模拟”只不过是这门学科当中的一个“工具”而已。目前的科研界学科交叉非常普遍,一个学科借助其他学科的工具是非常正常的事情,然而如果仅仅只是使用其他学科的工具并不代表同时也进行那个学科的研究。所以说使用“分子模拟”进行的研究,并不一定就是“计算化学”本身的研究,就像现在人人都在用电脑,但并不是人人都在研究计算机一样。“计算化学”本身是一门“科学”,而仅仅会使用“分子模拟”这个工具只能说是掌握了一门“技术”,离真正的“科学”还有一段距离,所以我一直主张“做模拟”和“做计算”应该属于两个不同的概念

现在回到题目中来,“分子模拟和计算化学领是否需要编程”。根据我上面的分析,很显然就能得出这个结论:光是使用分子模拟这门“工具”不一定需要编程,然而想要进行计算化学这门“学科”的研究就必须学会编程。因为计算化学的定义就是利用计算机实现理论化学的理论,而如果不会编程,如何才能实现这些理论?当然,在诸多前辈高人的努力之下,我们有了分子动力学模拟、蒙特卡洛模拟、量化计算、量子动力学计算等等强大的工具,然而目前理论化学仍然在持续发展中,而对应计算化学已经实用化的工具其实还非常少,绝大部分的理论仍然需要计算化学的研究人员利用编程去实现。

就拿分子模拟本身来说,它能够做的仅仅是模拟实验过程,然而对于计算化学的研究来说这还远远不够,更重要的是模拟之后对于模拟体系的分析。在这种情况下,通用的分子模拟分析工具能分析的性质非常少,通常都是些非常简单且基础的性质。然而真实体系中需要分析的性质往往非常复杂且通用性非常低,真的想要深入地分析体系的性质,编程是必不可少的。假如真的靠软件自带的分析功能就能满足所有要求,那么实验课题组干嘛还需要跟专门的计算课题组合作,自己学学软件跑跑模拟就是了。

举个例子,我曾经跟一个实验课题组合作,他们的实验研究的是离子液体和硝酸水溶液的互溶,得到了一个比较奇怪的相图,他们想让我们模拟一下这个体系,解释一下背后的机理。其实对于这个体系的模拟是非常简单的,从相图上互溶和不互溶的比例当中各选一个进行建模然后模拟就是了。那么问题来了,请问如何表征模拟过程中的不同成分是否是“互溶”的?光用眼睛看结构是很难正确判断的,再说了你也不能在文章中放太多图片。当时我查了一下文献,发现在之前一篇研究离子液体和水互溶的文中使用了一个叫做“Demixing Index”的系数(Muzet, N. et al, JPC B 1998, 52, 10772),定义也非常简单:首先将体系分割成相同大小的格子,然后计算每个格子中各个物种的密度倒数的加和( 用 表示: , 表示格子, 代表物种, 是物种的数量, 是第 个物种在第 个格子中的密度),然后求 的平均就得到“Demixing Index” ( , 是格子的个数)。“Demixing Index”越大就代表互溶的越好,所以用这个系数就能很容易的判断溶液互溶的情况,我写了一个很简单的程序计算了一下两个模拟体系的“Demixing Index”,果然可以很清楚的区分出不同成分溶液的互溶情况。针对这个体系的模拟可以算是我研究生生涯当中进行过的最简单的一个课题,但即便如此还是需要编写一个小程序,因为没有任何一个现成的程序可以帮我直接计算这个“Demixing Index”。(Fu, J. et al, JPC B 2016, 120, 5194)

综上所述,编程是进行计算化学研究的基础,不会编程很难进行真正的计算化学研究。当然如果仅仅是使用分子模拟这一工具,那么编程当然不一定是必须的,然而必须要明确的是,仅仅是使用分子模拟这一种工具进行的研究是不能称为真正的”计算化学“研究的。




  

相关话题

  分子动力学软件那个比较快? 
  做计算化学和分子模拟领域科研,会用到多少编程技术,如 C、Python、Fortran 等? 
  纳米压痕的分子动力学模拟研究应从哪些方面入手? 
  怎么评价 Anton2? 
  如何评价 AI 仅用 5.4 秒就能设计出和文献相同的化学反应途径,堪称化学界「AlphaGo」? 
  material studio 可以做螺位错吗,怎么做? 
  分子轨道理论是否已经十分完美? 
  计算化学,高斯计算求教?泛函和基组请教? 
  哪里找开设计算化学或是化学信息学的院校? 
  做计算化学和分子模拟领域科研,会用到多少编程技术,如 C、Python、Fortran 等? 

前一个讨论
「天体化学」是一门什么样的学科?
下一个讨论
磁铁吸住铁怎么弄下来?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利