mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-09-12 10:48:31 +02:00
take transpose of density matrix for complex
This commit is contained in:
parent
8b33c2b4b5
commit
f4de811310
@ -22,13 +22,39 @@ END_PROVIDER
|
|||||||
HF_energy = nuclear_repulsion
|
HF_energy = nuclear_repulsion
|
||||||
HF_two_electron_energy = 0.d0
|
HF_two_electron_energy = 0.d0
|
||||||
HF_one_electron_energy = 0.d0
|
HF_one_electron_energy = 0.d0
|
||||||
do j=1,ao_num
|
if (is_periodic) then
|
||||||
do i=1,ao_num
|
complex*16 :: hf_1e_tmp, hf_2e_tmp
|
||||||
HF_two_electron_energy += 0.5d0 * ( ao_two_e_integral_alpha(i,j) * SCF_density_matrix_ao_alpha(i,j) &
|
hf_1e_tmp = (0.d0,0.d0)
|
||||||
+ao_two_e_integral_beta(i,j) * SCF_density_matrix_ao_beta(i,j) )
|
hf_2e_tmp = (0.d0,0.d0)
|
||||||
HF_one_electron_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
do j=1,ao_num
|
||||||
enddo
|
do i=1,ao_num
|
||||||
enddo
|
hf_2e_tmp += 0.5d0 * ( ao_two_e_integral_alpha_complex(i,j) * SCF_density_matrix_ao_alpha_complex(j,i) &
|
||||||
|
+ao_two_e_integral_beta_complex(i,j) * SCF_density_matrix_ao_beta_complex(j,i) )
|
||||||
|
hf_1e_tmp += ao_one_e_integrals_complex(i,j) * (SCF_density_matrix_ao_alpha_complex(j,i) &
|
||||||
|
+ SCF_density_matrix_ao_beta_complex (j,i) )
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
if (dabs(dimag(hf_2e_tmp)).gt.1.d-10) then
|
||||||
|
print*,'HF_2e energy should be real:',irp_here
|
||||||
|
stop -1
|
||||||
|
else
|
||||||
|
HF_two_electron_energy = dble(hf_2e_tmp)
|
||||||
|
endif
|
||||||
|
if (dabs(dimag(hf_1e_tmp)).gt.1.d-10) then
|
||||||
|
print*,'HF_1e energy should be real:',irp_here
|
||||||
|
stop -1
|
||||||
|
else
|
||||||
|
HF_one_electron_energy = dble(hf_1e_tmp)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
do j=1,ao_num
|
||||||
|
do i=1,ao_num
|
||||||
|
HF_two_electron_energy += 0.5d0 * ( ao_two_e_integral_alpha(i,j) * SCF_density_matrix_ao_alpha(i,j) &
|
||||||
|
+ao_two_e_integral_beta(i,j) * SCF_density_matrix_ao_beta(i,j) )
|
||||||
|
HF_one_electron_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
endif
|
||||||
HF_energy += HF_two_electron_energy + HF_one_electron_energy
|
HF_energy += HF_two_electron_energy + HF_one_electron_energy
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -164,8 +164,8 @@ BEGIN_PROVIDER [ double precision, SCF_energy ]
|
|||||||
do j=1,ao_num
|
do j=1,ao_num
|
||||||
do i=1,ao_num
|
do i=1,ao_num
|
||||||
scf_e_tmp += 0.5d0 * ( &
|
scf_e_tmp += 0.5d0 * ( &
|
||||||
(ao_one_e_integrals_complex(i,j) + Fock_matrix_ao_alpha_complex(i,j) ) * SCF_density_matrix_ao_alpha_complex(i,j) +&
|
(ao_one_e_integrals_complex(i,j) + Fock_matrix_ao_alpha_complex(i,j) ) * SCF_density_matrix_ao_alpha_complex(j,i) +&
|
||||||
(ao_one_e_integrals_complex(i,j) + Fock_matrix_ao_beta_complex (i,j) ) * SCF_density_matrix_ao_beta_complex (i,j) )
|
(ao_one_e_integrals_complex(i,j) + Fock_matrix_ao_beta_complex (i,j) ) * SCF_density_matrix_ao_beta_complex (j,i) )
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
!TODO: add check for imaginary part? (should be zero)
|
!TODO: add check for imaginary part? (should be zero)
|
||||||
|
Loading…
Reference in New Issue
Block a user