计算化学公社
标题:
求助:1s Slater函数的库仑积分求解
[打印本页]
作者Author:
木贞
时间:
2023-5-12 14:47
标题:
求助:1s Slater函数的库仑积分求解
本帖最后由 木贞 于 2023-5-12 14:54 编辑
(, 下载次数 Times of downloads: 35)
上传 Uploaded
点击下载Click to download
想求的积分如上,即两个不同半径的1s slater函数,中心分别在A、B,他们的库伦积分,
网上看到了求slater函数积分的程序,但是都集成到了量化计算的程序包里面,而我就是想计算得到1s slater函数的势能面,其自变量为两个STO的半径以及他们之间的距离。希望大佬解答。
作者Author:
sobereva
时间:
2023-5-12 15:47
(, 下载次数 Times of downloads: 35)
上传 Uploaded
点击下载Click to download
作者Author:
朽木可自雕
时间:
2023-5-13 17:14
这是问chatgpt给的python代码,借鉴一下
import numpy as np
from scipy.integrate import nquad
# 定义1s Slater函数
def psi(r, a):
return np.sqrt(1 / (np.pi * a**3)) * np.exp(-r/a)
# 定义内层积分
def integral_u(r1, r2, a):
integrand = lambda u: 1 / (r1**2 + r2**2 - 2*r1*r2*u)
return nquad(integrand, [[-1, 1], [0, 2*np.pi]])[0]
# 定义库仑积分
def coulomb(a):
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)
return nquad(integrand, [[0, np.inf], [0, np.inf], [0, np.pi], [0, np.pi], [0, 2*np.pi]])[0]
# 计算1s Slater函数的库仑积分
a = 1 # 1s轨道的半径参数
S = coulomb(a)
print("1s Slater函数的库仑积分为:", S)
复制代码
在上述代码中,使用了numpy和scipy库中的函数来进行数值积分。首先定义了1s Slater函数psi和内层积分integral_u的表达式,然后定义了库仑积分coulomb的表达式,其中使用了nquad函数来进行多重积分的计算。最后,使用1作为1s轨道的半径参数,计算出了1s Slater函数的库仑积分的近似值。
作者Author:
木贞
时间:
2023-5-15 10:47
朽木可自雕 发表于 2023-5-13 17:14
这是问chatgpt给的python代码,借鉴一下
代码好像有点问题,还有就是定义内层积分那没大看懂,参数a是干啥的,内层积分函数里面也没用到
作者Author:
木贞
时间:
2023-5-15 15:50
sobereva 发表于 2023-5-12 15:47
谢谢老师!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3