mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 03:23:29 +01:00
This commit is contained in:
parent
b4a2e9bd76
commit
326dbe7740
@ -1409,11 +1409,23 @@ subroutine compute_K1_chol(nO,nV,t1,t2,v_ovoo,v_vvoo,v_ovov,v_vvov,K1)
|
|||||||
t1 , size(t1,1), &
|
t1 , size(t1,1), &
|
||||||
1d0, K1 , size(K1,1) * size(K1,2) * size(K1,3))
|
1d0, K1 , size(K1,1) * size(K1,2) * size(K1,3))
|
||||||
|
|
||||||
call dgemm('N','N',nO,nV*nO*nV,nV, &
|
double precision, allocatable :: K1tmp(:,:,:,:), t1v(:,:,:)
|
||||||
1d0, t1 , size(t1,1), &
|
allocate(K1tmp(nO,nO,nV,nV), t1v(cholesky_ao_num,nO,nO))
|
||||||
v_vvov, size(v_vvov,1), &
|
|
||||||
1d0, K1 , size(K1,1))
|
|
||||||
|
|
||||||
|
! call dgemm('N','N',nO,nV*nO*nV,nV, &
|
||||||
|
! 1d0, t1 , size(t1,1), &
|
||||||
|
! v_vvov, size(v_vvov,1), &
|
||||||
|
! 1d0, K1 , size(K1,1))
|
||||||
|
|
||||||
|
call dgemm('N','T', cholesky_ao_num*nO, nO, nV, 1.d0, &
|
||||||
|
cc_space_v_ov_chol, cholesky_ao_num*nO, t1, nO, 0.d0, &
|
||||||
|
t1v, cholesky_ao_num*nO)
|
||||||
|
|
||||||
|
call dgemm('T','N', nO*nO, nV*nV, cholesky_ao_num, 1.d0, &
|
||||||
|
t1v, cholesky_ao_num, cc_space_v_vv_chol, cholesky_ao_num, 0.d0, &
|
||||||
|
K1tmp, nO*nO)
|
||||||
|
|
||||||
|
deallocate(t1v)
|
||||||
! Y(u,beta,b,j) * X(b,j,a,i) = Z(u,beta,a,i)
|
! Y(u,beta,b,j) * X(b,j,a,i) = Z(u,beta,a,i)
|
||||||
call dgemm('N','N',nV*nO,nO*nV,nV*nO, &
|
call dgemm('N','N',nV*nO,nO*nV,nV*nO, &
|
||||||
1d0, Y, size(Y,1) * size(Y,2), &
|
1d0, Y, size(Y,1) * size(Y,2), &
|
||||||
@ -1421,7 +1433,7 @@ subroutine compute_K1_chol(nO,nV,t1,t2,v_ovoo,v_vvoo,v_ovov,v_vvov,K1)
|
|||||||
0d0, Z, size(Z,1) * size(Z,2))
|
0d0, Z, size(Z,1) * size(Z,2))
|
||||||
|
|
||||||
!$omp parallel &
|
!$omp parallel &
|
||||||
!$omp shared(nO,nV,K1,Z) &
|
!$omp shared(nO,nV,K1,Z,K1tmp) &
|
||||||
!$omp private(i,beta,a,u) &
|
!$omp private(i,beta,a,u) &
|
||||||
!$omp default(none)
|
!$omp default(none)
|
||||||
!$omp do
|
!$omp do
|
||||||
@ -1429,7 +1441,7 @@ subroutine compute_K1_chol(nO,nV,t1,t2,v_ovoo,v_vvoo,v_ovov,v_vvov,K1)
|
|||||||
do i = 1, nO
|
do i = 1, nO
|
||||||
do a = 1, nV
|
do a = 1, nV
|
||||||
do u = 1, nO
|
do u = 1, nO
|
||||||
K1(u,a,i,beta) = K1(u,a,i,beta) + Z(u,beta,a,i)
|
K1(u,a,i,beta) = K1(u,a,i,beta) + K1tmp(u,i,a,beta) + Z(u,beta,a,i)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -1437,6 +1449,6 @@ subroutine compute_K1_chol(nO,nV,t1,t2,v_ovoo,v_vvoo,v_ovov,v_vvov,K1)
|
|||||||
!$omp end do
|
!$omp end do
|
||||||
!$omp end parallel
|
!$omp end parallel
|
||||||
|
|
||||||
deallocate(X,Y,Z)
|
deallocate(K1tmp,X,Y,Z)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user