计算化学公社

 找回密码 Forget password
 注册 Register
Views: 12274|回复 Reply: 12
打印 Print 上一主题 Last thread 下一主题 Next thread

[算法与编程] 谁能写个量化编程学习历程啊

[复制链接 Copy URL]

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
比如说,看什么fortran书得到什么经验,看什么量化书得到什么经验,希望高手能够说一说。

538

帖子

1

威望

5763

eV
积分
6321

Level 6 (一方通行)

2#
发表于 Post on 2017-10-12 22:53:31 | 只看该作者 Only view this author
本人献丑回答一下,不是高手。
首先语言的话,因为我们本科学过C语言,所以学习Fortran还是比较容易上手的,我主要是看的彭国伦的那本书。
量化书的话主要是两本经典的,Levine的Quantum Chemistry和Szabo的Modern Quantum Chemistry。
关于写程序的经历,至今仍然记得我练习阶段写过的所有的程序:
(1) Levine教材里的第四章中的一个小例子,Computer program for the Numerov method。 书上有VB程序的答案,可以做对照。
(2) 最简单的HF程序,简单到什么程度呢,就是所有积分都是直接读的,主要是体会一下HF的迭代过程,和相关的量是如何计算的。
(3) 简单的CIS程序,这实际上是老板让我写的,我本来跟老板说我想写个HF程序,老板说CIS更简单,你可以写个CIS,于是我两个都写了,写CIS让我体会到了文献里的公式和实际编程的差距,尤其是自旋轨道和空间轨道的转化。
后面就基本确定了自己的研究方向,开始写一些比较正规的程序了,当然相比正式的课题,还只是练习程序:
(4) Wick定理及自动推导CCSD公式的程序。这两部分花费了我一学期的时间,当然中间也学习到了很多东西,比如二次量子化的知识,CC理论的深入理解。
后面本来应该接下去完成由公式到程序的转化,但由于时间的问题没有完成,很可惜。
再后来就开始正式开始做课题了。
我的过程并不适用于所有人。但如果有做方法发展的,我建议可以练习两个程序:一是HF,我当时写完HF之后才真正感觉到自己对HF方法完全理解了,我觉得这是练习写程序最大的收获。二是可以写一个MP2程序,HF到MP2实际就是一步积分变换,这里也可以体会到post-HF方法的计算量的增加是多么大了。

评分 Rate

参与人数
Participants 5
eV +21 收起 理由
Reason
qwoop + 5 谢谢
duan + 5 师兄厉害!
chemistry93 + 4 我很赞同
bnulk + 4 谢谢
sobereva + 3 欢迎讨论

查看全部评分 View all ratings

23

帖子

1

威望

577

eV
积分
620

Level 4 (黑子)

3#
发表于 Post on 2017-10-13 12:01:55 | 只看该作者 Only view this author
二楼好强大,羡慕ing。
我这样的野路子是:
(1)抄写廖沐真、吴国是、刘洪霖三位老师“量子化学从头计算方法”那本书的Fortran代码。网上找得到电子版的,中文的一本讲自洽场的书,非常易懂。然后改编成其它语言,确保熟悉它。
(2)找一个课题,把所有能找到的文献都找到,抄写文献中的方法,对照文献中的结果。
(3)这时候也比较熟悉自己的课题了,可以找课题相关的应用数学书,抄写相关方法,一般来说,会有些改进的。有条件的话,请计算数学的博士吃饭,非常有帮助。

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

4#
 楼主 Author| 发表于 Post on 2017-10-14 21:19:37 | 只看该作者 Only view this author
niobium 发表于 2017-10-12 22:53
本人献丑回答一下,不是高手。
首先语言的话,因为我们本科学过C语言,所以学习Fortran还是比较容易上手的 ...

这些你讲的定理和公式以及其实现代码貌似没有成熟的书讲解吧,只能靠课题组嘴嘴相传,感觉有点手工作坊的感觉。

4289

帖子

4

威望

9541

eV
积分
13910

Level 6 (一方通行)

MOKIT开发者

5#
发表于 Post on 2017-10-14 21:57:05 | 只看该作者 Only view this author
zyj19831206 发表于 2017-10-14 21:19
这些你讲的定理和公式以及其实现代码貌似没有成熟的书讲解吧,只能靠课题组嘴嘴相传,感觉有点手工作坊的 ...

大部分书都有的。不过都比较小众,如果没有 有经验的前辈告诉自己,或者自己广泛搜索,是很难找到一本本严谨、清晰的入门书籍的。
假定给你单双电子积分,写RHF和UHF程序,看《Modern Quantum Chemistry》就足够了,但是如果要写ROHF,可能就要去看Roothaan当年的原始文献了。
如果单双电子积分都要自己写或者了解其算法,那就要看《Molecular Elecetronic-Structure Theory》的第8,9章。
假设往前一步做CC方法,我觉得Henry F.Schaefer III的《An intro to coupled cluster theory for computational chemists》是我见过简单与严谨同时很好兼顾的介绍。
如果还要追求算法和并行,量化界也有人写过《Parallel Computing in Quantum Chemistry》。
总之除非你做最新的电子结构方法,成型的方法都是有介绍的,只不过清晰易懂、最适合自己的那本入门书,要找很久。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
sobereva + 3 欢迎讨论

查看全部评分 View all ratings

自动做多参考态计算的程序MOKIT

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

6#
 楼主 Author| 发表于 Post on 2017-10-14 22:56:17 | 只看该作者 Only view this author
