10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-25 05:43:47 +01:00

Fixed MRCC_ZMQ

This commit is contained in:
Anthony Scemama 2018-09-29 00:43:31 +02:00
parent 6de4260e17
commit 4bd3c9e275
4 changed files with 14 additions and 11 deletions

View File

@ -180,7 +180,7 @@ BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det) ]
integer :: l,jj integer :: l,jj
double precision :: f double precision :: f
l = dressed_column_idx(1) l = dressed_column_idx(1)
f = 0.5d0/psi_coef(l,1) f = 1.0d0/psi_coef(l,1)
do i=1,N_det do i=1,N_det
h_matrix_dressed(i,l) = h_matrix_dressed(i,l) + dressing_column_h(i,1) *f h_matrix_dressed(i,l) = h_matrix_dressed(i,l) + dressing_column_h(i,1) *f
h_matrix_dressed(l,i) = h_matrix_dressed(l,i) + dressing_column_h(i,1) *f h_matrix_dressed(l,i) = h_matrix_dressed(l,i) + dressing_column_h(i,1) *f
@ -190,8 +190,8 @@ BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det) ]
do j=1,N_det do j=1,N_det
do i=1,N_det do i=1,N_det
h_matrix_dressed(i,j) = h_matrix_dressed(i,j) + & h_matrix_dressed(i,j) = h_matrix_dressed(i,j) + &
0.5d0 *(dressing_column_h(i,k) * psi_coef(j,k) + & dressing_column_h(i,k) * psi_coef(j,k) + &
dressing_column_h(j,k) * psi_coef(i,k)) dressing_column_h(j,k) * psi_coef(i,k)
enddo enddo
enddo enddo
enddo enddo

View File

@ -14,9 +14,12 @@
dressing_column_s(:,:) = 0.d0 dressing_column_s(:,:) = 0.d0
do k=1,N_states do k=1,N_states
l = dressed_column_idx(k)
do j = 1, n_det do j = 1, n_det
dressing_column_h(j,k) = delta_ij(k,j,1) dressing_column_h(j,k) = delta_ij(k,j,1)
dressing_column_s(j,k) = delta_ij(k,j,2) dressing_column_s(j,k) = delta_ij(k,j,2)
dressing_column_h(l,k) -= 0.5d0 * psi_coef(j,k) * delta_ij(k,j,1) /psi_coef(l,k)
dressing_column_s(l,k) -= 0.5d0 * psi_coef(j,k) * delta_ij(k,j,2) /psi_coef(l,k)
enddo enddo
enddo enddo
END_PROVIDER END_PROVIDER

View File

@ -19,9 +19,9 @@
l = dressed_column_idx(k) l = dressed_column_idx(k)
do jj=1,N_det_non_ref do jj=1,N_det_non_ref
j = idx_non_ref(jj) j = idx_non_ref(jj)
dressing_column_h(j,k) = 2.d0 * delta_ij (k,jj) dressing_column_h(j,k) = delta_ij (k,jj)
dressing_column_s(j,k) = 2.d0 * delta_ij_s2(k,jj) dressing_column_s(j,k) = delta_ij_s2(k,jj)
dressing_column_h(l,k) -= psi_coef(j,k) * delta_ij(k,jj) /psi_coef(l,k) dressing_column_h(l,k) -= 0.5d0 * psi_coef(j,k) * delta_ij(k,jj) /psi_coef(l,k)
enddo enddo
enddo enddo

View File

@ -285,7 +285,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
l = dressed_column_idx(1) l = dressed_column_idx(1)
double precision :: f double precision :: f
f = 0.5d0/psi_coef(l,1) f = 1.0d0/psi_coef(l,1)
do istate=1,N_st_diag do istate=1,N_st_diag
do i=1,sze do i=1,sze
W(i,shift+istate) += dressing_column_h(i,1) *f * U(l,shift+istate) W(i,shift+istate) += dressing_column_h(i,1) *f * U(l,shift+istate)
@ -302,11 +302,11 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
psi_coef, size(psi_coef,1), & psi_coef, size(psi_coef,1), &
U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1)) U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1))
call dgemm('N','N', sze, N_st_diag, N_st, 0.5d0, & call dgemm('N','N', sze, N_st_diag, N_st, 1.0d0, &
dressing_column_h, size(dressing_column_h,1), s_tmp, size(s_tmp,1), & dressing_column_h, size(dressing_column_h,1), s_tmp, size(s_tmp,1), &
1.d0, W(1,shift+1), size(W,1)) 1.d0, W(1,shift+1), size(W,1))
call dgemm('N','N', sze, N_st_diag, N_st, 0.5d0, & call dgemm('N','N', sze, N_st_diag, N_st, 1.0d0, &
dressing_column_s, size(dressing_column_s,1), s_tmp, size(s_tmp,1), & dressing_column_s, size(dressing_column_s,1), s_tmp, size(s_tmp,1), &
1.d0, S(1,shift+1), size(S,1)) 1.d0, S(1,shift+1), size(S,1))
@ -315,7 +315,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
dressing_column_h, size(dressing_column_h,1), & dressing_column_h, size(dressing_column_h,1), &
U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1)) U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1))
call dgemm('N','N', sze, N_st_diag, N_st, 0.5d0, & call dgemm('N','N', sze, N_st_diag, N_st, 1.0d0, &
psi_coef, size(psi_coef,1), s_tmp, size(s_tmp,1), & psi_coef, size(psi_coef,1), s_tmp, size(s_tmp,1), &
1.d0, W(1,shift+1), size(W,1)) 1.d0, W(1,shift+1), size(W,1))
@ -323,7 +323,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
dressing_column_s, size(dressing_column_s,1), & dressing_column_s, size(dressing_column_s,1), &
U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1)) U(1,shift+1), size(U,1), 0.d0, s_tmp, size(s_tmp,1))
call dgemm('N','N', sze, N_st_diag, N_st, 0.5d0, & call dgemm('N','N', sze, N_st_diag, N_st, 1.0d0, &
psi_coef, size(psi_coef,1), s_tmp, size(s_tmp,1), & psi_coef, size(psi_coef,1), s_tmp, size(s_tmp,1), &
1.d0, S(1,shift+1), size(S,1)) 1.d0, S(1,shift+1), size(S,1))