计算化学公社

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

[算法与编程] 询问DFT格点积分的细节

[复制链接 Copy URL]

362

帖子

7

威望

3426

eV
积分
3928

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 Freeman 于 2025-10-13 01:50 编辑

大家好。我已经实现原子轨道基DFT很久了,但是速度一直提不上去。研究了很久以后,现在我觉得,慢的原因是我没有利用到基函数-格点矩阵的稀疏性。比如有一个大分子,它最左边的原子的基函数在最右边原子周围的格点上的值就几乎为零了。在一个格点上遍历基函数时,只要遍历那些在该格点上有明显大于零的值的基函数就可以了,而我的程序则遍历了所有基函数,所以很慢。我想询问一下具体是怎样实现的。我设想了两种可能的实现方式。

一、每个格点是一个单位。在一个格点上,只记录非零的基函数,这样做的缺点是,当计算XC能量和Fock矩阵时,要对格点求和,而因为每个格点都是独立的对象,缓存命中率将会极低,还是会浪费很多时间。

二、每个原子产生的所有格点是一个单位。对于同一个单位的所有格点,记录该原子和相邻几个原子的所有基函数。这样一来,格点就是一批一批的了,求和时缓存命中肯定会很好,但是缺点是格点的独立性就没那么理想了:某个基函数在同一个单位的两个格点上,可能一个是非零,一个是零。保险起见,只好都当成非零值了,这就把一些冗余的零值纳入了计算。

主流的程序都是怎么做的呢?请大佬给我解惑。谢谢!

3804

帖子

3

威望

1万

eV
积分
20269

Level 6 (一方通行)

围观吃瓜群众

2#
发表于 Post on 2025-10-13 08:33:50 | 只看该作者 Only view this author
或许你可以参考FHI-aims的做法(DOI:10.1016/j.cpc.2020.107314),不过那个batch在处理的时候没那么简单,我不太懂,但愿能帮到你。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
Freeman + 5 谢谢

查看全部评分 View all ratings

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

1万

帖子

0

威望

9739

eV
积分
21935

Level 6 (一方通行)

3#
发表于 Post on 2025-10-13 10:34:12 | 只看该作者 Only view this author
确实需要分batch,但不是每个原子的所有格点都是一个batch,那样的batch太大了。
一般取一个较小的2的幂作为batch size,例如ORCA的默认batch size是64,BDF是128。一般把相近的若干格点作为一个batch,这些格点可以属于一个原子(代码写起来简单),也可以不属于。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
Freeman + 5 谢谢

查看全部评分 View all ratings

Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

362

帖子

7

威望

3426

eV
积分
3928

Level 5 (御坂)

4#
 楼主 Author| 发表于 Post on 2025-11-13 16:32:15 | 只看该作者 Only view this author
卡开发发 发表于 2025-10-13 08:33
或许你可以参考FHI-aims的做法(DOI:10.1016/j.cpc.2020.107314),不过那个batch在处理的时候没那么简单 ...

谢谢!那篇文献里确实有我要找的东西。

23

帖子

0

威望

483

eV
积分
506

Level 4 (黑子)

5#
发表于 Post on 2025-11-17 18:20:19 | 只看该作者 Only view this author
如果使用julia,有专门的稀疏矩阵相关的数学包,arpack,sparsearrays等

本版积分规则 Credits rule

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

GMT+8, 2026-1-24 05:42 , Processed in 0.553692 second(s), 21 queries , Gzip On.

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