10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-17 10:45:28 +02:00

Accelerated Davidson MRCC

This commit is contained in:
Anthony Scemama 2017-03-23 15:41:27 +01:00
parent 05c88a79ba
commit 2cd4a513dc
2 changed files with 7 additions and 14 deletions

View File

@ -1023,7 +1023,7 @@ subroutine H_S2_u_0_mrcc_nstates(v_0,s_0,u_0,H_jj,S2_jj,n,keys_tmp,Nint,istate_i
Vt = 0.d0
St = 0.d0
!$OMP DO SCHEDULE(static,1)
!$OMP DO SCHEDULE(guided)
do sh=1,shortcut(0,1)
do sh2=sh,shortcut(0,1)
exa = 0
@ -1066,7 +1066,8 @@ subroutine H_S2_u_0_mrcc_nstates(v_0,s_0,u_0,H_jj,S2_jj,n,keys_tmp,Nint,istate_i
enddo
enddo
!$OMP END DO
!$OMP DO SCHEDULE(static,1)
!$OMP DO SCHEDULE(guided)
do sh=1,shortcut(0,2)
do i=shortcut(sh,2),shortcut(sh+1,2)-1
org_i = sort_idx(i,2)

View File

@ -285,9 +285,7 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
do i=1, N_minilist
mobileMask(1,1) = iand(key_mask_neg(1,1), minilist(1,1,i))
mobileMask(1,2) = iand(key_mask_neg(1,2), minilist(1,2,i))
do j=2,Nint
do j=1,Nint
mobileMask(j,1) = iand(key_mask_neg(j,1), minilist(j,1,i))
mobileMask(j,2) = iand(key_mask_neg(j,2), minilist(j,2,i))
end do
@ -298,9 +296,7 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
if(n_element(1) + n_element(2) /= 4) then
idx_microlist(cur_microlist(0)) = i
microlist(1,1,cur_microlist(0)) = minilist(1,1,i)
microlist(1,2,cur_microlist(0)) = minilist(1,2,i)
do k=2,Nint
do k=1,Nint
microlist(k,1,cur_microlist(0)) = minilist(k,1,i)
microlist(k,2,cur_microlist(0)) = minilist(k,2,i)
enddo
@ -309,10 +305,8 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
do j=1,n_element(1)
nt = list(j,1)
idx_microlist(cur_microlist(nt)) = i
microlist(1,1,cur_microlist(nt)) = minilist(1,1,i)
microlist(1,2,cur_microlist(nt)) = minilist(1,2,i)
! TODO : Page faults
do k=2,Nint
do k=1,Nint
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
enddo
@ -322,9 +316,7 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
do j=1,n_element(2)
nt = list(j,2) + mo_tot_num
idx_microlist(cur_microlist(nt)) = i
microlist(1,1,cur_microlist(nt)) = minilist(1,1,i)
microlist(1,2,cur_microlist(nt)) = minilist(1,2,i)
do k=2,Nint
do k=1,Nint
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
enddo