10
0
mirror of https://github.com/LCPQ/quantum_package synced 2025-01-03 10:05:57 +01:00

Reduced memory in 4idx

This commit is contained in:
Anthony Scemama 2017-11-29 09:35:11 +01:00
parent e4080ce676
commit 8dd2dcb44f
2 changed files with 9 additions and 9 deletions

View File

@ -65,15 +65,15 @@ subroutine four_index_transform_block(map_a,map_c,matrix_B,LDB, &
integer*8 :: new_size integer*8 :: new_size
new_size = max(1024_8, 5_8 * map_a % n_elements ) new_size = max(1024_8, 5_8 * map_a % n_elements )
allocate(a_array_ik(new_size), a_array_j(new_size), a_array_value(new_size))
integer :: ipass, npass
integer*8 :: tempspace integer*8 :: tempspace
tempspace = (new_size * 16_8) / (1024_8 * 1024_8) tempspace = (new_size * 16_8) / (1024_8 * 1024_8)
npass = int(min(int(l_end-l_start,8),1_8 + tempspace / 2048_8),4) ! 2 GiB of scratch space npass = int(min(int(l_end-l_start,8),1_8 + tempspace / 2048_8),4) ! 2 GiB of scratch space
l_block = (l_end-l_start+1)/npass l_block = (l_end-l_start+1)/npass
allocate(a_array_ik(new_size/npass), a_array_j(new_size/npass), a_array_value(new_size/npass))
integer :: ipass, npass
ipass = 0 ipass = 0
do l_start_block = l_start, l_end, l_block do l_start_block = l_start, l_end, l_block
ipass = ipass+1 ipass = ipass+1

View File

@ -119,15 +119,15 @@ BEGIN_PROVIDER [ logical, mo_bielec_integrals_in_map ]
else else
! call add_integrals_to_map(full_ijkl_bitmask_4) ! call add_integrals_to_map(full_ijkl_bitmask_4)
! call four_index_transform_block(ao_integrals_map,mo_integrals_map, & call four_index_transform_block(ao_integrals_map,mo_integrals_map, &
! mo_coef, size(mo_coef,1), &
! 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, &
! 1, 1, 1, 1, mo_tot_num, mo_tot_num, mo_tot_num, mo_tot_num)
call four_index_transform(ao_integrals_map,mo_integrals_map, &
mo_coef, size(mo_coef,1), & mo_coef, size(mo_coef,1), &
1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, & 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, &
1, 1, 1, 1, mo_tot_num, mo_tot_num, mo_tot_num, mo_tot_num) 1, 1, 1, 1, mo_tot_num, mo_tot_num, mo_tot_num, mo_tot_num)
!
! call four_index_transform(ao_integrals_map,mo_integrals_map, &
! mo_coef, size(mo_coef,1), &
! 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, &
! 1, 1, 1, 1, mo_tot_num, mo_tot_num, mo_tot_num, mo_tot_num)
integer*8 :: get_mo_map_size, mo_map_size integer*8 :: get_mo_map_size, mo_map_size
mo_map_size = get_mo_map_size() mo_map_size = get_mo_map_size()