计算化学公社

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

[算法与编程] 一份优雅(希望是)的计算电子结构积分的python代码示例

[复制链接 Copy URL]

129

帖子

0

威望

1154

eV
积分
1283

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 flyingchow 于 2022-4-15 09:28 编辑

附件中的文献是Joshua Goings的电子结构积分的python代码详解。

Joshua Goings的blog里面也有很多有意思的内容:
https://joshuagoings.com/
大家有空可以看看。

integrals.pdf

121.55 KB, 下载次数 Times of downloads: 98

194

帖子

0

威望

3694

eV
积分
3888

Level 5 (御坂)

2#
发表于 Post on 2022-4-15 09:21:18 | 只看该作者 Only view this author
为什么会觉得这个代码是优雅的?

129

帖子

0

威望

1154

eV
积分
1283

Level 4 (黑子)

3#
 楼主 Author| 发表于 Post on 2022-4-15 09:24:07 | 只看该作者 Only view this author
scf 发表于 2022-4-15 09:21
为什么会觉得这个代码是优雅的?

可能是我翻译的问题。
因为他自己说是“a gentle guide”

129

帖子

0

威望

1154

eV
积分
1283

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2022-4-15 09:27:59 | 只看该作者 Only view this author
scf 发表于 2022-4-15 09:21
为什么会觉得这个代码是优雅的?

优雅的应该不是“代码”,而是“示例”。
我觉得这个示例读起来真地很清楚了。

194

帖子

0

威望

3694

eV
积分
3888

Level 5 (御坂)

5#
发表于 Post on 2022-4-15 09:36:28 | 只看该作者 Only view this author
本帖最后由 scf 于 2022-4-15 13:35 编辑

我对其中的一些代码写法持谨慎态度,在python里
x += 5 和 x = x + 5不是一个意思
https://stackoverflow.com/questions/4841436/what-exactly-does-do
https://stackoverflow.com/questi ... s?noredirect=1&lq=1
https://stackoverflow.com/questi ... b?noredirect=1&lq=1
虽然有时候+=会快一点,不大喜欢使用导致潜在问题的写法(比如用到mutable type)


1060

帖子

0

威望

3260

eV
积分
4320

Level 6 (一方通行)

6#
发表于 Post on 2022-4-15 17:06:12 | 只看该作者 Only view this author
既然已经 import numpy as np 还出现那么多嵌套的 for 循环, 应该是没有把数组向量化

129

帖子

0

威望

1154

eV
积分
1283

Level 4 (黑子)

7#
 楼主 Author| 发表于 Post on 2022-4-15 23:32:15 | 只看该作者 Only view this author
乐平 发表于 2022-4-15 17:06
既然已经 import numpy as np 还出现那么多嵌套的 for 循环, 应该是没有把数组向量化

作者显然不是为了写好看的代码,而是为了解释积分的数学过程如何用代码实现。
the code that we have shown is hopefully clear and looks nearly identical to the
mathematical equations they are supposed to represent.

1060

帖子

0

威望

3260

eV
积分
4320

Level 6 (一方通行)

8#
发表于 Post on 2022-4-15 23:45:10 | 只看该作者 Only view this author
flyingchow 发表于 2022-4-15 17:32
作者显然不是为了写好看的代码,而是为了解释积分的数学过程如何用代码实现。
the code that we have sh ...

我说的不是好看,我说的是运行效率

194

帖子

0

威望

3694

eV
积分
3888

Level 5 (御坂)

9#
发表于 Post on 2022-4-16 00:15:14 | 只看该作者 Only view this author
为了提高运行效率,积分一般是用递归算的。不过递归可能不适合大规模并行,quadrature之类的数值方案可能更适合并行。

129

帖子

0

威望

1154

eV
积分
1283

Level 4 (黑子)

10#
 楼主 Author| 发表于 Post on 2022-4-16 00:23:44 | 只看该作者 Only view this author
scf 发表于 2022-4-16 00:15
为了提高运行效率,积分一般是用递归算的。不过递归可能不适合大规模并行,quadrature之类的数值方案可能更 ...

github上有人用cython写的附件文档里类似的代码。

本版积分规则 Credits rule

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

GMT+8, 2024-11-25 03:36 , Processed in 0.166870 second(s), 23 queries , Gzip On.

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