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

cisd conversion Ha eV, (Q) if n_elec >= 4

This commit is contained in:
Yann Damour 2023-03-10 17:34:57 +01:00
parent 7c1da055aa
commit 1c5db564b2

View File

@ -69,7 +69,9 @@ subroutine run
do i = 1,N_states do i = 1,N_states
k = maxloc(dabs(psi_coef_sorted(1:N_det,i)),dim=1) k = maxloc(dabs(psi_coef_sorted(1:N_det,i)),dim=1)
delta_E = CI_electronic_energy(i) - diag_h_mat_elem(psi_det_sorted(1,1,k),N_int) delta_E = CI_electronic_energy(i) - diag_h_mat_elem(psi_det_sorted(1,1,k),N_int)
if (elec_alpha_num + elec_beta_num >= 4) then
cisdq(i) = CI_energy(i) + delta_E * (1.d0 - psi_coef_sorted(k,i)**2) cisdq(i) = CI_energy(i) + delta_E * (1.d0 - psi_coef_sorted(k,i)**2)
endif
enddo enddo
print *, 'N_det = ', N_det print *, 'N_det = ', N_det
print*,'' print*,''
@ -78,13 +80,16 @@ subroutine run
do i = 1,N_states do i = 1,N_states
print *, i, CI_energy(i) print *, i, CI_energy(i)
enddo enddo
if (elec_alpha_num + elec_beta_num >= 4) then
print*,'' print*,''
print*,'******************************' print*,'******************************'
print *, 'CISD+Q Energies' print *, 'CISD+Q Energies'
do i = 1,N_states do i = 1,N_states
print *, i, cisdq(i) print *, i, cisdq(i)
enddo enddo
endif
if (N_states > 1) then if (N_states > 1) then
if (elec_alpha_num + elec_beta_num >= 4) then
print*,'' print*,''
print*,'******************************' print*,'******************************'
print*,'Excitation energies (au) (CISD+Q)' print*,'Excitation energies (au) (CISD+Q)'
@ -95,9 +100,23 @@ subroutine run
print*,'******************************' print*,'******************************'
print*,'Excitation energies (eV) (CISD+Q)' print*,'Excitation energies (eV) (CISD+Q)'
do i = 2, N_states do i = 2, N_states
print*, i ,(CI_energy(i) - CI_energy(1))/0.0367502d0, & print*, i ,(CI_energy(i) - CI_energy(1)) * ha_to_ev, &
(cisdq(i) - cisdq(1)) / 0.0367502d0 (cisdq(i) - cisdq(1)) * ha_to_ev
enddo enddo
else
print*,''
print*,'******************************'
print*,'Excitation energies (au) (CISD)'
do i = 2, N_states
print*, i ,CI_energy(i) - CI_energy(1)
enddo
print*,''
print*,'******************************'
print*,'Excitation energies (eV) (CISD)'
do i = 2, N_states
print*, i ,(CI_energy(i) - CI_energy(1)) * ha_to_ev
enddo
endif
endif endif
end end