mirror of
https://github.com/TREX-CoE/irpjast.git
synced 2024-08-25 06:31:46 +02:00
Accelerated Jeen
This commit is contained in:
parent
907d62e5ac
commit
916ca5234c
@ -3,9 +3,9 @@ BEGIN_PROVIDER [ double precision, factor_een ]
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! ElectronE-electron-nuclei contribution to Jastrow factor
|
! ElectronE-electron-nuclei contribution to Jastrow factor
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i, j, a, p, k, l, lmax, m
|
integer :: i, j, a, p, k, l, lmax, m, n
|
||||||
double precision :: rjam_cn
|
double precision :: cn, accu2, accu
|
||||||
double precision :: cn
|
double precision :: f(nnuc,0:ncord-2,0:ncord-2)
|
||||||
|
|
||||||
factor_een = 0.0d0
|
factor_een = 0.0d0
|
||||||
|
|
||||||
@ -21,18 +21,17 @@ BEGIN_PROVIDER [ double precision, factor_een ]
|
|||||||
m = (p - k - l) / 2
|
m = (p - k - l) / 2
|
||||||
do a = 1, nnuc
|
do a = 1, nnuc
|
||||||
cn = cord_vect_lkp(l, k, p, typenuc_arr(a))
|
cn = cord_vect_lkp(l, k, p, typenuc_arr(a))
|
||||||
rjam_cn = rescale_een_n(2, a, m) * cn
|
accu2 = 0.d0
|
||||||
factor_een = factor_een + rescale_een_e(1,2,k) * &
|
do j = 2, nelec
|
||||||
(rescale_een_n(1,a,l) + rescale_een_n(2,a,l)) * &
|
accu = 0.d0
|
||||||
rescale_een_n(1,a,m) * rjam_cn
|
|
||||||
do j = 3, nelec
|
|
||||||
rjam_cn = rescale_een_n(j, a, m) * cn
|
|
||||||
do i = 1, j - 1
|
do i = 1, j - 1
|
||||||
factor_een = factor_een + rescale_een_e(i,j,k) * &
|
accu = accu + rescale_een_e(i,j,k) * &
|
||||||
(rescale_een_n(i,a,l) + rescale_een_n(j,a,l)) * &
|
(rescale_een_n(i,a,l) + rescale_een_n(j,a,l)) * &
|
||||||
rescale_een_n(i,a,m) * rjam_cn
|
rescale_een_n(i,a,m)
|
||||||
enddo
|
enddo
|
||||||
|
accu2 = accu2 + accu * rescale_een_n(j, a, m)
|
||||||
enddo
|
enddo
|
||||||
|
factor_een = factor_een + accu2 * cn
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -107,24 +107,18 @@ BEGIN_PROVIDER [double precision, rescale_een_e, (nelec, nelec, 0:ncord)]
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! R = exp(-kappa r) for electron-electron for $J_{een}$
|
! R = exp(-kappa r) for electron-electron for $J_{een}$
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i, j, l
|
integer :: i, j, k, l
|
||||||
double precision :: x
|
double precision :: x
|
||||||
double precision, parameter :: f = dexp(1.d0)
|
double precision, parameter :: f = dexp(1.d0)
|
||||||
|
|
||||||
rescale_een_e(:, :, 0) = 1.d0
|
rescale_een_e(:, :, 0) = 1.d0
|
||||||
|
|
||||||
|
do l = 1, ncord
|
||||||
|
k=0
|
||||||
do j = 1, nelec
|
do j = 1, nelec
|
||||||
do i = 1, j-1
|
do i = 1, j-1
|
||||||
x = dexp(-kappa * elec_dist(i, j))
|
k = k+1
|
||||||
rescale_een_e(i, j, 1) = x
|
x = rescale_een_e_ij(k,l)
|
||||||
rescale_een_e(j, i, 1) = x
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
|
|
||||||
do l = 2, ncord
|
|
||||||
do j = 1, nelec
|
|
||||||
do i = 1, j-1
|
|
||||||
x = rescale_een_e(i, j, l-1) * rescale_een_e(i, j, 1)
|
|
||||||
rescale_een_e(i, j, l) = x
|
rescale_een_e(i, j, l) = x
|
||||||
rescale_een_e(j, i, l) = x
|
rescale_een_e(j, i, l) = x
|
||||||
enddo
|
enddo
|
||||||
@ -138,6 +132,33 @@ BEGIN_PROVIDER [double precision, rescale_een_e, (nelec, nelec, 0:ncord)]
|
|||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, rescale_een_e_ij, (nelec*(nelec-1)/2, 0:ncord)]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! R = exp(-kappa r) for electron-electron for $J_{een}$
|
||||||
|
END_DOC
|
||||||
|
integer :: i, j, l,k
|
||||||
|
double precision :: x
|
||||||
|
double precision, parameter :: f = dexp(1.d0)
|
||||||
|
|
||||||
|
rescale_een_e_ij(:, 0) = 1.d0
|
||||||
|
|
||||||
|
k=0
|
||||||
|
do j = 1, nelec
|
||||||
|
do i = 1, j-1
|
||||||
|
k = k+1
|
||||||
|
rescale_een_e_ij(k, 1) = dexp(-kappa * elec_dist(i, j))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
do l = 2, ncord
|
||||||
|
do k=1,(nelec*nelec-nelec)/2
|
||||||
|
rescale_een_e_ij(k, l) = rescale_een_e_ij(k, l-1) * rescale_een_e_ij(k, 1)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [double precision, rescale_een_n, (nelec, nnuc, 0:ncord)]
|
BEGIN_PROVIDER [double precision, rescale_een_n, (nelec, nnuc, 0:ncord)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
|
Loading…
Reference in New Issue
Block a user