9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 03:23:29 +01:00
qp2/plugins/local/tc_bi_ortho/tc_hmat.irp.f

76 lines
1.5 KiB
Fortran
Raw Normal View History

2023-02-07 17:07:49 +01:00
2023-09-16 00:28:18 +02:00
! ---
BEGIN_PROVIDER [double precision, htilde_matrix_elmt_bi_ortho, (N_det,N_det)]
2023-02-07 17:07:49 +01:00
BEGIN_DOC
2023-09-16 00:28:18 +02:00
!
2023-02-07 17:07:49 +01:00
! htilde_matrix_elmt_bi_ortho(j,i) = <J| H^tilde |I>
!
! WARNING !!!!!!!!! IT IS NOT HERMITIAN !!!!!!!!!
2023-09-16 00:28:18 +02:00
!
2023-02-07 17:07:49 +01:00
END_DOC
implicit none
integer :: i, j
2024-03-01 13:37:46 +01:00
double precision :: t1, t2
double precision :: htot
2024-03-01 13:37:46 +01:00
PROVIDE N_int
PROVIDE psi_det
PROVIDE three_e_3_idx_term
if(noL_standard) then
PROVIDE noL_0e
PROVIDE noL_1e
PROVIDE noL_2e
endif
print *, ' PROVIDING htilde_matrix_elmt_bi_ortho ...'
call wall_time(t1)
2023-02-07 17:07:49 +01:00
2024-03-01 13:37:46 +01:00
call provide_all_three_ints_bi_ortho()
2023-04-01 22:05:34 +02:00
i = 1
j = 1
call htilde_mu_mat_opt_bi_ortho_tot(psi_det(1,1,j), psi_det(1,1,i), N_int, htot)
2023-04-01 22:05:34 +02:00
2024-03-01 13:37:46 +01:00
!$OMP PARALLEL &
!$OMP DEFAULT(NONE) &
!$OMP PRIVATE(i, j, htot) &
2023-09-16 00:28:18 +02:00
!$OMP SHARED (N_det, psi_det, N_int, htilde_matrix_elmt_bi_ortho)
2024-03-01 13:37:46 +01:00
!$OMP DO
2023-09-16 00:28:18 +02:00
do i = 1, N_det
do j = 1, N_det
! < J |Htilde | I >
call htilde_mu_mat_opt_bi_ortho_tot(psi_det(1,1,j), psi_det(1,1,i), N_int, htot)
2023-02-07 17:07:49 +01:00
2023-09-16 00:28:18 +02:00
htilde_matrix_elmt_bi_ortho(j,i) = htot
2023-02-07 17:07:49 +01:00
enddo
2023-09-16 00:28:18 +02:00
enddo
2024-03-01 13:37:46 +01:00
!$OMP END DO
!$OMP END PARALLEL
call wall_time(t2)
print *, ' wall time for htilde_matrix_elmt_bi_ortho (min) =', (t2-t1)/60.d0
2023-02-07 17:07:49 +01:00
END_PROVIDER
2023-07-02 21:49:25 +02:00
! ---
BEGIN_PROVIDER [double precision, htilde_matrix_elmt_bi_ortho_tranp, (N_det,N_det)]
2023-09-16 00:28:18 +02:00
implicit none
integer ::i,j
2023-02-07 17:07:49 +01:00
do i = 1, N_det
do j = 1, N_det
htilde_matrix_elmt_bi_ortho_tranp(j,i) = htilde_matrix_elmt_bi_ortho(i,j)
enddo
enddo
END_PROVIDER
2023-09-16 00:28:18 +02:00
! ---