mirror of
https://github.com/TREX-CoE/irpjast.git
synced 2024-12-22 12:23:57 +01:00
Almost functional version. Need correct Cord
This commit is contained in:
parent
32576e0221
commit
0af276cfc5
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ IRPF90_man/
|
|||||||
irpf90.make
|
irpf90.make
|
||||||
irpf90_entities
|
irpf90_entities
|
||||||
tags
|
tags
|
||||||
|
*.mod
|
@ -0,0 +1,32 @@
|
|||||||
|
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 = 0
|
||||||
|
factor_een = 0.0d0
|
||||||
|
|
||||||
|
do alpha = 1, nnuc
|
||||||
|
do j = 1, nelec
|
||||||
|
do i = 1, nelec
|
||||||
|
do p = 2, ncord
|
||||||
|
do k = p - 1, 0
|
||||||
|
if ( k == 0 ) then
|
||||||
|
lmax = p - k - 2
|
||||||
|
else
|
||||||
|
lmax = p - k
|
||||||
|
end if
|
||||||
|
do l = lmax, 0
|
||||||
|
if ( mod(p - k - l, 2) == 0 ) then
|
||||||
|
factor_een = factor_een + cord_vect(p, k, l) * rescale_een_e(i, j) ** k &
|
||||||
|
* (rescale_een_n(i, alpha) ** l + rescale_een_n(j, alpha) ** l) * &
|
||||||
|
(rescale_een_n(i, alpha) * rescale_een_n(j, alpha)) ** ((p - k - l) * 0.5d0)
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
|
||||||
|
END_PROVIDER
|
@ -43,6 +43,10 @@ BEGIN_PROVIDER [double precision, factor_ee]
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Electron-electron contribution to Jastrow factor
|
! Electron-electron contribution to Jastrow factor
|
||||||
END_DOC
|
END_DOC
|
||||||
|
integer :: i, j
|
||||||
|
double precision :: pow_ser = 0.0d0
|
||||||
|
factor_ee = 0.0d0
|
||||||
|
|
||||||
do j = 1 , nelec
|
do j = 1 , nelec
|
||||||
do i = 1, nelec
|
do i = 1, nelec
|
||||||
do p = 2, nbord
|
do p = 2, nbord
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
program jastrow
|
program jastrow
|
||||||
implicit none
|
implicit none
|
||||||
print *, elec_coord
|
print *, 'The total Jastrow factor'
|
||||||
print *, ''
|
print *, dexp(factor_ee + factor_en + factor_een)
|
||||||
print *, elec_dist
|
|
||||||
print *, ''
|
|
||||||
print *, rescale_ee
|
|
||||||
end program
|
end program
|
||||||
|
@ -44,7 +44,9 @@ BEGIN_PROVIDER [double precision, factor_en]
|
|||||||
! Electron-nuclei contribution to Jastrow factor
|
! Electron-nuclei contribution to Jastrow factor
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i, j, p
|
integer :: i, j, p
|
||||||
double precision :: pow_ser
|
double precision :: pow_ser = 0.0d0
|
||||||
|
factor_en = 0.0d0
|
||||||
|
|
||||||
do j = 1 , nnuc
|
do j = 1 , nnuc
|
||||||
do i = 1, nnuc
|
do i = 1, nnuc
|
||||||
do p = 2, naord
|
do p = 2, naord
|
||||||
|
@ -45,7 +45,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [double precision, cord_vect, (ncord)]
|
BEGIN_PROVIDER [double precision, cord_vect, (ncord)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Vector of the `b' coefficients
|
! Vector of the `c' coefficients
|
||||||
END_DOC
|
END_DOC
|
||||||
do i = 1, ncord
|
do i = 1, ncord
|
||||||
call random_number(cord_vect)
|
call random_number(cord_vect)
|
||||||
|
@ -11,13 +11,13 @@ BEGIN_PROVIDER [ double precision, kappa_inv ]
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! inverse of kappa
|
! inverse of kappa
|
||||||
END_DOC
|
END_DOC
|
||||||
kappa_inv = 1.d0/kappa
|
kappa_inv = 1.d0 / kappa
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, rescale_ee, (nelec, nelec) ]
|
BEGIN_PROVIDER [ double precision, rescale_ee, (nelec, nelec) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! R = (1 - exp(-kappa r))/kappa for electron-electron
|
! R = (1 - exp(-kappa r))/kappa for electron-electron for $J_{ee}$
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i, j
|
integer :: i, j
|
||||||
do j=1,nelec
|
do j=1,nelec
|
||||||
@ -30,12 +30,38 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, rescale_en, (nelec, nnuc) ]
|
BEGIN_PROVIDER [ double precision, rescale_en, (nelec, nnuc) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! R = (1 - exp(-kappa r))/kappa for electron-nucleus
|
! R = (1 - exp(-kappa r))/kappa for electron-nucleus for $J_{en}$
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i, j
|
integer :: i, j
|
||||||
do j = 1, nnuc
|
do j = 1, nnuc
|
||||||
do i = 1, nelec
|
do i = 1, nelec
|
||||||
rescale_en(i,j) = (1.d0 - dexp(-kappa * elnuc_dist(i,j))) * kappa_inv
|
rescale_en(i, j) = (1.d0 - dexp(-kappa * elnuc_dist(i, j))) * kappa_inv
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, rescale_een_e, (nelec, 3)]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! R = exp(-kappa r) for electron-electron for $J_{een}$
|
||||||
|
END_DOC
|
||||||
|
integer :: i, j
|
||||||
|
do j = 1, nelec
|
||||||
|
do i = 1, nelec
|
||||||
|
rescale_een_e(i, j) = dexp(-kappa * elec_dist(i, j))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, rescale_een_n, (nnuc, 3)]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! R = exp(-kappa r) for electron-electron for $J_{een}$
|
||||||
|
END_DOC
|
||||||
|
integer :: i, j
|
||||||
|
do j = 1, nnuc
|
||||||
|
do i = 1, nelec
|
||||||
|
rescale_een_n(i, j) = dexp(-kappa * elnuc_dist(i, j))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
Loading…
Reference in New Issue
Block a user