ao_one_e_integrals¶
All the one-electron integrals in the AO basis are here.
The most important providers for usual quantum-chemistry calculation are:
ao_kinetic_integral
which are the kinetic operator integrals on the AO basis (seekin_ao_ints.irp.f
)ao_nucl_elec_integral
which are the nuclear-elctron operator integrals on the AO basis (seepot_ao_ints.irp.f
)ao_one_e_integrals
which are the the h_core operator integrals on the AO basis (seeao_mono_ints.irp.f
)
Note that you can find other interesting integrals related to the position operator in spread_dipole_ao.irp.f
.
EZFIO parameters¶
-
ao_integrals_e_n
¶
Nucleus-electron integrals in AO basis set
-
io_ao_integrals_e_n
¶
Read/Write AO nucleus-electron attraction integrals from/to disk [ Write | Read | None ]
Default: None
-
ao_integrals_kinetic
¶
Kinetic energy integrals in AO basis set
-
io_ao_integrals_kinetic
¶
Read/Write AO kinetic integrals from/to disk [ Write | Read | None ]
Default: None
-
ao_integrals_pseudo
¶
Pseudopotential integrals in AO basis set
-
io_ao_integrals_pseudo
¶
Read/Write AO pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None
-
ao_integrals_overlap
¶
Overlap integrals in AO basis set
-
io_ao_integrals_overlap
¶
Read/Write AO overlap integrals from/to disk [ Write | Read | None ]
Default: None
-
ao_one_e_integrals
¶
Combined integrals in AO basis set
-
io_ao_one_e_integrals
¶
Read/Write AO one-electron integrals from/to disk [ Write | Read | None ]
Default: None
Providers¶
-
ao_cart_to_sphe_coef
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_cart_to_sphe_coef (ao_num,ao_num) integer :: ao_cart_to_sphe_num
Coefficients to go from cartesian to spherical coordinates in the current basis set
Needs:
ao_l
ao_num
ao_power
cart_to_sphe_1
Needed by:
-
ao_cart_to_sphe_inv
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_cart_to_sphe_inv (ao_cart_to_sphe_num,ao_num)
Inverse of
ao_cart_to_sphe_coef
Needs:
ao_num
-
ao_cart_to_sphe_num
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_cart_to_sphe_coef (ao_num,ao_num) integer :: ao_cart_to_sphe_num
Coefficients to go from cartesian to spherical coordinates in the current basis set
Needs:
ao_l
ao_num
ao_power
cart_to_sphe_1
Needed by:
-
ao_cart_to_sphe_overlap
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_cart_to_sphe_overlap (ao_cart_to_sphe_num,ao_cart_to_sphe_num)
AO overlap matrix in the spherical basis set
Needs:
ao_num
Needed by:
-
ao_deriv2_x
¶ File :
ao_one_e_ints/kin_ao_ints.irp.f
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num) double precision, allocatable :: ao_deriv2_y (ao_num,ao_num) double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
Second derivative matrix elements in the AO basis.
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_deriv2_y
¶ File :
ao_one_e_ints/kin_ao_ints.irp.f
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num) double precision, allocatable :: ao_deriv2_y (ao_num,ao_num) double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
Second derivative matrix elements in the AO basis.
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_deriv2_z
¶ File :
ao_one_e_ints/kin_ao_ints.irp.f
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num) double precision, allocatable :: ao_deriv2_y (ao_num,ao_num) double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
Second derivative matrix elements in the AO basis.
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_deriv_1_x
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
- array of the integrals of AO_i * d/dx AO_j
- array of the integrals of AO_i * d/dy AO_j
- array of the integrals of AO_i * d/dz AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
-
ao_deriv_1_y
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
- array of the integrals of AO_i * d/dx AO_j
- array of the integrals of AO_i * d/dy AO_j
- array of the integrals of AO_i * d/dz AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
-
ao_deriv_1_z
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num) double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
- array of the integrals of AO_i * d/dx AO_j
- array of the integrals of AO_i * d/dy AO_j
- array of the integrals of AO_i * d/dz AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
-
ao_dipole_x
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_dipole_x (ao_num,ao_num) double precision, allocatable :: ao_dipole_y (ao_num,ao_num) double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
- array of the integrals of AO_i * x AO_j
- array of the integrals of AO_i * y AO_j
- array of the integrals of AO_i * z AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_dipole_y
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_dipole_x (ao_num,ao_num) double precision, allocatable :: ao_dipole_y (ao_num,ao_num) double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
- array of the integrals of AO_i * x AO_j
- array of the integrals of AO_i * y AO_j
- array of the integrals of AO_i * z AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_dipole_z
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_dipole_x (ao_num,ao_num) double precision, allocatable :: ao_dipole_y (ao_num,ao_num) double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
- array of the integrals of AO_i * x AO_j
- array of the integrals of AO_i * y AO_j
- array of the integrals of AO_i * z AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_integrals_n_e
¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision, allocatable :: ao_integrals_n_e (ao_num,ao_num)
Nucleus-electron interaction, in the AO basis set.
\(\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle\)
Needs:
ao_coef_normalized_ordered_transp
ao_expo_ordered_transp
ao_nucl
ao_num
ao_power
ao_prim_num
n_pt_max_integrals
nucl_charge
nucl_coord
nucl_num
read_ao_integrals_e_n
Needed by:
-
ao_integrals_n_e_per_atom
¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision, allocatable :: ao_integrals_n_e_per_atom (ao_num,ao_num,nucl_num)
Nucleus-electron interaction in the AO basis set, per atom A.
\(\langle \chi_i | -\frac{1}{|r-R_A|} | \chi_j \rangle\)
Needs:
ao_num
ao_power
ao_prim_num
n_pt_max_integrals
nucl_coord
nucl_num
Needed by:
-
ao_kinetic_integrals
¶ File :
ao_one_e_ints/kin_ao_ints.irp.f
double precision, allocatable :: ao_kinetic_integrals (ao_num,ao_num)
Kinetic energy integrals in the AO basis.
\(\langle \chi_i |\hat{T}| \chi_j \rangle\)
Needs:
ao_num
read_ao_integrals_kinetic
Needed by:
-
ao_one_e_integrals
¶ File :
ao_one_e_ints/ao_one_e_ints.irp.f
double precision, allocatable :: ao_one_e_integrals (ao_num,ao_num) double precision, allocatable :: ao_one_e_integrals_diag (ao_num)
One-electron Hamiltonian in the AO basis.
Needs:
ao_num
ao_pseudo_integrals
do_pseudo
read_ao_one_e_integrals
Needed by:
-
ao_one_e_integrals_diag
¶ File :
ao_one_e_ints/ao_one_e_ints.irp.f
double precision, allocatable :: ao_one_e_integrals (ao_num,ao_num) double precision, allocatable :: ao_one_e_integrals_diag (ao_num)
One-electron Hamiltonian in the AO basis.
Needs:
ao_num
ao_pseudo_integrals
do_pseudo
read_ao_one_e_integrals
Needed by:
-
ao_ortho_canonical_coef
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_ortho_canonical_coef (ao_num,ao_num) integer :: ao_ortho_canonical_num
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
Needs:
ao_cartesian
ao_num
Needed by:
-
ao_ortho_canonical_coef_inv
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_ortho_canonical_coef_inv (ao_num,ao_num)
ao_ortho_canonical_coef^(-1)
Needs:
ao_num
Needed by:
-
ao_ortho_canonical_num
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_ortho_canonical_coef (ao_num,ao_num) integer :: ao_ortho_canonical_num
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
Needs:
ao_cartesian
ao_num
Needed by:
-
ao_ortho_canonical_overlap
¶ File :
ao_one_e_ints/ao_ortho_canonical.irp.f
double precision, allocatable :: ao_ortho_canonical_overlap (ao_ortho_canonical_num,ao_ortho_canonical_num)
overlap matrix of the ao_ortho_canonical. Expected to be the Identity
Needs:
ao_num
-
ao_overlap
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: ao_overlap (ao_num,ao_num) double precision, allocatable :: ao_overlap_x (ao_num,ao_num) double precision, allocatable :: ao_overlap_y (ao_num,ao_num) double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
Overlap between atomic basis functions:
\(\int \chi_i(r) \chi_j(r) dr\)
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
read_ao_integrals_overlap
Needed by:
-
ao_overlap_abs
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: ao_overlap_abs (ao_num,ao_num)
Overlap between absolute values of atomic basis functions:
\(\int |\chi_i(r)| |\chi_j(r)| dr\)
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_overlap_x
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: ao_overlap (ao_num,ao_num) double precision, allocatable :: ao_overlap_x (ao_num,ao_num) double precision, allocatable :: ao_overlap_y (ao_num,ao_num) double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
Overlap between atomic basis functions:
\(\int \chi_i(r) \chi_j(r) dr\)
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
read_ao_integrals_overlap
Needed by:
-
ao_overlap_y
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: ao_overlap (ao_num,ao_num) double precision, allocatable :: ao_overlap_x (ao_num,ao_num) double precision, allocatable :: ao_overlap_y (ao_num,ao_num) double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
Overlap between atomic basis functions:
\(\int \chi_i(r) \chi_j(r) dr\)
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
read_ao_integrals_overlap
Needed by:
-
ao_overlap_z
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: ao_overlap (ao_num,ao_num) double precision, allocatable :: ao_overlap_x (ao_num,ao_num) double precision, allocatable :: ao_overlap_y (ao_num,ao_num) double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
Overlap between atomic basis functions:
\(\int \chi_i(r) \chi_j(r) dr\)
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
read_ao_integrals_overlap
Needed by:
-
ao_pseudo_integrals
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: ao_pseudo_integrals (ao_num,ao_num)
Pseudo-potential integrals in the AO basis set.
Needs:
do_pseudo
pseudo_klocmax
pseudo_kmax
read_ao_integrals_pseudo
Needed by:
-
ao_pseudo_integrals_local
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: ao_pseudo_integrals_local (ao_num,ao_num)
Local pseudo-potential
Needs:
ao_coef_normalized_ordered_transp
ao_expo_ordered_transp
ao_nucl
ao_num
ao_power
ao_prim_num
nucl_charge
nucl_coord
nucl_num
pseudo_klocmax
pseudo_v_k_transp
Needed by:
-
ao_pseudo_integrals_non_local
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: ao_pseudo_integrals_non_local (ao_num,ao_num)
Non-local pseudo-potential
Needs:
ao_coef_normalized_ordered_transp
ao_expo_ordered_transp
ao_nucl
ao_num
ao_power
ao_prim_num
nucl_charge
nucl_coord
nucl_num
pseudo_kmax
pseudo_lmax
pseudo_v_kl_transp
Needed by:
-
ao_spread_x
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_spread_x (ao_num,ao_num) double precision, allocatable :: ao_spread_y (ao_num,ao_num) double precision, allocatable :: ao_spread_z (ao_num,ao_num)
- array of the integrals of AO_i * x^2 AO_j
- array of the integrals of AO_i * y^2 AO_j
- array of the integrals of AO_i * z^2 AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_spread_y
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_spread_x (ao_num,ao_num) double precision, allocatable :: ao_spread_y (ao_num,ao_num) double precision, allocatable :: ao_spread_z (ao_num,ao_num)
- array of the integrals of AO_i * x^2 AO_j
- array of the integrals of AO_i * y^2 AO_j
- array of the integrals of AO_i * z^2 AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
ao_spread_z
¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
double precision, allocatable :: ao_spread_x (ao_num,ao_num) double precision, allocatable :: ao_spread_y (ao_num,ao_num) double precision, allocatable :: ao_spread_z (ao_num,ao_num)
- array of the integrals of AO_i * x^2 AO_j
- array of the integrals of AO_i * y^2 AO_j
- array of the integrals of AO_i * z^2 AO_j
Needs:
ao_num
ao_power
ao_prim_num
nucl_coord
Needed by:
-
give_polynomial_mult_center_one_e_erf:
()¶ File :
ao_one_e_ints/pot_ao_erf_ints.irp.f
subroutine give_polynomial_mult_center_one_e_erf(A_center,B_center,alpha,beta,& power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in)
Returns the explicit polynomial in terms of the $t$ variable of the following polynomial:
$I_{x1}(a_x, d_x,p,q) times I_{x1}(a_y, d_y,p,q) times I_{x1}(a_z, d_z,p,q)$.
Calls:
i_x1_pol_mult_one_e()
multiply_poly()
-
give_polynomial_mult_center_one_e_erf_opt:
()¶ File :
ao_one_e_ints/pot_ao_erf_ints.irp.f
subroutine give_polynomial_mult_center_one_e_erf_opt(A_center,B_center,alpha,beta,& power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in,p,p_inv,p_inv_2,p_new,P_center)
Returns the explicit polynomial in terms of the $t$ variable of the following polynomial:
$I_{x1}(a_x, d_x,p,q) times I_{x1}(a_y, d_y,p,q) times I_{x1}(a_z, d_z,p,q)$.
Called by:
nai_pol_mult_erf()
Calls:
i_x1_pol_mult_one_e()
multiply_poly()
-
i_x1_pol_mult_one_e:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
recursive subroutine I_x1_pol_mult_one_e(a,c,R1x,R1xp,R2x,d,nd,n_pt_in)
Recursive routine involved in the electron-nucleus potential
Called by:
give_polynomial_mult_center_one_e()
give_polynomial_mult_center_one_e_erf()
give_polynomial_mult_center_one_e_erf_opt()
i_x1_pol_mult_one_e()
i_x2_pol_mult_one_e()
Calls:
i_x1_pol_mult_one_e()
i_x2_pol_mult_one_e()
multiply_poly()
-
i_x2_pol_mult_one_e:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
recursive subroutine I_x2_pol_mult_one_e(c,R1x,R1xp,R2x,d,nd,dim)
Recursive routine involved in the electron-nucleus potential
Called by:
i_x1_pol_mult_one_e()
Calls:
i_x1_pol_mult_one_e()
multiply_poly()
-
pseudo_dz_k_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num) integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num) double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_k
pseudo_klocmax
pseudo_n_k
pseudo_v_k
Needed by:
-
pseudo_dz_kl_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_kl
pseudo_kmax
pseudo_lmax
pseudo_n_kl
pseudo_v_kl
Needed by:
-
pseudo_n_k_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num) integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num) double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_k
pseudo_klocmax
pseudo_n_k
pseudo_v_k
Needed by:
-
pseudo_n_kl_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_kl
pseudo_kmax
pseudo_lmax
pseudo_n_kl
pseudo_v_kl
Needed by:
-
pseudo_v_k_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num) integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num) double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_k
pseudo_klocmax
pseudo_n_k
pseudo_v_k
Needed by:
-
pseudo_v_kl_transp
¶ File :
ao_one_e_ints/pot_ao_pseudo_ints.irp.f
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num) double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
Transposed arrays for pseudopotentials
Needs:
nucl_num
pseudo_dz_kl
pseudo_kmax
pseudo_lmax
pseudo_n_kl
pseudo_v_kl
Needed by:
-
s_half
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: s_half (ao_num,ao_num)
\(S^{1/2}\)
Needs:
ao_num
-
s_half_inv
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: s_half_inv (AO_num,AO_num)
\(X = S^{-1/2}\) obtained by SVD
Needs:
ao_num
Needed by:
-
s_inv
¶ File :
ao_one_e_ints/ao_overlap.irp.f
double precision, allocatable :: s_inv (ao_num,ao_num)
Inverse of the overlap matrix
Needs:
ao_num
Subroutines / functions¶
-
give_all_erf_kl_ao:
()¶ File :
ao_one_e_ints/pot_ao_erf_ints.irp.f
subroutine give_all_erf_kl_ao(integrals_ao,mu_in,C_center)
Subroutine that returns all integrals over $r$ of type $frac{ erf(mu * |r-R_C|) }{ |r-R_C| }$
Needs:
ao_num
-
give_polynomial_mult_center_one_e:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
subroutine give_polynomial_mult_center_one_e(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out)
Returns the explicit polynomial in terms of the “t” variable of the following
$I_{x1}(a_x, d_x,p,q) times I_{x1}(a_y, d_y,p,q) times I_{x1}(a_z, d_z,p,q)$.
Called by:
nai_pol_mult()
Calls:
i_x1_pol_mult_one_e()
multiply_poly()
-
int_gaus_pol:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function int_gaus_pol(alpha,n)
Computes the integral:
$int_{-infty}^{infty} x^n exp(-alpha x^2) dx$.
-
nai_pol_mult:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in)
Computes the electron-nucleus attraction with two primitves.
\(\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle\)
Calls:
give_polynomial_mult_center_one_e()
-
nai_pol_mult_erf:
()¶ File :
ao_one_e_ints/pot_ao_erf_ints.irp.f
double precision function NAI_pol_mult_erf(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in,mu_in)
Computes the following integral : $int dr (x-A_x)^a (x-B_x)^b exp(-alpha (x-A_x)^2 - beta (x-B_x)^2 )
Calls:
give_polynomial_mult_center_one_e_erf_opt()
-
nai_pol_mult_erf_ao:
()¶ File :
ao_one_e_ints/pot_ao_erf_ints.irp.f
double precision function NAI_pol_mult_erf_ao(i_ao,j_ao,mu_in,C_center)
Computes the following integral : $int_{-infty}^{infty} dr chi_i(r) chi_j(r) frac{erf(mu |r-R_C|)}{|r-R_C|}$.
Needs:
ao_expo_ordered_transp
ao_prim_num
ao_nucl
nucl_coord
-
overlap_bourrin_deriv_x:
()¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
subroutine overlap_bourrin_deriv_x(i_component,A_center,B_center,alpha,beta,power_A,power_B,dx,lower_exp_val,overlap_x,nx)
Called by:
Calls:
overlap_bourrin_x()
-
overlap_bourrin_dipole:
()¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
subroutine overlap_bourrin_dipole(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
Called by:
-
overlap_bourrin_spread:
()¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
subroutine overlap_bourrin_spread(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
- Computes the following integral :
- int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) * x ] needed for the dipole and those things
Called by:
-
overlap_bourrin_x:
()¶ File :
ao_one_e_ints/spread_dipole_ao.irp.f
subroutine overlap_bourrin_x(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
Called by:
overlap_bourrin_deriv_x()
-
v_e_n:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function V_e_n(a_x,a_y,a_z,b_x,b_y,b_z,alpha,beta)
Primitve nuclear attraction between the two primitves centered on the same atom.
$p_1 = x^{a_x} y^{a_y} z^{a_z} exp(-alpha r^2)$
$p_2 = x^{b_x} y^{b_y} z^{b_z} exp(-beta r^2)$
-
v_phi:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function V_phi(n,m)
Computes the angular $phi$ part of the nuclear attraction integral:
$int_{0}^{2 pi} cos(phi)^n sin(phi)^m dphi$.
-
v_r:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function V_r(n,alpha)
Computes the radial part of the nuclear attraction integral:
$int_{0}^{infty} r^n exp(-alpha r^2) dr$
-
v_theta:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function V_theta(n,m)
Computes the angular $theta$ part of the nuclear attraction integral:
$int_{0}^{pi} cos(theta)^n sin(theta)^m dtheta$
-
wallis:
()¶ File :
ao_one_e_ints/pot_ao_ints.irp.f
double precision function Wallis(n)
Wallis integral:
$int_{0}^{pi} cos(theta)^n dtheta$.