1
0
mirror of https://github.com/TREX-CoE/irpjast.git synced 2024-11-03 20:54:10 +01:00

Fix nuclei formula

This commit is contained in:
Panadestein 2020-12-08 18:56:36 +01:00
parent ea0d11a899
commit be13b968df
8 changed files with 62 additions and 67 deletions

View File

@ -2,7 +2,7 @@ IRPF90 = irpf90 #-a -d
FC = gfortran FC = gfortran
FCFLAGS= -O2 -ffree-line-length-none -I . FCFLAGS= -O2 -ffree-line-length-none -I .
NINJA = ninja NINJA = ninja
AR = ar ARCHIVE= ar crs
RANLIB = ranlib RANLIB = ranlib
SRC= SRC=

View File

@ -6,6 +6,14 @@ BEGIN_PROVIDER [ integer, nelec ]
nelec = 10 nelec = 10
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [ integer, nelec_up ]
implicit none
BEGIN_DOC
! Number of alpha and beta electrons
END_DOC
nelec_up = 5
END_PROVIDER
BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ] BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ]
implicit none implicit none
@ -22,6 +30,7 @@ BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ]
end do end do
close(fu) close(fu)
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [ double precision, elec_dist, (nelec, nelec) ] BEGIN_PROVIDER [ double precision, elec_dist, (nelec, nelec) ]
@ -48,22 +57,30 @@ BEGIN_PROVIDER [double precision, factor_ee]
! Electron-electron contribution to Jastrow factor ! Electron-electron contribution to Jastrow factor
END_DOC END_DOC
integer :: i, j, p integer :: i, j, p
double precision :: pow_ser, x double precision :: pow_ser, x, b_one
factor_ee = 0.0d0 factor_ee = 0.0d0
pow_ser = 0.0d0
do j = 1, nelec do j = 1, nelec
do i = 1, nelec do i = 1, nelec
x = rescale_ee(i, j) * rescale_ee(i, j) x = rescale_ee(i, j)
pow_ser = 0.0d0
do p = 2, nbord do p = 2, nbord
x = x * rescale_ee(i, j) x = x * rescale_ee(i, j)
pow_ser = pow_ser + bord_vect(p + 1) * x pow_ser = pow_ser + bord_vect(p + 1) * x
end do end do
factor_ee = factor_ee + bord_vect(1) * rescale_ee(i, j) &
if (i <= nelec_up .or. j >= nelec_up) then
b_one = bord_vect(1) * 0.5d0
else
b_one = bord_vect(1)
end if
factor_ee = factor_ee + b_one * rescale_ee(i, j) &
/ (1.0d0 + bord_vect(2) * rescale_ee(i, j)) + pow_ser / (1.0d0 + bord_vect(2) * rescale_ee(i, j)) + pow_ser
end do end do
end do end do
factor_ee = 0.5d0 * factor_ee factor_ee = 0.5d0 * factor_ee
END_PROVIDER END_PROVIDER

View File

@ -1,35 +1,35 @@
-0.00008444 0.00000000
-0.00003393 0.00000000
0.00009230 -0.380512
-0.00006224 -0.157996
-0.00007552 -0.031558
0.00009380 0.021512
0.00001181 0.5000000
0.00009928 0.153660
-0.00007969 0.0672262
0.00001493 0.021570
0.00007319 0.0073096
-0.00004341 0.002866
-0.00002337 0.571702
0.00007838 -0.5142530
-0.00006033 -0.513043
-0.00002512 0.009486
0.00004281 -0.004205
0.00004631 0.4263258
-0.00008111 0.0828815
-0.00001758 0.0051186
0.00002855 -0.0029978
0.00008134 -0.0052704
-0.00003731 -0.000075
0.00002581 -0.0830165
0.00007723 0.0145434
-0.00007482 0.0514351
-0.00004745 0.000925
-0.00006915 -0.0040991
-0.00008698 0.0043276
-0.00001448 -0.00165447
-0.00005086 0.002614
0.00001145 -0.001477
-0.00003374 -0.0011370
0.00009208 -0.04010475
0.00007611 0.00610671

BIN
jastrow

Binary file not shown.

View File

@ -8,7 +8,7 @@ BEGIN_PROVIDER [ double precision, jastrow_full ]
print *, factor_ee print *, factor_ee
print *, factor_en print *, factor_en
print *, factor_een print *, factor_een
jastrow_full = dexp(factor_ee + factor_en + factor_een) jastrow_full = dexp(factor_ee + factor_en + factor_een)
END_PROVIDER END_PROVIDER

View File

@ -62,11 +62,11 @@ BEGIN_PROVIDER [double precision, factor_en]
double precision :: pow_ser, x double precision :: pow_ser, x
factor_en = 0.0d0 factor_en = 0.0d0
pow_ser = 0.0d0
do j = 1 , nnuc do j = 1 , nnuc
do i = 1, nelec do i = 1, nelec
x = rescale_en(i, j) * rescale_en(i, j) x = rescale_en(i, j)
pow_ser = 0.0d0
do p = 2, naord do p = 2, naord
x = x * rescale_en(i, j) x = x * rescale_en(i, j)
pow_ser = pow_ser + aord_vect(p + 1, typenuc_arr(j)) * x pow_ser = pow_ser + aord_vect(p + 1, typenuc_arr(j)) * x
@ -76,5 +76,4 @@ BEGIN_PROVIDER [double precision, factor_en]
end do end do
end do end do
factor_en = 0.5d0 * factor_en
END_PROVIDER END_PROVIDER

View File

@ -47,8 +47,8 @@ BEGIN_PROVIDER [integer, dim_cord_vect]
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [double precision, aord_vect, (0:naord, typenuc)] BEGIN_PROVIDER [double precision, aord_vect, (naord + 1, typenuc)]
&BEGIN_PROVIDER [double precision, bord_vect, (0:nbord)] &BEGIN_PROVIDER [double precision, bord_vect, (nbord + 1)]
&BEGIN_PROVIDER [double precision, cord_vect, (dim_cord_vect, typenuc)] &BEGIN_PROVIDER [double precision, cord_vect, (dim_cord_vect, typenuc)]
implicit none implicit none
BEGIN_DOC BEGIN_DOC

View File

@ -1,21 +0,0 @@
BEGIN_PROVIDER [ integer, seed_size ]
implicit none
BEGIN_DOC
! Size of the random seed
END_DOC
call random_seed(size=seed_size)
END_PROVIDER
BEGIN_PROVIDER [ integer, seed, (seed_size) ]
implicit none
BEGIN_DOC
! Random seed
END_DOC
integer :: i
do i=1,seed_size
seed(i) = i
enddo
call random_seed(put=seed)
END_PROVIDER