mirror of
https://github.com/LCPQ/quantum_package
synced 2025-05-06 23:24:53 +02:00
Accelerated Davidson MRCC
This commit is contained in:
parent
05c88a79ba
commit
2cd4a513dc
@ -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
|
Vt = 0.d0
|
||||||
St = 0.d0
|
St = 0.d0
|
||||||
|
|
||||||
!$OMP DO SCHEDULE(static,1)
|
!$OMP DO SCHEDULE(guided)
|
||||||
do sh=1,shortcut(0,1)
|
do sh=1,shortcut(0,1)
|
||||||
do sh2=sh,shortcut(0,1)
|
do sh2=sh,shortcut(0,1)
|
||||||
exa = 0
|
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
|
||||||
enddo
|
enddo
|
||||||
!$OMP END DO
|
!$OMP END DO
|
||||||
!$OMP DO SCHEDULE(static,1)
|
|
||||||
|
!$OMP DO SCHEDULE(guided)
|
||||||
do sh=1,shortcut(0,2)
|
do sh=1,shortcut(0,2)
|
||||||
do i=shortcut(sh,2),shortcut(sh+1,2)-1
|
do i=shortcut(sh,2),shortcut(sh+1,2)-1
|
||||||
org_i = sort_idx(i,2)
|
org_i = sort_idx(i,2)
|
||||||
|
@ -285,9 +285,7 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
|
|||||||
|
|
||||||
|
|
||||||
do i=1, N_minilist
|
do i=1, N_minilist
|
||||||
mobileMask(1,1) = iand(key_mask_neg(1,1), minilist(1,1,i))
|
do j=1,Nint
|
||||||
mobileMask(1,2) = iand(key_mask_neg(1,2), minilist(1,2,i))
|
|
||||||
do j=2,Nint
|
|
||||||
mobileMask(j,1) = iand(key_mask_neg(j,1), minilist(j,1,i))
|
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))
|
mobileMask(j,2) = iand(key_mask_neg(j,2), minilist(j,2,i))
|
||||||
end do
|
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
|
if(n_element(1) + n_element(2) /= 4) then
|
||||||
idx_microlist(cur_microlist(0)) = i
|
idx_microlist(cur_microlist(0)) = i
|
||||||
microlist(1,1,cur_microlist(0)) = minilist(1,1,i)
|
do k=1,Nint
|
||||||
microlist(1,2,cur_microlist(0)) = minilist(1,2,i)
|
|
||||||
do k=2,Nint
|
|
||||||
microlist(k,1,cur_microlist(0)) = minilist(k,1,i)
|
microlist(k,1,cur_microlist(0)) = minilist(k,1,i)
|
||||||
microlist(k,2,cur_microlist(0)) = minilist(k,2,i)
|
microlist(k,2,cur_microlist(0)) = minilist(k,2,i)
|
||||||
enddo
|
enddo
|
||||||
@ -309,10 +305,8 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
|
|||||||
do j=1,n_element(1)
|
do j=1,n_element(1)
|
||||||
nt = list(j,1)
|
nt = list(j,1)
|
||||||
idx_microlist(cur_microlist(nt)) = i
|
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
|
! TODO : Page faults
|
||||||
do k=2,Nint
|
do k=1,Nint
|
||||||
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
|
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
|
||||||
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
|
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
|
||||||
enddo
|
enddo
|
||||||
@ -322,9 +316,7 @@ subroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_micro
|
|||||||
do j=1,n_element(2)
|
do j=1,n_element(2)
|
||||||
nt = list(j,2) + mo_tot_num
|
nt = list(j,2) + mo_tot_num
|
||||||
idx_microlist(cur_microlist(nt)) = i
|
idx_microlist(cur_microlist(nt)) = i
|
||||||
microlist(1,1,cur_microlist(nt)) = minilist(1,1,i)
|
do k=1,Nint
|
||||||
microlist(1,2,cur_microlist(nt)) = minilist(1,2,i)
|
|
||||||
do k=2,Nint
|
|
||||||
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
|
microlist(k,1,cur_microlist(nt)) = minilist(k,1,i)
|
||||||
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
|
microlist(k,2,cur_microlist(nt)) = minilist(k,2,i)
|
||||||
enddo
|
enddo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user