如何从零开始学习计算化学?

关注者
901
被浏览
235,351

20 个回答

好吧,回答前我们先来段励志小故事。这几年有个软件叫“ORCA: An ab initio, DFT and semiempirical SCF-MO package”,这是个免费闭源量子化学计算软件,据说特长是生物无机里面经常涉及到的多组态计算。这种计算对其他常用软件,比如Gaussian等,还算是比较苦恼的。这个软件的主要作者 Frank Neese就是做无机出身,现在已经是业内大牛了。

thch.uni-bonn.de/tc/orc

mpibac.mpg.de/bac/mitar

言归正传。

计算化学的内容一般包含量子化学计算和分子动力学模拟。或许前者占更大比重,但从目前的趋势来看,后者将会变得同样重要。分子动力学模拟传统上指用经验参数(力场 etc.)+牛顿力学来处理具有大量粒子的体系的平衡、演化过程。但现在基于量子力学的动力学也可以算一些小体系了。

然后就是您想学到什么程度了。如果只是想能用某些软件算某些自己感兴趣的性质的话,这个要求还是很容易达到的。先找类似的文献,看人家怎么做,然后重复一遍,把关键的数据自己从头到尾做一遍出来,这样就可以认为是会算某个东西了。据我所知很多人都是这么号称的。

如果想深入一点,想知道软件是怎么算的,为啥这么算,或者软件是怎么写的,需要补的课对于化学口出身(这里指国内本科)的同志们来讲可能多了一点。再次结束吐槽,假设题主问的就是这一块。

一般来说理工科的本科生都至少有两个学期的微积分、两个学期的普通物理以及一个学期的程序设计(或者计算XX之类的课程),这些基础假设是具备的,也就是题主说的“零”。

首先需要量子化学的知识,往回是量子力学以及一点点多体理论。学量子力学最好学过一点点分析力学,至少知道Hamiltonian是怎么来的。这里需要的数学基础包括一点点矩阵的知识,行列式要知道,熟悉线性变换。知道一点复变函数的东西,包括积分和留数。会解简单的微分方程,比如谐振子的薛定谔方程很重要。熟悉傅里叶变换对某些问题会很有帮助。有点群论的知识对某些定性分析也有帮助。

如果对计算本身感兴趣的话,C、C++、Fortran至少熟悉一个,另两个能读懂。能熟练使用一门脚本语言,主要是Perl或Python。知道怎么调用某些数学库,比如BLAS,LAPACK,fftw等。

想来想去貌似必需的东西真不多,而上面这些也不需要一下都准备好,用到的时候再学就是了。