zjxitcc 发表于 2017-10-14 21:57
大部分书都有的。不过都比较小众,如果没有 有经验的前辈告诉自己,或者自己广泛搜索,是很难找到一本本 ...

感觉这些书都是长篇大论的公式,没有看到怎么将那些公式用代码实现啊。

4289

帖子

4

威望

9541

eV
积分
13910

Level 6 (一方通行)

MOKIT开发者

7#
发表于 Post on 2017-10-14 23:47:52 | 只看该作者 Only view this author
zyj19831206 发表于 2017-10-14 22:56
感觉这些书都是长篇大论的公式,没有看到怎么将那些公式用代码实现啊。

我觉得你看的书不是我说的那些。。。比如看个徐光宪三卷,显然是做不了科研的。公式多,说明已经很接近代码了,推完公式就是上编程了。至于想学编程,直接看编程的书就好了,有了公式,量化编程与普通编程,并无太多不同之处。如果想看看量化里的编程,建议看看《Parallel Computing in Quantum Chemistry》再“感觉”。
自动做多参考态计算的程序MOKIT

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

8#
 楼主 Author| 发表于 Post on 2017-10-14 23:52:34 | 只看该作者 Only view this author
zjxitcc 发表于 2017-10-14 23:47
我觉得你看的书不是我说的那些。。。比如看个徐光宪三卷,显然是做不了科研的。公式多,说明已经很接近代 ...

好的,谢谢,以前就是不知道怎么将复杂的公式转化为优美的代码。

909

帖子

37

威望

5527

eV
积分
7176

Level 6 (一方通行)

9#
发表于 Post on 2017-10-15 22:58:44 | 只看该作者 Only view this author
本帖最后由 ggdh 于 2017-10-15 23:12 编辑

照着张鋆(就是abcluster的作者)的从手算做一遍,然后督促他出第四版,第五版。。
刚看了下他在版权中说了可以自由转载,只要点名就行。。我就传这了。
另外可以照着这个C++ Programming Tutorial in Chemistry来做


H2MODEL_cn.pdf

872.05 KB, 下载次数 Times of downloads: 293

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
wangyj + 3 好物!

查看全部评分 View all ratings

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

10#
 楼主 Author| 发表于 Post on 2017-10-16 20:23:44 | 只看该作者 Only view this author
本帖最后由 zyj19831206 于 2017-10-16 20:34 编辑
ggdh 发表于 2017-10-15 22:58
照着张鋆(就是abcluster的作者)的从手算做一遍,然后督促他出第四版,第五版。。
刚看了下他在版权中说了 ...

这个文档的代码在哪里?能否上传下?注释貌似写的不错吧。这个网页可有系统性的介绍文档,感觉代码不容易保存啊。

3809

帖子

3

威望

1万

eV
积分
20343

Level 6 (一方通行)

围观吃瓜群众

11#
发表于 Post on 2017-10-16 21:40:13 | 只看该作者 Only view this author
zyj19831206 发表于 2017-10-16 20:23
这个文档的代码在哪里?能否上传下?注释貌似写的不错吧。这个网页可有系统性的介绍文档,感觉代码不容易 ...

《手算理解量子化学》的原贴在这http://muchong.com/t-4709293-1。另外推荐Cook的《Handbook of computational quantum chemistry》,虽然老掉牙,但是作为入门书籍有公式和些许代码还是值得参考,但若想做的更快则需要专门研究GTO分子积分的文献(如Gill等),甚至是一些其他数值计算方面的文献。

站内的资料早期由@Shannon @nagami 整理,前者是基于matlab做的,对于初学会比较方便;后者是C++写得的,不过后者的资料因网盘关闭可能找不到了。近期@Warm_Cloud 也发布了Amesp程序,以及对应的单、双电子积分库,也可以直接拿来使用。我赞同2楼的观点,入门其实直接用matlab读取积分就行,熟悉后可以尝试换底层一些的语言调用lapack来写,也可以尝试写一下积分,也可以调用现成的库。

从公式到离散形式,再到数据结构和编程,这并不是一下完成的,其实需要一些数值方法的书籍作为铺垫。Coolrainbow的《手算理解量子化学》确实给了不少好的参考书。至于要发展一些新颖的、效率的、可靠的数值技术,一般需要很强的应用数学方面的功底,或者和应用数学方面的人合作。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
sobereva + 2 欢迎讨论

查看全部评分 View all ratings

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

611

帖子

2

威望

4455

eV
积分
5106

Level 6 (一方通行)

12#
 楼主 Author| 发表于 Post on 2017-10-16 22:29:55 | 只看该作者 Only view this author
卡开发发 发表于 2017-10-16 21:40
《手算理解量子化学》的原贴在这http://muchong.com/t-4709293-1。另外推荐Cook的《Handbook of computat ...

原帖中程序找不到了,你如果有能否上传下?

3809

帖子

3

威望

1万

eV
积分
20343

Level 6 (一方通行)

围观吃瓜群众

13#
发表于 Post on 2017-10-16 22:39:00 | 只看该作者 Only view this author
zyj19831206 发表于 2017-10-16 22:29
原帖中程序找不到了,你如果有能否上传下?

手里只有第一版的 H2MODEL.rar (718.26 KB, 下载次数 Times of downloads: 83)
你可以问@coolrainbow 要一下看看。

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-21 05:08 , Processed in 0.204099 second(s), 29 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list