mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-14 21:48:28 +02:00
72 lines
2.1 KiB
Fortran
72 lines
2.1 KiB
Fortran
|
|
BEGIN_PROVIDER [ double precision, TC_HF_energy ]
|
|
&BEGIN_PROVIDER [ double precision, TC_HF_one_e_energy]
|
|
&BEGIN_PROVIDER [ double precision, TC_HF_two_e_energy]
|
|
|
|
BEGIN_DOC
|
|
! TC Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
|
|
END_DOC
|
|
|
|
implicit none
|
|
integer :: i, j
|
|
double precision :: t0, t1
|
|
|
|
!print*, ' Providing TC energy ...'
|
|
!call wall_time(t0)
|
|
|
|
PROVIDE mo_l_coef mo_r_coef
|
|
PROVIDE two_e_tc_non_hermit_integral_alpha two_e_tc_non_hermit_integral_beta
|
|
|
|
TC_HF_energy = nuclear_repulsion
|
|
TC_HF_one_e_energy = 0.d0
|
|
TC_HF_two_e_energy = 0.d0
|
|
|
|
do j = 1, ao_num
|
|
do i = 1, ao_num
|
|
TC_HF_two_e_energy += 0.5d0 * ( two_e_tc_non_hermit_integral_alpha(i,j) * TCSCF_density_matrix_ao_alpha(i,j) &
|
|
+ two_e_tc_non_hermit_integral_beta (i,j) * TCSCF_density_matrix_ao_beta (i,j) )
|
|
TC_HF_one_e_energy += ao_one_e_integrals_tc_tot(i,j) &
|
|
* (TCSCF_density_matrix_ao_alpha(i,j) + TCSCF_density_matrix_ao_beta (i,j) )
|
|
enddo
|
|
enddo
|
|
|
|
TC_HF_energy += TC_HF_one_e_energy + TC_HF_two_e_energy
|
|
TC_HF_energy += diag_three_elem_hf
|
|
|
|
!call wall_time(t1)
|
|
!print*, ' Wall time for TC energy=', t1-t0
|
|
|
|
END_PROVIDER
|
|
|
|
! ---
|
|
|
|
BEGIN_PROVIDER [ double precision, VARTC_HF_energy]
|
|
&BEGIN_PROVIDER [ double precision, VARTC_HF_one_e_energy]
|
|
&BEGIN_PROVIDER [ double precision, VARTC_HF_two_e_energy]
|
|
|
|
implicit none
|
|
integer :: i, j
|
|
|
|
PROVIDE mo_r_coef
|
|
|
|
VARTC_HF_energy = nuclear_repulsion
|
|
VARTC_HF_one_e_energy = 0.d0
|
|
VARTC_HF_two_e_energy = 0.d0
|
|
|
|
do j = 1, ao_num
|
|
do i = 1, ao_num
|
|
VARTC_HF_two_e_energy += 0.5d0 * ( two_e_vartc_integral_alpha(i,j) * TCSCF_density_matrix_ao_alpha(i,j) &
|
|
+ two_e_vartc_integral_beta (i,j) * TCSCF_density_matrix_ao_beta (i,j) )
|
|
VARTC_HF_one_e_energy += ao_one_e_integrals_tc_tot(i,j) &
|
|
* (TCSCF_density_matrix_ao_alpha(i,j) + TCSCF_density_matrix_ao_beta (i,j) )
|
|
enddo
|
|
enddo
|
|
|
|
VARTC_HF_energy += VARTC_HF_one_e_energy + VARTC_HF_two_e_energy
|
|
VARTC_HF_energy += diag_three_elem_hf
|
|
|
|
END_PROVIDER
|
|
|
|
! ---
|
|
|