mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-23 21:03:56 +01:00
Bug in diagonalize CI
This commit is contained in:
parent
5502f94503
commit
149c69b161
@ -69,7 +69,7 @@ END_PROVIDER
|
|||||||
|
|
||||||
if (diag_algorithm == "Davidson") then
|
if (diag_algorithm == "Davidson") then
|
||||||
|
|
||||||
call davidson_diag(psi_det,CI_eigenvectors,CI_electronic_energy, &
|
call davidson_diag(psi_det,CI_eigenvectors,CI_electronic_energy,&
|
||||||
size(CI_eigenvectors,1),N_det,N_states_diag,N_int,output_determinants)
|
size(CI_eigenvectors,1),N_det,N_states_diag,N_int,output_determinants)
|
||||||
do j=1,N_states_diag
|
do j=1,N_states_diag
|
||||||
call get_s2_u0(psi_det,CI_eigenvectors(1,j),N_det,size(CI_eigenvectors,1),CI_eigenvectors_s2(j))
|
call get_s2_u0(psi_det,CI_eigenvectors(1,j),N_det,size(CI_eigenvectors,1),CI_eigenvectors_s2(j))
|
||||||
@ -125,8 +125,6 @@ END_PROVIDER
|
|||||||
CI_eigenvectors_s2(i_state+i_other_state) = s2
|
CI_eigenvectors_s2(i_state+i_other_state) = s2
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
deallocate(index_good_state_array,good_state_array)
|
|
||||||
|
|
||||||
else
|
else
|
||||||
print*,''
|
print*,''
|
||||||
print*,'!!!!!!!! WARNING !!!!!!!!!'
|
print*,'!!!!!!!! WARNING !!!!!!!!!'
|
||||||
@ -145,6 +143,7 @@ END_PROVIDER
|
|||||||
CI_eigenvectors_s2(j) = s2_eigvalues(j)
|
CI_eigenvectors_s2(j) = s2_eigvalues(j)
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
deallocate(index_good_state_array,good_state_array)
|
||||||
deallocate(s2_eigvalues)
|
deallocate(s2_eigvalues)
|
||||||
else
|
else
|
||||||
! Select the "N_states_diag" states of lowest energy
|
! Select the "N_states_diag" states of lowest energy
|
||||||
@ -205,12 +204,12 @@ END_PROVIDER
|
|||||||
do i = 1, N_det
|
do i = 1, N_det
|
||||||
CI_eigenvectors(i,j) = psi_coef(i,index_good_state_array(iorder(j)))
|
CI_eigenvectors(i,j) = psi_coef(i,index_good_state_array(iorder(j)))
|
||||||
enddo
|
enddo
|
||||||
! call u0_H_u_0(e_0,CI_eigenvectors(1,j),n_det,psi_det,N_int)
|
! call u0_H_u_0(e_0,CI_eigenvectors(1,j),n_det,psi_det,N_int)
|
||||||
! print*,'e = ',CI_electronic_energy(j)
|
! print*,'e = ',CI_electronic_energy(j)
|
||||||
! print*,'<e> = ',e_0
|
! print*,'<e> = ',e_0
|
||||||
! call get_s2_u0(psi_det,CI_eigenvectors(1,j),N_det,size(CI_eigenvectors,1),s2)
|
! call get_s2_u0(psi_det,CI_eigenvectors(1,j),N_det,size(CI_eigenvectors,1),s2)
|
||||||
! print*,'s^2 = ',CI_eigenvectors_s2(j)
|
! print*,'s^2 = ',CI_eigenvectors_s2(j)
|
||||||
! print*,'<s^2>= ',s2
|
! print*,'<s^2>= ',s2
|
||||||
enddo
|
enddo
|
||||||
deallocate(e_array,iorder)
|
deallocate(e_array,iorder)
|
||||||
|
|
||||||
@ -226,8 +225,6 @@ END_PROVIDER
|
|||||||
call u0_H_u_0(e_0,CI_eigenvectors(1,i_state + i_other_state),n_det,psi_det,N_int)
|
call u0_H_u_0(e_0,CI_eigenvectors(1,i_state + i_other_state),n_det,psi_det,N_int)
|
||||||
CI_electronic_energy(i_state + i_other_state) = e_0
|
CI_electronic_energy(i_state + i_other_state) = e_0
|
||||||
enddo
|
enddo
|
||||||
deallocate(index_good_state_array,good_state_array)
|
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
@ -250,8 +247,9 @@ END_PROVIDER
|
|||||||
deallocate(e_array,iorder)
|
deallocate(e_array,iorder)
|
||||||
endif
|
endif
|
||||||
deallocate(s2_eigvalues)
|
deallocate(s2_eigvalues)
|
||||||
endif
|
deallocate(index_good_state_array,good_state_array)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user