10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-09-27 20:11:25 +02:00
quantum_package/plugins/garniron/mrcepa0/dressing_vector.irp.f

74 lines
1.9 KiB
Fortran
Raw Normal View History

2018-02-20 15:51:53 +01:00
2018-02-09 15:55:21 +01:00
BEGIN_PROVIDER [ double precision, dressing_column_h, (N_det,N_states) ]
&BEGIN_PROVIDER [ double precision, dressing_column_s, (N_det,N_states) ]
implicit none
BEGIN_DOC
! \Delta_{state-specific}. \Psi
2018-02-09 15:55:21 +01:00
END_DOC
integer :: i,ii,k,j, l
2018-02-09 15:55:21 +01:00
double precision :: f, tmp
double precision, external :: u_dot_v
logical, external :: detEq
2018-02-09 15:55:21 +01:00
2018-07-30 16:37:51 +02:00
dressing_column_h(:,:) = 0.d0
dressing_column_s(:,:) = 0.d0
2018-02-09 15:55:21 +01:00
do k=1,N_states
integer :: jj
2018-09-29 00:32:17 +02:00
l = dressed_column_idx(k)
2018-07-30 16:37:51 +02:00
do jj=1,N_det_non_ref
2018-02-09 15:55:21 +01:00
j = idx_non_ref(jj)
2018-09-29 00:43:31 +02:00
dressing_column_h(j,k) = delta_ij (k,jj)
dressing_column_s(j,k) = delta_ij_s2(k,jj)
dressing_column_h(l,k) -= 0.5d0 * psi_coef(j,k) * delta_ij(k,jj) /psi_coef(l,k)
enddo
2018-02-09 15:55:21 +01:00
enddo
2018-09-29 00:32:17 +02:00
2018-02-09 15:55:21 +01:00
END_PROVIDER
! BEGIN_PROVIDER [ double precision, dressing_column_h, (N_det,N_states) ]
!&BEGIN_PROVIDER [ double precision, dressing_column_s, (N_det,N_states) ]
! implicit none
! BEGIN_DOC
! ! Null dressing vectors
! END_DOC
!
! integer :: i,ii,k,j,jj, l
! double precision :: f, tmp
! double precision, external :: u_dot_v
!
! dressing_column_h(:,:) = 0.d0
! dressing_column_s(:,:) = 0.d0
! do k=1,N_states
! l = dressed_column_idx(k)
! f = 1.d0/psi_coef(l,k)
!
! do jj=1,N_det_non_ref
! j = idx_non_ref(jj)
! if (j /= l) then
! dressing_column_h(j,k) = 2.d0*delta_ij (k,jj)
! dressing_column_s(j,k) = 2.d0*delta_ij_s2(k,jj)
! else
! dressing_column_h(j,k) = delta_ij (k,jj)
! dressing_column_s(j,k) = delta_ij_s2(k,jj)
! endif
! enddo
!
! double precision :: h,s2
! h = u_dot_v (dressing_column_h(1,k), psi_coef(1,k), N_det) - psi_coef(l,k) * dressing_column_h(l,k)
! s2 = u_dot_v (dressing_column_s(1,k), psi_coef(1,k), N_det) - psi_coef(l,k) * dressing_column_s(l,k)
!
! dressing_column_h(l,k) = dressing_column_h(l,k) - 0.5d0 * h
! dressing_column_s(l,k) = dressing_column_s(l,k) - 0.5d0 * s2
!
! dressing_column_h(:,k) *= f
! dressing_column_s(:,k) *= f
!
! enddo
!END_PROVIDER
!