1
0
mirror of https://github.com/TREX-CoE/irpjast.git synced 2024-12-22 20:36:08 +01:00

optim el_nuc_el

This commit is contained in:
Anthony Scemama 2020-12-02 10:41:22 +01:00
parent 247b84f2d2
commit 9392f596ad
3 changed files with 9 additions and 10 deletions

View File

@ -1,10 +1,10 @@
IRPF90 = irpf90 --codelet factor_een:100 IRPF90 = ~/irpf90/bin/irpf90 --codelet factor_een:100
#FC = gfortran #FC = gfortran
#FCFLAGS= -g -msse4.2 -fcheck=all -Waliasing -Wampersand -Wconversion -Wsurprising -Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation -Wreal-q-constant -Wuninitialized -fbacktrace -ffpe-trap=zero,overflow,underflow -finit-real=nan #FCFLAGS= -g -msse4.2 -fcheck=all -Waliasing -Wampersand -Wconversion -Wsurprising -Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation -Wreal-q-constant -Wuninitialized -fbacktrace -ffpe-trap=zero,overflow,underflow -finit-real=nan
FC = ifort -g FC = ifort -g
FCFLAGS= -O2 -xHost -I . FCFLAGS= -O2 -xHost -I .
NINJA = ninja NINJA = ninja
AR = ar AR = ar crs
RANLIB = ranlib RANLIB = ranlib
SRC= SRC=

View File

@ -6,32 +6,31 @@ BEGIN_PROVIDER [double precision, factor_een]
integer :: i, j, alpha, p, k, l, lmax = 0 integer :: i, j, alpha, p, k, l, lmax = 0
double precision :: x, y, z, t, t_inv double precision :: x, y, z, t, t_inv
factor_een = 0.0d0 factor_een = 0.0d0
do alpha = 1, nnuc do alpha = 1, nnuc
do j = 1, nelec do j = 1, nelec
do i = 1, nelec do i = 1, nelec
t_inv = 1.d0/(rescale_een_n(i, alpha) * rescale_een_n(j, alpha)) t_inv = 1.d0/(rescale_een_n(i, alpha) * rescale_een_n(j, alpha))
do p = 2, ncord do p = 2, ncord
do k = p - 1, 0, -1 x = 1.d0
do k = 0, p - 1
if ( k == 0 ) then if ( k == 0 ) then
lmax = p - k - 2 lmax = p - k - 2
else else
lmax = p - k lmax = p - k
end if end if
x = 1.d0
y = 1.d0 y = 1.d0
z = 1.d0 z = 1.d0
t = (rescale_een_n(i, alpha) * rescale_een_n(j, alpha)) ** (rshift(p - k,1)) t = (rescale_een_n(i, alpha) * rescale_een_n(j, alpha)) ** (rshift(p - k,1))
do l = 0, lmax do l = 0, lmax
if ( iand(p - k - l, 1) == 0 ) then if ( iand(p - k - l, 1) == 0 ) then
factor_een = factor_een + cord_vect(l, k, p, alpha) * x & factor_een = factor_een + cord_vect(l, k, p, alpha) * x * (y+z) * t
* (y + z) * t
t = t * t_inv t = t * t_inv
end if end if
x = x * rescale_een_e(i, j) y = y * rescale_een_n(i, alpha)
y = y * rescale_een_n(i, alpha) z = z * rescale_een_n(j, alpha)
z = z * rescale_een_n(j, alpha)
end do end do
x = x * rescale_een_e(i, j)
end do end do
end do end do
end do end do

BIN
jastrow

Binary file not shown.