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

Woring on interface with CHAMP

This commit is contained in:
Panadestein 2021-01-04 16:37:30 +01:00
parent 01126faa45
commit b9021dc2b4
11 changed files with 101 additions and 72 deletions

View File

@ -1,11 +1,11 @@
IRPF90 = irpf90 #-a -d
FC = gfortran
FCFLAGS= -O2 -ffree-line-length-none -I .
FC = ifort
FCFLAGS= -O2 -I .
NINJA = ninja
AR = ar
ARCHIVE= ar crs
RANLIB = ranlib
SRC=
SRC=inputs.f90
OBJ=
LIB=

BIN
deriv_num

Binary file not shown.

View File

@ -41,8 +41,8 @@ END_PROVIDER
BEGIN_PROVIDER [ double precision, factor_een_deriv_e, (4, nelec) ]
implicit none
BEGIN_DOC
! Dimensions 1-3 : dx, dy, dz
! Dimension 4 : d2x + d2y + d2z
! Dimensions 1-3: dx, dy, dz
! Dimension 4: d2x + d2y + d2z
END_DOC
integer :: i, ii, j, a, p, k, l, lmax, m
double precision :: riam, rjam_cn, rial, rjal, rijk

View File

@ -14,25 +14,6 @@ BEGIN_PROVIDER [ integer, nelec_up ]
nelec_up = 5
END_PROVIDER
BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ]
implicit none
BEGIN_DOC
! Electron coordinates
END_DOC
character(len=*), parameter :: FILE_NAME = "elec_coord.txt"
integer :: fu, rc, i, j
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
do i = 1, nelec
read(fu, *) elec_coord(i, :)
end do
close(fu)
END_PROVIDER
BEGIN_PROVIDER [ double precision, elec_dist, (nelec, nelec) ]
implicit none
BEGIN_DOC

21
input.irp.f Normal file
View File

@ -0,0 +1,21 @@
BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ]
&BEGIN_PROVIDER [ double precision, nuc_coord, (nnuc, 3) ]
&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
! Reads all input requested for Jatrow computation from an external procedure.
! Can be be used to interface with CHAMP
END_DOC
call irpinp(nelec, elec_coord, nnuc, typenuc, nuc_coord, &
naord, nbord, dim_cord_vect, aord_vect, bord_vect, cord_vect)
TOUCH elec_coord
TOUCH nuc_coord
TOUCH aord_vect
TOUCH bord_vect
TOUCH cord_vect
END_PROVIDER

58
input.irp.f.backup Normal file
View File

@ -0,0 +1,58 @@
BEGIN_PROVIDER [ double precision, elec_coord, (nelec, 3) ]
implicit none
BEGIN_DOC
! Electron coordinates
END_DOC
character(len=*), parameter :: FILE_NAME = "elec_coord.txt"
integer :: fu, rc, i, j
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
do i = 1, nelec
read(fu, *) elec_coord(i, :)
end do
close(fu)
END_PROVIDER
BEGIN_PROVIDER [ double precision, nuc_coord, (nnuc, 3) ]
implicit none
BEGIN_DOC
! Nuclei coordinates
END_DOC
character(len=*), parameter :: FILE_NAME = "geometry.txt"
integer :: fu, rc, i
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
do i = 1, nnuc
read(fu, *) nuc_coord(i, :)
end do
close(fu)
END_PROVIDER
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
! Read Jastow coefficients from file
END_DOC
PROVIDE naord
PROVIDE nbord
PROVIDE ncord
character(len=*), parameter :: FILE_NAME = "jast_coeffs.txt"
integer :: i, fu, rc
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
read(fu, *) aord_vect
read(fu, *) bord_vect
read(fu, *) cord_vect
close(fu)
END_PROVIDER

16
inputs.f90 Normal file
View File

@ -0,0 +1,16 @@
subroutine irpinp(nelec, elec_coord, nnuc, typenuc, nuc_coord, &
naord, nbord, ncord, aord_vect, bord_vect, cord_vect)
! This is a ghost subroutine to interop with CHAMP variables
implicit none
integer, intent(in) :: nelec
integer, intent(in) :: nnuc
integer, intent(in) :: typenuc
integer, intent(in) :: naord
integer, intent(in) :: nbord
integer, intent(in) :: ncord
double precision, dimension(nelec, 3), intent(inout) :: elec_coord
double precision, dimension(nnuc, 3), intent(inout) :: nuc_coord
double precision, dimension(naord + 1, typenuc), intent(inout) :: aord_vect
double precision, dimension(nbord + 1), intent(inout) :: bord_vect
double precision, dimension(ncord, typenuc), intent(inout) :: cord_vect
end subroutine irpinp

BIN
jastrow

Binary file not shown.

View File

@ -9,10 +9,6 @@ BEGIN_PROVIDER [ double precision, jastrow_full ]
print *, "J_en = ", factor_en
print *, "J_een = ", factor_een
print *, "J = J_ee + J_en + J_een = ", factor_ee + factor_en + factor_een
print *, "\nabla_ix J_een", factor_een_deriv_e(1, :)
print *, "\nabla_iy J_een", factor_een_deriv_e(2, :)
print *, "\nabla_iz J_een", factor_een_deriv_e(3, :)
print *, "\nabla_i^2 J_een", factor_een_deriv_e(4, :)
jastrow_full = dexp(factor_ee + factor_en + factor_een)

View File

@ -17,25 +17,6 @@ BEGIN_PROVIDER [ integer, typenuc ]
typenuc_arr = (/1, 1/)
END_PROVIDER
BEGIN_PROVIDER [ double precision, nuc_coord, (nnuc, 3) ]
implicit none
BEGIN_DOC
! Nuclei coordinates
END_DOC
character(len=*), parameter :: FILE_NAME = "geometry.txt"
integer :: fu, rc, i
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
do i = 1, nnuc
read(fu, *) nuc_coord(i, :)
end do
close(fu)
END_PROVIDER
BEGIN_PROVIDER [ double precision, elnuc_dist, (nelec, nnuc) ]
implicit none
BEGIN_DOC

View File

@ -45,30 +45,6 @@ BEGIN_PROVIDER [integer, dim_cord_vect]
end do
END_PROVIDER
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
! Read Jastow coefficients from file
END_DOC
PROVIDE naord
PROVIDE nbord
PROVIDE ncord
character(len=*), parameter :: FILE_NAME = "jast_coeffs.txt"
integer :: i, fu, rc
open(action='read', file=FILE_NAME, iostat=rc, newunit=fu)
read(fu, *) aord_vect
read(fu, *) bord_vect
read(fu, *) cord_vect
close(fu)
END_PROVIDER
BEGIN_PROVIDER [ double precision, cord_vect_lkp, (0:ncord-1, 0:ncord-1, 2:ncord, typenuc) ]
implicit none