9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2025-04-25 17:54:44 +02:00

fixed 3-body jastrow for qmckl

This commit is contained in:
eginer 2025-04-11 18:32:40 +02:00
parent c9de28b903
commit 17e401eed9
4 changed files with 40 additions and 30 deletions

View File

@ -117,9 +117,12 @@
integer*8 :: n_points, n_points_max, k integer*8 :: n_points, n_points_max, k
integer :: ipoint_block, ipoint_end integer :: ipoint_block, ipoint_end
integer :: block_size
! TODO block_size in the EZFIO
block_size = 10
n_points_max = n_points_extra_final_grid * n_points_final_grid n_points_max = n_points_extra_final_grid * n_points_final_grid
n_points = 100_8*n_points_extra_final_grid n_points = block_size*n_points_extra_final_grid
! n_points = n_points_max
double precision, allocatable :: rij(:,:,:) double precision, allocatable :: rij(:,:,:)
allocate( rij(3, 2, n_points) ) allocate( rij(3, 2, n_points) )
@ -131,9 +134,10 @@
allocate( gl(2,4,n_points) ) allocate( gl(2,4,n_points) )
do ipoint_block = 1, n_points_final_grid, 100 ! r1 do ipoint_block = 1, n_points_final_grid, block_size ! r1
ipoint_end = min(n_points_final_grid, ipoint_block+99) ipoint_end = min(n_points_final_grid, ipoint_block+block_size-1)
integer*8 :: n_points_local
k=0 k=0
do ipoint = ipoint_block, ipoint_end do ipoint = ipoint_block, ipoint_end
do jpoint = 1, n_points_extra_final_grid ! r2 do jpoint = 1, n_points_extra_final_grid ! r2
@ -142,8 +146,9 @@
rij(1:3, 2, k) = final_grid_points_extra(1:3, jpoint) rij(1:3, 2, k) = final_grid_points_extra(1:3, jpoint)
end do end do
enddo enddo
n_points_local = k
rc = qmckl_set_electron_coord(qmckl_ctx_jastrow, 'N', n_points, rij, n_points*6_8) rc = qmckl_set_electron_coord(qmckl_ctx_jastrow, 'N', n_points_local, rij, n_points*6_8)
if (rc /= QMCKL_SUCCESS) then if (rc /= QMCKL_SUCCESS) then
print *, irp_here, 'qmckl error in set_electron_coord' print *, irp_here, 'qmckl error in set_electron_coord'
rc = qmckl_check(qmckl_ctx_jastrow, rc) rc = qmckl_check(qmckl_ctx_jastrow, rc)
@ -173,22 +178,22 @@
! --- ! ---
! e-e-n term ! e-e-n term
! rc = qmckl_get_jastrow_champ_factor_een_gl(qmckl_ctx_jastrow, gl, 8_8*n_points) rc = qmckl_get_jastrow_champ_factor_een_gl(qmckl_ctx_jastrow, gl, 8_8*n_points)
! if (rc /= QMCKL_SUCCESS) then if (rc /= QMCKL_SUCCESS) then
! print *, irp_here, 'qmckl error in fact_een_gl' print *, irp_here, 'qmckl error in fact_een_gl'
! rc = qmckl_check(qmckl_ctx_jastrow, rc) rc = qmckl_check(qmckl_ctx_jastrow, rc)
! stop -1 stop -1
! endif endif
!
! k=0 k=0
! do ipoint = 1, n_points_final_grid ! r1 do ipoint = ipoint_block, ipoint_end
! do jpoint = 1, n_points_extra_final_grid ! r2 do jpoint = 1, n_points_extra_final_grid ! r2
! k=k+1 k=k+1
! grad1_u12_num(jpoint,ipoint,1) = grad1_u12_num(jpoint,ipoint,1) + gl(1,1,k) grad1_u12_num(jpoint,ipoint,1) = grad1_u12_num(jpoint,ipoint,1) + gl(1,1,k)
! grad1_u12_num(jpoint,ipoint,2) = grad1_u12_num(jpoint,ipoint,2) + gl(1,2,k) grad1_u12_num(jpoint,ipoint,2) = grad1_u12_num(jpoint,ipoint,2) + gl(1,2,k)
! grad1_u12_num(jpoint,ipoint,3) = grad1_u12_num(jpoint,ipoint,3) + gl(1,3,k) grad1_u12_num(jpoint,ipoint,3) = grad1_u12_num(jpoint,ipoint,3) + gl(1,3,k)
! enddo enddo
! enddo enddo
! --- ! ---
! e-n term ! e-n term

View File

@ -814,7 +814,7 @@ subroutine get_grad1_u12_2e_r1_seq(ipoint, n_grid2, resx, resy, resz)
else else
print *, ' Error in get_grad1_u12_withsq_r1_seq: Unknown Jastrow' print *, ' Error in get_grad1_u12_2e_r1_seq: Unknown Jastrow'
stop stop
endif ! j2e_type endif ! j2e_type

View File

@ -73,6 +73,11 @@ BEGIN_PROVIDER [ integer*8, qmckl_ctx_jastrow ]
rc = qmckl_check(qmckl_ctx_jastrow, rc) rc = qmckl_check(qmckl_ctx_jastrow, rc)
if (rc /= QMCKL_SUCCESS) stop -1 if (rc /= QMCKL_SUCCESS) stop -1
endif endif
! print*,'jast_qmckl_cord_num = ',jast_qmckl_cord_num
! integer :: i
! do i = 1, jast_qmckl_c_vector_size
! print*,jast_qmckl_c_vector(i)
! enddo
END_PROVIDER END_PROVIDER

View File

@ -125,10 +125,10 @@ BEGIN_PROVIDER [double precision, int2_grad1_u12_ao, (ao_num, ao_num, n_points_f
else else
! TODO combine 1shot & int2_grad1_u12_ao_num ! TODO combine 1shot & int2_grad1_u12_ao_num
PROVIDE int2_grad1_u12_ao_num ! PROVIDE int2_grad1_u12_ao_num
int2_grad1_u12_ao = int2_grad1_u12_ao_num ! int2_grad1_u12_ao = int2_grad1_u12_ao_num
! PROVIDE int2_grad1_u12_ao_num_1shot PROVIDE int2_grad1_u12_ao_num_1shot
! int2_grad1_u12_ao = int2_grad1_u12_ao_num_1shot int2_grad1_u12_ao = int2_grad1_u12_ao_num_1shot
endif endif
elseif(tc_integ_type .eq. "semi-analytic") then elseif(tc_integ_type .eq. "semi-analytic") then
@ -332,10 +332,10 @@ BEGIN_PROVIDER [double precision, int2_grad1_u12_square_ao, (ao_num, ao_num, n_p
else else
! TODO combine 1shot & int2_grad1_u12_square_ao_num ! TODO combine 1shot & int2_grad1_u12_square_ao_num
PROVIDE int2_grad1_u12_square_ao_num ! PROVIDE int2_grad1_u12_square_ao_num
int2_grad1_u12_square_ao = int2_grad1_u12_square_ao_num ! int2_grad1_u12_square_ao = int2_grad1_u12_square_ao_num
!PROVIDE int2_grad1_u12_square_ao_num_1shot PROVIDE int2_grad1_u12_square_ao_num_1shot
!int2_grad1_u12_square_ao = int2_grad1_u12_square_ao_num_1shot int2_grad1_u12_square_ao = int2_grad1_u12_square_ao_num_1shot
endif endif
elseif(tc_integ_type .eq. "semi-analytic") then elseif(tc_integ_type .eq. "semi-analytic") then