9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 19:43:32 +01:00
qp2/plugins/local/extra_basis_int/coul_1s.irp.f

24 lines
870 B
Fortran

double precision function coul_full_pq_r_1s(p,q,R,R_p,R_q)
implicit none
BEGIN_DOC
! coul_full_pq_r_1s(p,q,r) = \int d^3r phi_p(r) phi_q(r) 1/(r-R)
!
! where phi_q and phi_p are centered in R_q and R_p.
!
! WARNING :: works only for purely 1s extra basis !!
END_DOC
double precision, intent(in) :: R(3),R_p(3),R_q(3)
integer, intent(in) :: p,q
double precision :: coef,dist,P_pq(3),coefaos
coefaos= ao_extra_coef_normalized(p,1) * ao_extra_coef_normalized(q,1)
coef = inv_pi_gamma_pq_3_2_ao_extra(p,q) * E_pq_ao_extra(p,q)
P_pq = ao_extra_expo(p,1) * R_p + ao_extra_expo(q,1) * R_q
P_pq = P_pq * inv_gamma_pq_ao_extra(q,p)
dist = (P_pq(1)-R(1)) * (P_pq(1)-R(1))
dist+= (P_pq(2)-R(2)) * (P_pq(2)-R(2))
dist+= (P_pq(3)-R(3)) * (P_pq(3)-R(3))
dist = dsqrt(dist)
coul_full_pq_r_1s = coefaos * coef * derf(sqrt_gamma_pq_ao_extra(q,p) * dist)/dist
end