分类目录归档:化学

利用.fch文件计算电子密度的代码

最近在看密度泛函的书,于是就想自己写一个能计算电子密度的程序,这样就可以具体地了解一些体系。而且由于更早一些时候才正经学了基组的知识,想弄清楚怎么把市面上的基组放在程序中使用(之前写HF程序用的是STO-3G,不涉及到分裂价层,而且没有涉及更多的壳层)。所以写这么一个程序还是可以帮我学到很多东西的。

代码上传到GitHub:https://github.com/St-Maxwell/ElectronDensity

参考了Sobereva的文章:高斯fch文件与wfn波函数文件的介绍及转换方法利用wfn文件计算电子密度的代码的编写方法

电子密度

在空间 \(\mathbf{r}\)处找到任意一个电子的概率。

$$ \rho(\mathbf{r}) = N \int |\Psi(\mathbf{x}_1, \mathbf{x}_2,\ldots,\mathbf{x}_N)|^2\, d\omega_1 d\mathbf{x}_2\ldots d\mathbf{x}_N $$

将上式展开为空间轨道(分子轨道)\(\{\psi_a\}\),为

$$ \rho(\mathbf{r}) = 2 \sum\limits_a^{N/2} |\psi_a(\mathbf{r})|^2 $$

若是自然轨道,则为

$$ \rho(\mathbf{r}) = \sum\limits_a^{N/2} \lambda_a |\eta_a(\mathbf{r})|^2 $$

其中 \(\eta_a\)是自然轨道,\(\lambda\)是自然轨道占据数。
继续阅读利用.fch文件计算电子密度的代码

Python的量化编程练习

感觉只会Fortran可能不太好,所以想多掌握一些语言。但是之前看了看C++,觉得挺难的,所以一瞬放弃了。结果还是「人生苦短,我用Python」。利用NumPy,Python能够与Fortran混编。而且SciPy自带数值计算库,我估计很多时候都没必要自己用Fortran去实现。

由于单纯学语法没啥意思,所以想找一下具体的课题来练习。显然量化编程最合适了。量化编程的练习都是来自Crawdad的网站。网站里是用C++来实现的,我则是用Python写。按照惯例,在GitHub上开了个坑:py-qc

说起来我感觉Psi4应该是个不错的平台(可以看10.1021/acs.jctc.8b00286这篇文章),等更加熟练了Python和Numpy之后想尝试一下。

Modern Quantum Chemistry 习题解答

昨天算是看完了 Modern Quantum Chemistry(第七章不打算看,微扰理论的图解部分跳过了),把写的习题解答发出来。

说明一下,这个答案绝对不可能完全没有错误,所以遇到怀疑有问题的地方还请自行思考(如果能给我反馈一下错误也最好不过了)。本来是想从头到尾校正一下,但实在没时间。打算复习一下笔记就去看别的书。
继续阅读Modern Quantum Chemistry 习题解答

从HF到CI再到pair theory

看到MQC的「对理论」(pair theory)一章,里面引入了各种近似。如果不整理的话,就会感到头脑混乱。所以把从HF到CI再到pair theory的主要涉及的方程整理了一番。关于方法本身的一些性质,可能会稍微提一下,但具体讨论还是看书吧。

Hartree-Fock

HF基态波函数就是单个Slater行列式:
$$
\begin{equation}
| \Phi_0 \rangle = | \Psi_0 \rangle
\end{equation}
$$
继续阅读从HF到CI再到pair theory