From 9a07a3d9e8de108a7d0fe68c0e25a7456e6ad238 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 10 Dec 2020 17:21:38 +0100 Subject: [PATCH] WIP: Derivatives --- Makefile | 2 +- el_nuc_el.irp.f | 154 +++++++++++++++++++++++++----------------------- jastrow | Bin 48456 -> 52648 bytes jastrow.irp.f | 1 - rescale.irp.f | 41 ++++++++++++- 5 files changed, 122 insertions(+), 76 deletions(-) diff --git a/Makefile b/Makefile index c7aad79..6cec241 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -IRPF90 = irpf90 --codelet=factor_een_2:100000 #--codelet=factor_een:10000 +IRPF90 = irpf90 --codelet=factor_een:100000 FC = gfortran FCFLAGS= -O2 -march=native -ffree-line-length-none -I . NINJA = ninja diff --git a/el_nuc_el.irp.f b/el_nuc_el.irp.f index 36ac9ef..038c4fc 100644 --- a/el_nuc_el.irp.f +++ b/el_nuc_el.irp.f @@ -1,73 +1,4 @@ -BEGIN_PROVIDER [double precision, factor_een] - implicit none - BEGIN_DOC - ! Electron-electron nucleus contribution to Jastrow factor - END_DOC - integer :: i, j, alpha, p, k, l, lmax, cindex - double precision :: x, y, z, t, c_inv, u, a, b, a2, b2, c, t0 - - PROVIDE cord_vect - factor_een = 0.0d0 - - do alpha = 1, nnuc - do j = 1, nelec - b = rescale_een_n(j, alpha, 1) - do i = 1, nelec - u = rescale_een_e(i, j, 1) - a = rescale_een_n(i, alpha, 1) - a2 = a * a - b2 = b * b - c = rescale_een_n(i, alpha, 1) * rescale_een_n(j, alpha, 1) - c_inv = 1.0d0 / c - cindex = 0 - do p = 2, ncord - x = 1.0d0 - do k = 0, p - 1 - if ( k /= 0 ) then - lmax = p - k - else - lmax = p - k - 2 - end if - t = x - do l = 1, rshift(p - k, 1) - t = t * c - end do - ! We have suppressed this from the following loop: - ! if ( iand(p - k - l, 1) == 0 ) then - ! - ! Start from l=0 when p-k is even - ! Start from l=1 when p-k is odd - if (iand(p - k, 1) == 0) then - y = 1.0d0 - z = 1.0d0 - else - y = a - z = b - endif - do l = iand(p - k, 1), lmax, 2 - ! This can be used in case of a flatten cord_vect - ! cidx = 1 + l + (ncord + 1) * k + (ncord + 1) * (ncord + 1) * (p - 1) + & - ! (ncord + 1) * (ncord + 1) * ncord * (alpha - 1) - cindex = cindex + 1 - factor_een = factor_een + cord_vect(cindex, typenuc_arr(alpha)) * (y + z) * t - t = t * c_inv - y = y * a2 - z = z * b2 - end do - x = x * u - end do - end do - end do - end do - end do - - factor_een = 0.5d0 * factor_een - -END_PROVIDER - - - -BEGIN_PROVIDER [ double precision, factor_een_2 ] +BEGIN_PROVIDER [ double precision, factor_een ] implicit none BEGIN_DOC ! @@ -76,7 +7,7 @@ BEGIN_PROVIDER [ double precision, factor_een_2 ] double precision :: riam, rjam_cn, rial, rjal, rijk double precision :: cn - factor_een_2 = 0.0d0 + factor_een = 0.0d0 do p=2,ncord do k=0,p-1 @@ -87,7 +18,9 @@ BEGIN_PROVIDER [ double precision, factor_een_2 ] endif do l=0,lmax - if ( iand(p-k-l,1) == 1) cycle + if ( iand(p-k-l,1) == 1) then + cycle + endif m = (p-k-l)/2 do a=1, nnuc @@ -99,7 +32,7 @@ BEGIN_PROVIDER [ double precision, factor_een_2 ] rial = rescale_een_n(i,a,l) riam = rescale_een_n(i,a,m) rijk = rescale_een_e(i,j,k) - factor_een_2 = factor_een_2 + & + factor_een = factor_een + & rijk * (rial+rjal) * riam * rjam_cn enddo enddo @@ -111,3 +44,78 @@ BEGIN_PROVIDER [ double precision, factor_een_2 ] END_PROVIDER +BEGIN_PROVIDER [ double precision, factor_een_deriv_e, (4,nelec) ] + implicit none + BEGIN_DOC + ! dimensions 1-3 : dx,dy,dz + ! + ! Rdimension 4 : d2x + d2y + d2z + END_DOC + integer :: i,j,a,p,k,l,lmax,m + double precision :: riam, rjam_cn, rial, rjal, rijk + double precision, dimension(4) :: driam, drjam_cn, drial, drjal, drijk + double precision :: cn, v1, v2, l1, l2, d1, d2 + + factor_een_deriv_e = 0.0d0 + + do p=2,ncord + do k=0,p-1 + if (k /= 0) then + lmax = p-k + else + lmax = p-k-2 + endif + + do l=0,lmax + if ( iand(p-k-l,1) == 1) then + cycle + endif + m = (p-k-l)/2 + + do a=1, nnuc + cn = cord_vect_lkp(l,k,p,typenuc_arr(a)) + do j=1, nelec + rjal = rescale_een_n(j,a,l) + rjam_cn = rescale_een_n(j,a,m) * cn + do ii=1,4 + drjal(ii) = rescale_een_n_deriv_e(ii,j,a,l) + drjam_cn(ii) = rescale_een_n_deriv_e(ii,j,a,m) * cn + enddo + factor_een_deriv_e(:,j) = 0.d0 + do i=1, nelec + rial = rescale_een_n(i,a,l) + riam = rescale_een_n(i,a,m) + rijk = rescale_een_e(i,j,k) + do ii=1,4 + drijk(ii) = rescale_een_e_deriv_e(ii,i,j,k) + enddo + l1 = 0.d0 + l2 = 0.d0 + x(1:3) = 0.d0 + x(4) = 2.d0 + do ii=1,4 + v1 = rijk * (rial+rjal) + v2 = rjam_cn * riam + + d1 = drijk(ii) * (rial+rjal) + rijk * (rial+drjal(ii)) + d2 = drjam_cn(ii) * riam + + l1 = l1 + drijk(ii) * (rial+drjal(ii)) + l2 = l2 + drjam_cn(ii) * riam + + factor_een_deriv_e(ii,j) = factor_een_deriv_e(ii,j) + & + v1 * d2 + d1 * v2 + x(ii) * (l1 + l2) + enddo + factor_een_deriv_e(ii,j) = factor_een_deriv_e(ii,j) + & + v1 * d2 + d1 * v2 + enddo + enddo + enddo + + enddo + enddo + enddo + factor_een_deriv_e = 0.5d0 * factor_een_deriv_e + +END_PROVIDER + diff --git a/jastrow b/jastrow index d641b47ccb458b96f41a79b55d24807f0dba3f33..a4f3b789194144b97c2c809504dd50c016e35f53 100755 GIT binary patch literal 52648 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 Li(-^8y8QnEmKHA# literal 48456 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. We need to set Rjj=0 to + ! enable looping of j=1,nelec do l=0,ncord + do l=0,ncord + do j=1,nelec + rescale_een_e(j, j, l) = 0.d0 + enddo + enddo END_PROVIDER -BEGIN_PROVIDER [double precision, rescale_een_n, (nelec, nnuc, 0:ncord)] +BEGIN_PROVIDER [double precision, rescale_een_n, (4, nelec, nnuc, 0:ncord)] implicit none BEGIN_DOC ! R = exp(-kappa r) for electron-electron for $J_{een}$ @@ -79,3 +88,33 @@ BEGIN_PROVIDER [double precision, rescale_een_n, (nelec, nnuc, 0:ncord)] enddo rescale_een_n = dexp(rescale_een_n) END_PROVIDER + +BEGIN_PROVIDER [double precision, rescale_een_n_deriv_e, (4,nelec, nnuc, 0:ncord)] + implicit none + BEGIN_DOC + ! R = exp(-kappa r) for electron-electron for $J_{een}$ + END_DOC + integer :: i, j, l + double precision :: kappa_l + + do l=0,ncord + kappa_l = - dble(l) * kappa + do j = 1, nnuc + do i = 1, nelec + do ii=1,4 + rescale_een_n_deriv_e(ii, i, j, l) = & + kappa_l * elnuc_dist_deriv_e(ii,i,j) + enddo + rescale_een_n_deriv_e(4, i, j, l) = rescale_een_n_deriv_e(4, i, j, l) + & + rescale_een_n_deriv_e(1, i, j, l) * rescale_een_n_deriv_e(1, i, j, l) + & + rescale_een_n_deriv_e(2, i, j, l) * rescale_een_n_deriv_e(2, i, j, l) + & + rescale_een_n_deriv_e(3, i, j, l) * rescale_een_n_deriv_e(3, i, j, l) + do ii=1,4 + rescale_een_n_deriv_e(ii, i, j, l) = & + rescale_een_n_deriv_e(ii,i,j, l) * rescale_een_n(i, j, l) + enddo + enddo + enddo + enddo +END_PROVIDER +