计算化学公社

标题: 量子化学不同教材的差异大不大 [打印本页]

作者
Author:
chinder    时间: 2022-4-24 14:43
标题: 量子化学不同教材的差异大不大
最近好不容易把徐光宪老先生量子化学中的Gauss函数一章看明白了,所以想试试自己写一个计算积分的程序。本来想先找个现成的代码参考下,在论坛里搜寻一番,找到了一位仁兄写的笔记(http://bbs.keinsci.com/thread-12101-1-1.html),但打开笔记后发现很多符号不一样,笔记里的几个递推公式看得我也有点懵。然后我又去看了下陈飞武教授的《量子化学中的计算方法》,基本颠覆了我之前学的符号。不过,其实改变符号的影响也不算太大,稍微看一会也就能习惯,主要是几个推导得到的公式。比如陈的书里面重叠积分最终是以积分的形式表示出来的,而徐的书里面则是以积分最终得到的原函数表示的,陈的书里说重叠积分可以采用数值积分,而徐在这一章里好像没提到数值积分,其他积分的情况似乎也和重叠积分类似(我还没仔细看陈的书)。
所以我想请教下各位大佬,
1.如果我想尝试从零实现HF的话,徐的书够用吗?
2.徐的书的内容与其他教材的差异大不大,比如符号上,陈用的符号和《现代量子化学》用的符号一致;
3.有推荐的用代码实现HF的教程吗,最好是用cpp、python、julia等语言实现的,fortran我还没学(除了论坛里的教程和py_xDH)。

作者
Author:
scf    时间: 2022-4-24 15:03
https://github.com/CrawfordGroup/ProgrammingProjects
作者
Author:
sobereva    时间: 2022-4-25 04:16
自己会写重叠积分、动能积分、多极矩积分等简单积分,作为练习目的就足够了,写起来都不难。而核吸引势积分和双电子积分没必要去花精力折腾,本来也有libreta、libint、libcint等高效的积分库可以直接用,自己写出来对于理解量化理论和量化编程也没什么意义,还也没法轻易做到比现成的积分库更高的效率,造这个轮子花的时间不如多写点更有意义的代码。

重叠积分、速度积分、动能积分、多极矩积分可以参考Multiwfn的integral.f90里的function doSintactual、function doVelint、function doTint、subroutine domultipoleint,基本是基于陈的书里的公式写的。

从零写HF程序,最建议先去看Szabo的Modern Quantum Chemistry,里面的公式推导和符号都特别清楚,而且据我所知没有公式有错误(你提到的两本书里都有一些公式有笔误。当发现写出来的代码结果不对,可能是不是你写的问题而是书里的公式是错的,有时候得自己推导一遍公式才发现问题在哪)。而且此书附录还给了现成的算简单HeH+体系的HF程序代码。

结合现成的积分库来得到双电子积分,写个能算出结果的HF程序没什么难度。但优化计算效率,以及写构造初猜和帮助收敛等方面的代码,则需要花不少时间精力。

作者
Author:
niobium    时间: 2022-4-25 08:35
怎么最近老有人要从零写HF。。。
作者
Author:
卡开发发    时间: 2022-4-25 09:17
niobium 发表于 2022-4-25 08:35
怎么最近老有人要从零写HF。。。

如果用其他形式的基组从0写出HF高效的那就是另外一个故事。
作者
Author:
sobereva    时间: 2022-4-25 09:57
niobium 发表于 2022-4-25 08:35
怎么最近老有人要从零写HF。。。

这就有点类似于“儿时的梦想”,很多人最初激情满满的时候都有
作者
Author:
niobium    时间: 2022-4-25 11:30
sobereva 发表于 2022-4-25 09:57
这就有点类似于“儿时的梦想”,很多人最初激情满满的时候都有

对,最近想上太空的小孩非常多
作者
Author:
wzkchem5    时间: 2022-4-25 15:33
sobereva 发表于 2022-4-25 02:57
这就有点类似于“儿时的梦想”,很多人最初激情满满的时候都有

我觉得真的激情满满的人应该是有一个改进HF的idea,然后才想自己实现HF,来测试自己的idea。如果一开始就只想着重复已有的方法,不算什么激情




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3