mirror of
https://github.com/QuantumPackage/qp2.git
synced 2025-04-26 02:04:45 +02:00
ao_cart_one_ints compiles
This commit is contained in:
parent
451351600e
commit
6695444367
@ -67,8 +67,8 @@ subroutine ao_cart_to_ao_basis(A_cart, LDA_cart, A_ao_basis, LDA_ao_basis)
|
|||||||
!
|
!
|
||||||
! A_cart = ao_cart_to_ao_basis_mat A_cart ao_cart_to_ao_basis_mat^T
|
! A_cart = ao_cart_to_ao_basis_mat A_cart ao_cart_to_ao_basis_mat^T
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision, intent(in) :: A_cart(LDA_cart, ao_cart_num)
|
double precision, intent(in) :: A_cart(LDA_cart, ao_cart_num)
|
||||||
double precision, intent(out :: A_ao_basis(LDA_ao_basis, ao_num)
|
double precision, intent(out) :: A_ao_basis(LDA_ao_basis, ao_num)
|
||||||
integer, intent(in) :: LDA_cart, LDA_ao_basis
|
integer, intent(in) :: LDA_cart, LDA_ao_basis
|
||||||
double precision, allocatable :: tmp(:,:)
|
double precision, allocatable :: tmp(:,:)
|
||||||
allocate (tmp(ao_num,ao_cart_num))
|
allocate (tmp(ao_num,ao_cart_num))
|
||||||
@ -96,8 +96,8 @@ subroutine ao_cart_to_ao_basis_vec(V_cart, V_ao_basis)
|
|||||||
!
|
!
|
||||||
! V_cart = ao_cart_to_ao_basis_mat V_cart
|
! V_cart = ao_cart_to_ao_basis_mat V_cart
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision, intent(in) :: V_cart(ao_cart_num)
|
double precision, intent(in) :: V_cart(ao_cart_num)
|
||||||
double precision, intent(out :: A_ao_basis(ao_num)
|
double precision, intent(out) :: V_ao_basis(ao_num)
|
||||||
|
|
||||||
call dgemv('N',ao_num,ao_cart_num, 1.d0, &
|
call dgemv('N',ao_num,ao_cart_num, 1.d0, &
|
||||||
ao_cart_to_ao_basis_mat,size(ao_cart_to_ao_basis_mat,1), &
|
ao_cart_to_ao_basis_mat,size(ao_cart_to_ao_basis_mat,1), &
|
||||||
|
@ -45,7 +45,7 @@ END_PROVIDER
|
|||||||
! Spherical to cartesian transformation matrix obtained with
|
! Spherical to cartesian transformation matrix obtained with
|
||||||
! Horton (http://theochem.github.com/horton/, 2015)
|
! Horton (http://theochem.github.com/horton/, 2015)
|
||||||
|
|
||||||
! First index is the index of the cartesian AO, obtained by ao_power_index
|
! First index is the index of the cartesian AO, obtained by ao_cart_power_index
|
||||||
! Second index is the index of the spherical AO
|
! Second index is the index of the spherical AO
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, cart_to_sphe_0, (1,1) ]
|
BEGIN_PROVIDER [ double precision, cart_to_sphe_0, (1,1) ]
|
||||||
@ -855,7 +855,7 @@ END_PROVIDER
|
|||||||
!! S_cart^-1 <cart|sphe>
|
!! S_cart^-1 <cart|sphe>
|
||||||
! END_DOC
|
! END_DOC
|
||||||
! integer :: i
|
! integer :: i
|
||||||
! integer, external :: ao_power_index
|
! integer, external :: ao_cart_power_index
|
||||||
! integer :: ibegin,j,k
|
! integer :: ibegin,j,k
|
||||||
! integer :: prev, ao_sphe_count
|
! integer :: prev, ao_sphe_count
|
||||||
! prev = 0
|
! prev = 0
|
||||||
@ -868,18 +868,18 @@ END_PROVIDER
|
|||||||
! enddo
|
! enddo
|
||||||
|
|
||||||
! else
|
! else
|
||||||
! ! Assume order provided by ao_power_index
|
! ! Assume order provided by ao_cart_power_index
|
||||||
! i = 1
|
! i = 1
|
||||||
! ao_sphe_count = 0
|
! ao_sphe_count = 0
|
||||||
! do while (i <= ao_num)
|
! do while (i <= ao_num)
|
||||||
! select case ( ao_l(i) )
|
! select case ( ao_cart_l(i) )
|
||||||
! case (0)
|
! case (0)
|
||||||
! ao_sphe_count += 1
|
! ao_sphe_count += 1
|
||||||
! ao_cart_to_sphe_coef(i,ao_sphe_count) = 1.d0
|
! ao_cart_to_sphe_coef(i,ao_sphe_count) = 1.d0
|
||||||
! i += 1
|
! i += 1
|
||||||
! BEGIN_TEMPLATE
|
! BEGIN_TEMPLATE
|
||||||
! case ($SHELL)
|
! case ($SHELL)
|
||||||
! if (ao_power(i,1) == $SHELL) then
|
! if (ao_cart_power(i,1) == $SHELL) then
|
||||||
! do k=1,size(cart_to_sphe_$SHELL,2)
|
! do k=1,size(cart_to_sphe_$SHELL,2)
|
||||||
! do j=1,size(cart_to_sphe_$SHELL,1)
|
! do j=1,size(cart_to_sphe_$SHELL,1)
|
||||||
! ao_cart_to_sphe_coef(i+j-1,ao_sphe_count+k) = cart_to_sphe_$SHELL(j,k)
|
! ao_cart_to_sphe_coef(i+j-1,ao_sphe_count+k) = cart_to_sphe_$SHELL(j,k)
|
||||||
@ -924,7 +924,7 @@ END_PROVIDER
|
|||||||
! S_cart^-1 <cart|sphe>
|
! S_cart^-1 <cart|sphe>
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i
|
integer :: i
|
||||||
integer, external :: ao_power_index
|
integer, external :: ao_cart_power_index
|
||||||
integer :: ibegin,j,k
|
integer :: ibegin,j,k
|
||||||
integer :: prev, ao_sphe_count
|
integer :: prev, ao_sphe_count
|
||||||
prev = 0
|
prev = 0
|
||||||
@ -938,11 +938,11 @@ END_PROVIDER
|
|||||||
enddo
|
enddo
|
||||||
|
|
||||||
else
|
else
|
||||||
! Assume order provided by ao_power_index
|
! Assume order provided by ao_cart_power_index
|
||||||
i = 1
|
i = 1
|
||||||
ao_sphe_count = 0
|
ao_sphe_count = 0
|
||||||
do while (i <= ao_num)
|
do while (i <= ao_num)
|
||||||
select case ( ao_l(i) )
|
select case ( ao_cart_l(i) )
|
||||||
case (0)
|
case (0)
|
||||||
ao_sphe_count += 1
|
ao_sphe_count += 1
|
||||||
ao_cart_to_sphe_coef(i,ao_sphe_count) = 1.d0
|
ao_cart_to_sphe_coef(i,ao_sphe_count) = 1.d0
|
||||||
@ -950,7 +950,7 @@ END_PROVIDER
|
|||||||
i += 1
|
i += 1
|
||||||
BEGIN_TEMPLATE
|
BEGIN_TEMPLATE
|
||||||
case ($SHELL)
|
case ($SHELL)
|
||||||
if (ao_power(i,1) == $SHELL) then
|
if (ao_cart_power(i,1) == $SHELL) then
|
||||||
do k=1,size(cart_to_sphe_$SHELL,2)
|
do k=1,size(cart_to_sphe_$SHELL,2)
|
||||||
do j=1,size(cart_to_sphe_$SHELL,1)
|
do j=1,size(cart_to_sphe_$SHELL,1)
|
||||||
ao_cart_to_sphe_coef(i+j-1,ao_sphe_count+k) = cart_to_sphe_$SHELL(j,k)
|
ao_cart_to_sphe_coef(i+j-1,ao_sphe_count+k) = cart_to_sphe_$SHELL(j,k)
|
||||||
|
@ -26,7 +26,7 @@ BEGIN_PROVIDER [double precision, ao_cart_integrals_n_e_cgtos, (ao_cart_num, ao_
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
ao_cart_coul_n_e_cgtos = 0.d0
|
ao_cart_integrals_n_e_cgtos = 0.d0
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
@ -37,7 +37,7 @@ BEGIN_PROVIDER [double precision, ao_cart_integrals_n_e_cgtos, (ao_cart_num, ao_
|
|||||||
!$OMP ao_cart_power, nucl_num, nucl_charge, n_pt_max_integrals, &
|
!$OMP ao_cart_power, nucl_num, nucl_charge, n_pt_max_integrals, &
|
||||||
!$OMP ao_cart_expo_cgtos_ord_transp, ao_cart_coef_cgtos_norm_ord_transp, &
|
!$OMP ao_cart_expo_cgtos_ord_transp, ao_cart_coef_cgtos_norm_ord_transp, &
|
||||||
!$OMP ao_cart_expo_pw_ord_transp, ao_cart_expo_phase_ord_transp, &
|
!$OMP ao_cart_expo_pw_ord_transp, ao_cart_expo_phase_ord_transp, &
|
||||||
!$OMP ao_cart_coul_n_e_cgtos)
|
!$OMP ao_cart_integrals_n_e_cgtos)
|
||||||
!$OMP DO SCHEDULE (dynamic)
|
!$OMP DO SCHEDULE (dynamic)
|
||||||
|
|
||||||
do j = 1, ao_cart_num
|
do j = 1, ao_cart_num
|
||||||
@ -91,7 +91,7 @@ BEGIN_PROVIDER [double precision, ao_cart_integrals_n_e_cgtos, (ao_cart_num, ao_
|
|||||||
c = c - Z * 2.d0 * real(C1 * I1 + C2 * I2)
|
c = c - Z * 2.d0 * real(C1 * I1 + C2 * I2)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
ao_cart_coul_n_e_cgtos(i,j) += c * ao_cart_coef_cgtos_norm_ord_transp(n,j) &
|
ao_cart_integrals_n_e_cgtos(i,j) += c * ao_cart_coef_cgtos_norm_ord_transp(n,j) &
|
||||||
* ao_cart_coef_cgtos_norm_ord_transp(l,i)
|
* ao_cart_coef_cgtos_norm_ord_transp(l,i)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -47,7 +47,7 @@ double precision function NAI_pol_mult_erf_ao_cart(i_ao, j_ao, mu_in, C_center)
|
|||||||
|
|
||||||
n_pt_in = n_pt_max_integrals
|
n_pt_in = n_pt_max_integrals
|
||||||
|
|
||||||
NAI_pol_mult_erf_ao = 0.d0
|
NAI_pol_mult_erf_ao_cart = 0.d0
|
||||||
do i = 1, ao_cart_prim_num(i_ao)
|
do i = 1, ao_cart_prim_num(i_ao)
|
||||||
alpha = ao_cart_expo_ordered_transp(i,i_ao)
|
alpha = ao_cart_expo_ordered_transp(i,i_ao)
|
||||||
do j = 1, ao_cart_prim_num(j_ao)
|
do j = 1, ao_cart_prim_num(j_ao)
|
||||||
@ -55,11 +55,11 @@ double precision function NAI_pol_mult_erf_ao_cart(i_ao, j_ao, mu_in, C_center)
|
|||||||
|
|
||||||
integral = NAI_pol_mult_erf(A_center, B_center, power_A, power_B, alpha, beta, C_center, n_pt_in,mu_in)
|
integral = NAI_pol_mult_erf(A_center, B_center, power_A, power_B, alpha, beta, C_center, n_pt_in,mu_in)
|
||||||
|
|
||||||
NAI_pol_mult_erf_ao += integral * ao_cart_coef_normalized_ordered_transp(j,j_ao) * ao_cart_coef_normalized_ordered_transp(i,i_ao)
|
NAI_pol_mult_erf_ao_cart += integral * ao_cart_coef_normalized_ordered_transp(j,j_ao) * ao_cart_coef_normalized_ordered_transp(i,i_ao)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
end function NAI_pol_mult_erf_ao
|
end function NAI_pol_mult_erf_ao_cart
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
BEGIN_PROVIDER [ double precision, ao_cart_integrals_n_e, (ao_cart_num,ao_cart_num)]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Nucleus-electron interaction, in the |AO| basis set.
|
! Nucleus-electron interaction, in the |AO| basis set.
|
||||||
@ -18,11 +18,11 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
|||||||
double precision :: A_center(3),B_center(3),C_center(3)
|
double precision :: A_center(3),B_center(3),C_center(3)
|
||||||
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
||||||
|
|
||||||
ao_cart_coul_n_e = 0.d0
|
ao_cart_integrals_n_e = 0.d0
|
||||||
|
|
||||||
if (read_ao_cart_coul_n_e) then
|
if (read_ao_cart_integrals_n_e) then
|
||||||
|
|
||||||
call ezfio_get_ao_cart_one_e_ints_ao_cart_coul_n_e(ao_cart_coul_n_e)
|
call ezfio_get_ao_cart_one_e_ints_ao_cart_integrals_n_e(ao_cart_integrals_n_e)
|
||||||
print *, 'AO N-e integrals read from disk'
|
print *, 'AO N-e integrals read from disk'
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -31,7 +31,7 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
|||||||
|
|
||||||
do j = 1, ao_cart_num
|
do j = 1, ao_cart_num
|
||||||
do i = 1, ao_cart_num
|
do i = 1, ao_cart_num
|
||||||
ao_cart_coul_n_e(i,j) = ao_cart_coul_n_e_cgtos(i,j)
|
ao_cart_integrals_n_e(i,j) = ao_cart_integrals_n_e_cgtos(i,j)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
|||||||
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,C_center,power_A,power_B,&
|
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,C_center,power_A,power_B,&
|
||||||
!$OMP num_A,num_B,Z,c,c1,n_pt_in) &
|
!$OMP num_A,num_B,Z,c,c1,n_pt_in) &
|
||||||
!$OMP SHARED (ao_cart_num,ao_cart_prim_num,ao_cart_expo_ordered_transp,ao_cart_power,ao_cart_nucl,nucl_coord,ao_cart_coef_normalized_ordered_transp,&
|
!$OMP SHARED (ao_cart_num,ao_cart_prim_num,ao_cart_expo_ordered_transp,ao_cart_power,ao_cart_nucl,nucl_coord,ao_cart_coef_normalized_ordered_transp,&
|
||||||
!$OMP n_pt_max_integrals,ao_cart_coul_n_e,nucl_num,nucl_charge)
|
!$OMP n_pt_max_integrals,ao_cart_integrals_n_e,nucl_num,nucl_charge)
|
||||||
|
|
||||||
n_pt_in = n_pt_max_integrals
|
n_pt_in = n_pt_max_integrals
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
|||||||
c = c - Z * c1
|
c = c - Z * c1
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
ao_cart_coul_n_e(i,j) = ao_cart_coul_n_e(i,j) &
|
ao_cart_integrals_n_e(i,j) = ao_cart_integrals_n_e(i,j) &
|
||||||
+ ao_cart_coef_normalized_ordered_transp(l,j) &
|
+ ao_cart_coef_normalized_ordered_transp(l,j) &
|
||||||
* ao_cart_coef_normalized_ordered_transp(m,i) * c
|
* ao_cart_coef_normalized_ordered_transp(m,i) * c
|
||||||
enddo
|
enddo
|
||||||
@ -102,14 +102,14 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e, (ao_cart_num,ao_cart_num)]
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
if (write_ao_cart_coul_n_e) then
|
if (write_ao_cart_integrals_n_e) then
|
||||||
call ezfio_set_ao_cart_one_e_ints_ao_cart_coul_n_e(ao_cart_coul_n_e)
|
call ezfio_set_ao_cart_one_e_ints_ao_cart_integrals_n_e(ao_cart_integrals_n_e)
|
||||||
print *, 'AO N-e integrals written to disk'
|
print *, 'AO N-e integrals written to disk'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_imag, (ao_cart_num,ao_cart_num)]
|
BEGIN_PROVIDER [ double precision, ao_cart_integrals_n_e_imag, (ao_cart_num,ao_cart_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Nucleus-electron interaction, in the |AO| basis set.
|
! Nucleus-electron interaction, in the |AO| basis set.
|
||||||
!
|
!
|
||||||
@ -123,8 +123,8 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_imag, (ao_cart_num,ao_cart_n
|
|||||||
integer :: i,j,k,l,n_pt_in,m
|
integer :: i,j,k,l,n_pt_in,m
|
||||||
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
||||||
|
|
||||||
if (read_ao_cart_coul_n_e) then
|
if (read_ao_cart_integrals_n_e) then
|
||||||
call ezfio_get_ao_cart_one_e_ints_ao_cart_coul_n_e_imag(ao_cart_coul_n_e_imag)
|
call ezfio_get_ao_cart_one_e_ints_ao_cart_integrals_n_e_imag(ao_cart_integrals_n_e_imag)
|
||||||
print *, 'AO N-e integrals read from disk'
|
print *, 'AO N-e integrals read from disk'
|
||||||
else
|
else
|
||||||
print *, irp_here, ': Not yet implemented'
|
print *, irp_here, ': Not yet implemented'
|
||||||
@ -132,7 +132,7 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_imag, (ao_cart_num,ao_cart_n
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_per_atom, (ao_cart_num,ao_cart_num,nucl_num)]
|
BEGIN_PROVIDER [ double precision, ao_cart_integrals_n_e_per_atom, (ao_cart_num,ao_cart_num,nucl_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Nucleus-electron interaction in the |AO| basis set, per atom A.
|
! Nucleus-electron interaction in the |AO| basis set, per atom A.
|
||||||
!
|
!
|
||||||
@ -146,14 +146,14 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_per_atom, (ao_cart_num,ao_ca
|
|||||||
integer :: i,j,k,l,n_pt_in,m
|
integer :: i,j,k,l,n_pt_in,m
|
||||||
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
||||||
|
|
||||||
ao_cart_coul_n_e_per_atom = 0.d0
|
ao_cart_integrals_n_e_per_atom = 0.d0
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,power_A,power_B,&
|
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,power_A,power_B,&
|
||||||
!$OMP num_A,num_B,c,n_pt_in,C_center) &
|
!$OMP num_A,num_B,c,n_pt_in,C_center) &
|
||||||
!$OMP SHARED (ao_cart_num,ao_cart_prim_num,ao_cart_expo_ordered_transp,ao_cart_power,ao_cart_nucl,nucl_coord,ao_cart_coef_normalized_ordered_transp,&
|
!$OMP SHARED (ao_cart_num,ao_cart_prim_num,ao_cart_expo_ordered_transp,ao_cart_power,ao_cart_nucl,nucl_coord,ao_cart_coef_normalized_ordered_transp,&
|
||||||
!$OMP n_pt_max_integrals,ao_cart_coul_n_e_per_atom,nucl_num)
|
!$OMP n_pt_max_integrals,ao_cart_integrals_n_e_per_atom,nucl_num)
|
||||||
n_pt_in = n_pt_max_integrals
|
n_pt_in = n_pt_max_integrals
|
||||||
!$OMP DO SCHEDULE (dynamic)
|
!$OMP DO SCHEDULE (dynamic)
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ BEGIN_PROVIDER [ double precision, ao_cart_coul_n_e_per_atom, (ao_cart_num,ao_ca
|
|||||||
* ao_cart_coef_normalized_ordered_transp(m,i)
|
* ao_cart_coef_normalized_ordered_transp(m,i)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
ao_cart_coul_n_e_per_atom(i,j,k) = -c
|
ao_cart_integrals_n_e_per_atom(i,j,k) = -c
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -3,7 +3,8 @@ logical function ao_cart_two_e_integral_zero(i,j,k,l)
|
|||||||
integer, intent(in) :: i,j,k,l
|
integer, intent(in) :: i,j,k,l
|
||||||
|
|
||||||
ao_cart_two_e_integral_zero = .False.
|
ao_cart_two_e_integral_zero = .False.
|
||||||
if (.not.(read_ao_cart_two_e_integrals.or.is_periodic.or.use_cgtos)) then
|
! if (.not.(read_ao_cart_two_e_integrals.or.is_periodic.or.use_cgtos)) then
|
||||||
|
if (.not.(is_periodic.or.use_cgtos)) then
|
||||||
if (ao_cart_overlap_abs(j,l)*ao_cart_overlap_abs(i,k) < ao_cart_integrals_threshold) then
|
if (ao_cart_overlap_abs(j,l)*ao_cart_overlap_abs(i,k) < ao_cart_integrals_threshold) then
|
||||||
ao_cart_two_e_integral_zero = .True.
|
ao_cart_two_e_integral_zero = .True.
|
||||||
return
|
return
|
||||||
|
@ -39,7 +39,7 @@ double precision function NAI_pol_mult_erf_ao(i_ao, j_ao, mu_in, C_center)
|
|||||||
end function NAI_pol_mult_erf_ao
|
end function NAI_pol_mult_erf_ao
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
subroutine all_NAI_pol_mult_erf_ao_with1s(beta, B_center, mu_in, C_center)
|
subroutine all_NAI_pol_mult_erf_ao_with1s(beta, B_center, mu_in, C_center,integrals_ao)
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
@ -59,7 +59,7 @@ subroutine all_NAI_pol_mult_erf_ao_with1s(beta, B_center, mu_in, C_center)
|
|||||||
allocate(integrals_ao_cart(ao_cart_num,ao_cart_num))
|
allocate(integrals_ao_cart(ao_cart_num,ao_cart_num))
|
||||||
do i = 1, ao_cart_num
|
do i = 1, ao_cart_num
|
||||||
do j = 1, ao_cart_num
|
do j = 1, ao_cart_num
|
||||||
integrals_ao_car(j,i) = NAI_pol_mult_erf_ao_cart_with1s(i_ao, j_ao, beta, B_center, mu_in, C_center)
|
integrals_ao_cart(j,i) = NAI_pol_mult_erf_ao_cart_with1s(i, j, beta, B_center, mu_in, C_center)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
call ao_cart_to_ao_basis(integrals_ao_cart, ao_cart_num, integrals_ao, ao_num)
|
call ao_cart_to_ao_basis(integrals_ao_cart, ao_cart_num, integrals_ao, ao_num)
|
||||||
@ -84,7 +84,7 @@ double precision function NAI_pol_mult_erf_ao_with1s(i_ao, j_ao, beta, B_center,
|
|||||||
allocate(integrals_ao(ao_num,ao_num),integrals_ao_cart(ao_cart_num,ao_cart_num))
|
allocate(integrals_ao(ao_num,ao_num),integrals_ao_cart(ao_cart_num,ao_cart_num))
|
||||||
do i = 1, ao_cart_num
|
do i = 1, ao_cart_num
|
||||||
do j = 1, ao_cart_num
|
do j = 1, ao_cart_num
|
||||||
integrals_ao_car(j,i) = NAI_pol_mult_erf_ao_cart_with1s(i_ao, j_ao, beta, B_center, mu_in, C_center)
|
integrals_ao_cart(j,i) = NAI_pol_mult_erf_ao_cart_with1s(i_ao, j_ao, beta, B_center, mu_in, C_center)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
call ao_cart_to_ao_basis(integrals_ao_cart, ao_cart_num, integrals_ao, ao_num)
|
call ao_cart_to_ao_basis(integrals_ao_cart, ao_cart_num, integrals_ao, ao_num)
|
||||||
|
@ -27,7 +27,7 @@ BEGIN_PROVIDER [ double precision, ao_integrals_n_e, (ao_num,ao_num)]
|
|||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
call ao_cart_to_ao_basis(ao_cart_coul_n_e, ao_cart_num, ao_integrals_n_e, ao_num)
|
call ao_cart_to_ao_basis(ao_cart_integrals_n_e, ao_cart_num, ao_integrals_n_e, ao_num)
|
||||||
|
|
||||||
IF(do_pseudo) THEN
|
IF(do_pseudo) THEN
|
||||||
ao_integrals_n_e += ao_pseudo_integrals
|
ao_integrals_n_e += ao_pseudo_integrals
|
||||||
@ -78,7 +78,7 @@ BEGIN_PROVIDER [ double precision, ao_integrals_n_e_per_atom, (ao_num,ao_num,nuc
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i
|
integer :: i
|
||||||
do i = 1, nucl_num
|
do i = 1, nucl_num
|
||||||
call ao_cart_to_ao_basis(ao_cart_coul_n_e_per_atom(1,1,i), ao_cart_num,ao_integrals_n_e_per_atom(1,1,i), ao_num)
|
call ao_cart_to_ao_basis(ao_cart_integrals_n_e_per_atom(1,1,i), ao_cart_num,ao_integrals_n_e_per_atom(1,1,i), ao_num)
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ doc: If true, assume primitive basis functions are normalized
|
|||||||
interface: ezfio, provider, ocaml
|
interface: ezfio, provider, ocaml
|
||||||
default: true
|
default: true
|
||||||
|
|
||||||
[ao_normalized]
|
[ao_cart_normalized]
|
||||||
type: logical
|
type: logical
|
||||||
doc: If true, normalize the basis functions
|
doc: If true, normalize the basis functions
|
||||||
interface: ezfio, provider, ocaml
|
interface: ezfio, provider, ocaml
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
integer :: n_pt_sup
|
integer :: n_pt_sup
|
||||||
integer :: prim_power_l_max
|
integer :: prim_power_l_max
|
||||||
include 'utils/constants.include.F'
|
include 'utils/constants.include.F'
|
||||||
prim_power_l_max = maxval(ao_power)
|
prim_power_l_max = maxval(ao_cart_power)
|
||||||
n_pt_max_integrals = 24 * prim_power_l_max + 4
|
n_pt_max_integrals = 24 * prim_power_l_max + 4
|
||||||
n_pt_max_i_x = 8 * prim_power_l_max
|
n_pt_max_i_x = 8 * prim_power_l_max
|
||||||
ASSERT (n_pt_max_i_x-1 <= max_dim)
|
ASSERT (n_pt_max_i_x-1 <= max_dim)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user