计算化学公社

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

[算法与编程] 求助:1s Slater函数的库仑积分求解

[复制链接 Copy URL]

22

帖子

0

威望

321

eV
积分
343

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 木贞 于 2023-5-12 14:54 编辑


想求的积分如上,即两个不同半径的1s slater函数,中心分别在A、B,他们的库伦积分,
网上看到了求slater函数积分的程序,但是都集成到了量化计算的程序包里面,而我就是想计算得到1s slater函数的势能面,其自变量为两个STO的半径以及他们之间的距离。希望大佬解答。

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

2#
发表于 Post on 2023-5-12 15:47:26 | 只看该作者 Only view this author
Evaluation of two‐center overlap and coulomb integrals derived from Slater-type.pdf (956.32 KB, 下载次数 Times of downloads: 35)
北京科音自然科学研究中心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

73

帖子

0

威望

903

eV
积分
976

Level 4 (黑子)

3#
发表于 Post on 2023-5-13 17:14:09 | 只看该作者 Only view this author
这是问chatgpt给的python代码,借鉴一下
  1. import numpy as np
  2. from scipy.integrate import nquad

  3. # 定义1s Slater函数
  4. def psi(r, a):
  5.     return np.sqrt(1 / (np.pi * a**3)) * np.exp(-r/a)

  6. # 定义内层积分
  7. def integral_u(r1, r2, a):
  8.     integrand = lambda u: 1 / (r1**2 + r2**2 - 2*r1*r2*u)
  9.     return nquad(integrand, [[-1, 1], [0, 2*np.pi]])[0]

  10. # 定义库仑积分
  11. def coulomb(a):
  12.     integrand = lambda r1, r2, theta1, theta2, phi: psi(r1, a) * psi(r2, a) * r1**2 * r2**2 * np.sin(theta1) * np.sin(theta2) * integral_u(r1, r2, a)
  13.     return nquad(integrand, [[0, np.inf], [0, np.inf], [0, np.pi], [0, np.pi], [0, 2*np.pi]])[0]

  14. # 计算1s Slater函数的库仑积分
  15. a = 1  # 1s轨道的半径参数
  16. S = coulomb(a)
  17. print("1s Slater函数的库仑积分为:", S)
复制代码


在上述代码中,使用了numpy和scipy库中的函数来进行数值积分。首先定义了1s Slater函数psi和内层积分integral_u的表达式,然后定义了库仑积分coulomb的表达式,其中使用了nquad函数来进行多重积分的计算。最后,使用1作为1s轨道的半径参数,计算出了1s Slater函数的库仑积分的近似值。

22

帖子

0

威望

321

eV
积分
343

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2023-5-15 10:47:30 | 只看该作者 Only view this author
朽木可自雕 发表于 2023-5-13 17:14
这是问chatgpt给的python代码,借鉴一下

代码好像有点问题,还有就是定义内层积分那没大看懂,参数a是干啥的,内层积分函数里面也没用到

22

帖子

0

威望

321

eV
积分
343

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2023-5-15 15:50:38 | 只看该作者 Only view this author

本版积分规则 Credits rule

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

GMT+8, 2026-2-21 23:35 , Processed in 0.163501 second(s), 23 queries , Gzip On.

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