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:
parent
c9de28b903
commit
17e401eed9
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user