diff --git a/Makefile b/Makefile index 24b8b55..9ae4c71 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ IRPF90 = irpf90 #-a -d FC = gfortran FCFLAGS= -O2 -ffree-line-length-none -I . NINJA = ninja -AR = ar +ARCHIVE= ar crs RANLIB = ranlib SRC= diff --git a/electrons.irp.f b/electrons.irp.f index b83b836..38186bc 100644 --- a/electrons.irp.f +++ b/electrons.irp.f @@ -6,6 +6,14 @@ BEGIN_PROVIDER [ integer, nelec ] nelec = 10 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) ] implicit none @@ -22,6 +30,7 @@ BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ] end do close(fu) + END_PROVIDER BEGIN_PROVIDER [ double precision, elec_dist, (nelec, nelec) ] @@ -48,22 +57,30 @@ BEGIN_PROVIDER [double precision, factor_ee] ! Electron-electron contribution to Jastrow factor END_DOC integer :: i, j, p - double precision :: pow_ser, x + double precision :: pow_ser, x, b_one factor_ee = 0.0d0 - pow_ser = 0.0d0 do j = 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 x = x * rescale_ee(i, j) pow_ser = pow_ser + bord_vect(p + 1) * x 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 end do end do factor_ee = 0.5d0 * factor_ee + END_PROVIDER diff --git a/jast_coeffs.txt b/jast_coeffs.txt index a064ab3..5b23c66 100644 --- a/jast_coeffs.txt +++ b/jast_coeffs.txt @@ -1,35 +1,35 @@ --0.00008444 --0.00003393 -0.00009230 --0.00006224 --0.00007552 -0.00009380 -0.00001181 -0.00009928 --0.00007969 -0.00001493 -0.00007319 --0.00004341 --0.00002337 -0.00007838 --0.00006033 --0.00002512 -0.00004281 -0.00004631 --0.00008111 --0.00001758 -0.00002855 -0.00008134 --0.00003731 -0.00002581 -0.00007723 --0.00007482 --0.00004745 --0.00006915 --0.00008698 --0.00001448 --0.00005086 -0.00001145 --0.00003374 -0.00009208 -0.00007611 +0.00000000 +0.00000000 +-0.380512 +-0.157996 +-0.031558 +0.021512 +0.5000000 +0.153660 +0.0672262 +0.021570 +0.0073096 +0.002866 +0.571702 +-0.5142530 +-0.513043 +0.009486 +-0.004205 +0.4263258 +0.0828815 +0.0051186 +-0.0029978 +-0.0052704 +-0.000075 +-0.0830165 +0.0145434 +0.0514351 +0.000925 +-0.0040991 +0.0043276 +-0.00165447 +0.002614 +-0.001477 +-0.0011370 +-0.04010475 +0.00610671 diff --git a/jastrow b/jastrow index 51f8827..a86a7df 100755 Binary files a/jastrow and b/jastrow differ diff --git a/jastrow_provider.irp.f b/jastrow_provider.irp.f index 9652d85..70a0acd 100644 --- a/jastrow_provider.irp.f +++ b/jastrow_provider.irp.f @@ -8,7 +8,7 @@ BEGIN_PROVIDER [ double precision, jastrow_full ] print *, factor_ee print *, factor_en print *, factor_een - + jastrow_full = dexp(factor_ee + factor_en + factor_een) END_PROVIDER diff --git a/nuclei.irp.f b/nuclei.irp.f index d11f19a..7a89720 100644 --- a/nuclei.irp.f +++ b/nuclei.irp.f @@ -62,11 +62,11 @@ BEGIN_PROVIDER [double precision, factor_en] double precision :: pow_ser, x factor_en = 0.0d0 - pow_ser = 0.0d0 do j = 1 , nnuc 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 x = x * rescale_en(i, j) 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 - factor_en = 0.5d0 * factor_en END_PROVIDER diff --git a/orders.irp.f b/orders.irp.f index df09f13..187f1cb 100644 --- a/orders.irp.f +++ b/orders.irp.f @@ -47,8 +47,8 @@ BEGIN_PROVIDER [integer, dim_cord_vect] END_PROVIDER -BEGIN_PROVIDER [double precision, aord_vect, (0:naord, typenuc)] -&BEGIN_PROVIDER [double precision, bord_vect, (0:nbord)] +BEGIN_PROVIDER [double precision, aord_vect, (naord + 1, typenuc)] +&BEGIN_PROVIDER [double precision, bord_vect, (nbord + 1)] &BEGIN_PROVIDER [double precision, cord_vect, (dim_cord_vect, typenuc)] implicit none BEGIN_DOC diff --git a/random.irp.f b/random.irp.f deleted file mode 100644 index 487982a..0000000 --- a/random.irp.f +++ /dev/null @@ -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