mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-18 11:23:38 +01:00
added periodic ao bielec map
This commit is contained in:
parent
514b3172fc
commit
949ff3ce3a
@ -16,6 +16,19 @@ BEGIN_PROVIDER [ type(map_type), ao_integrals_map ]
|
|||||||
print*, 'AO map initialized : ', sze
|
print*, 'AO map initialized : ', sze
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [ type(map_type), ao_integrals_map_periodic ]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! AO integrals
|
||||||
|
END_DOC
|
||||||
|
integer(key_kind) :: key_max
|
||||||
|
integer(map_size_kind) :: sze
|
||||||
|
call two_e_integrals_index_2fold(ao_num,ao_num,ao_num,ao_num,key_max)
|
||||||
|
sze = key_max
|
||||||
|
call map_init(ao_integrals_map_periodic,sze)
|
||||||
|
print*, 'complex AO map initialized : ', sze
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
subroutine two_e_integrals_index(i,j,k,l,i1)
|
subroutine two_e_integrals_index(i,j,k,l,i1)
|
||||||
use map_module
|
use map_module
|
||||||
implicit none
|
implicit none
|
||||||
@ -425,7 +438,7 @@ complex*16 function get_ao_two_e_integral_periodic(i,j,k,l,map) result(result)
|
|||||||
type(map_type), intent(inout) :: map
|
type(map_type), intent(inout) :: map
|
||||||
integer :: ii
|
integer :: ii
|
||||||
complex(integral_kind) :: tmp
|
complex(integral_kind) :: tmp
|
||||||
PROVIDE ao_two_e_integrals_in_map ao_integrals_cache_periodic ao_integrals_cache_min
|
PROVIDE ao_two_e_integrals_in_map_periodic ao_integrals_cache_periodic ao_integrals_cache_min
|
||||||
!DIR$ FORCEINLINE
|
!DIR$ FORCEINLINE
|
||||||
if (ao_overlap_abs(i,k)*ao_overlap_abs(j,l) < ao_integrals_threshold ) then
|
if (ao_overlap_abs(i,k)*ao_overlap_abs(j,l) < ao_integrals_threshold ) then
|
||||||
tmp = (0.d0,0.d0)
|
tmp = (0.d0,0.d0)
|
||||||
@ -507,7 +520,7 @@ subroutine get_ao_two_e_integrals_periodic(j,k,l,sze,out_val)
|
|||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer, intent(in) :: j,k,l, sze
|
integer, intent(in) :: j,k,l, sze
|
||||||
complex(integral_kind), intent(out) :: out_val(sze)
|
complex*16, intent(out) :: out_val(sze)
|
||||||
|
|
||||||
integer :: i
|
integer :: i
|
||||||
integer(key_kind) :: hash
|
integer(key_kind) :: hash
|
||||||
@ -515,14 +528,14 @@ subroutine get_ao_two_e_integrals_periodic(j,k,l,sze,out_val)
|
|||||||
PROVIDE ao_two_e_integrals_in_map ao_integrals_map
|
PROVIDE ao_two_e_integrals_in_map ao_integrals_map
|
||||||
thresh = ao_integrals_threshold
|
thresh = ao_integrals_threshold
|
||||||
|
|
||||||
if (ao_overlap_abs(j,l) < thresh) then
|
if (ao_overlap_abs_periodic(j,l) < thresh) then
|
||||||
out_val = 0.d0
|
out_val = (0.d0,0.d0)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
double precision :: get_ao_two_e_integral
|
complex*16 :: get_ao_two_e_integral_periodic
|
||||||
do i=1,sze
|
do i=1,sze
|
||||||
out_val(i) = get_ao_two_e_integral(i,j,k,l,ao_integrals_map)
|
out_val(i) = get_ao_two_e_integral_periodic(i,j,k,l,ao_integrals_map)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user