计算化学公社

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

[算法与编程] 如何处理双电子积分的奇点?

[复制链接 Copy URL]

370

帖子

7

威望

3503

eV
积分
4013

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
最近我想算一下两个原子轨道的相互作用,遇到了这样的问题:双电子积分有1/rij项,如果i和j坐标恰好重合,rij=0,这个点的值就会blow up,程序报错退出。
我的解决方法是:
在rij旁边强行加上一个小量(一般用1e-13m,也就是1e-3埃),使分母永远不为0。但是我发现小量的大小对结果的影响蛮大的,多一个0或少一个0就会差零点几个eV;如果加太多0,还会引发其它问题(不能通过MATLAB的误差检测,奇怪的报错,算得慢等等)。所以我觉得尽管这个方法能用,但不太好。
请问现在主流的量化程序是怎么处理双电子积分rij=0的点的?

6万

帖子

99

威望

6万

eV
积分
125189

管理员

公社社长

2#
发表于 Post on 2020-8-21 18:46:00 | 只看该作者 Only view this author
建议你先了解一下主流量化程序用的双电子积分的基本算法,比如这篇就讲得挺清楚和系统
(Gill,Adv in QC,1994)-MOLECULAR INTEGRALS OVER GAUSSIAN BASIS FUNCTIONS.pdf (2.25 MB, 下载次数 Times of downloads: 73)

并没有什么特殊的处理。有奇点不代表不能算这个积分。

评分 Rate

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

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

1万

帖子

0

威望

9892

eV
积分
22140

Level 6 (一方通行)

3#
发表于 Post on 2020-8-21 20:37:15 | 只看该作者 Only view this author
简单地说,通过解析的积分变换,变成一个没有奇点的积分。与此同时这个过程还把本来是6维积分的双电子积分简化成了1维,而这个1维积分可以直接预先列一个表,查表获得。
直接按定义做数值积分是算不动的

评分 Rate

参与人数
Participants 2
eV +8 收起 理由
Reason
Freeman + 5 GJ!
elvisng + 3 谢谢分享

查看全部评分 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
本团队长期招收研究生,有意者可私信联系

3809

帖子

3

威望

1万

eV
积分
20354

Level 6 (一方通行)

围观吃瓜群众

4#
发表于 Post on 2020-8-22 00:28:14 | 只看该作者 Only view this author
非要数值做这个积分的话,可以将求积分转换成解Poisson方程(https://doi.org/10.1016/0009-2614(83)80104-3)。然后单中心的话就可以直接转化成径向的差分方程求解,多中心的话可以用Becke的方法划分后分别对每块球形区域求解差分方程(http://dx.doi.org/10.1063/1.455005)。整个过程十分繁琐(尤其是各种坐标变换)

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
成犹败 + 3 谢谢

查看全部评分 View all ratings

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

本版积分规则 Credits rule

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

GMT+8, 2026-2-26 08:16 , Processed in 0.312028 second(s), 24 queries , Gzip On.

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