mo_one_e_integrals¶
All the one-electron integrals in MO basis are defined here.
The most important providers for usual quantum-chemistry calculation are:
mo_kinetic_integrals
which are the kinetic operator integrals on the AO basis (seekin_mo_ints.irp.f
)mo_integrals_n_e
which are the nuclear-elctron operator integrals on the AO basis (seepot_mo_ints.irp.f
)mo_one_e_integrals
which are the the h_core operator integrals on the AO basis (seemo_mono_ints.irp.f
)
Note that you can find other interesting integrals related to the position operator in spread_dipole_mo.irp.f
.
EZFIO parameters¶
-
mo_integrals_e_n
¶
Nucleus-electron integrals in MO basis set
-
io_mo_integrals_e_n
¶
Read/Write MO electron-nucleus attraction integrals from/to disk [ Write | Read | None ]
Default: None
-
mo_integrals_kinetic
¶
Kinetic energy integrals in MO basis set
-
io_mo_integrals_kinetic
¶
Read/Write MO one-electron kinetic integrals from/to disk [ Write | Read | None ]
Default: None
-
mo_integrals_pseudo
¶
Pseudopotential integrals in MO basis set
-
io_mo_integrals_pseudo
¶
Read/Write MO pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None
-
mo_one_e_integrals
¶
One-electron integrals in MO basis set
-
io_mo_one_e_integrals
¶
Read/Write MO one-electron integrals from/to disk [ Write | Read | None ]
Default: None
Providers¶
-
mo_dipole_x
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_dipole_x (mo_num,mo_num) double precision, allocatable :: mo_dipole_y (mo_num,mo_num) double precision, allocatable :: mo_dipole_z (mo_num,mo_num)
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
Needs:
ao_dipole_x
ao_num
-
mo_dipole_y
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_dipole_x (mo_num,mo_num) double precision, allocatable :: mo_dipole_y (mo_num,mo_num) double precision, allocatable :: mo_dipole_z (mo_num,mo_num)
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
Needs:
ao_dipole_x
ao_num
-
mo_dipole_z
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_dipole_x (mo_num,mo_num) double precision, allocatable :: mo_dipole_y (mo_num,mo_num) double precision, allocatable :: mo_dipole_z (mo_num,mo_num)
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
Needs:
ao_dipole_x
ao_num
-
mo_integrals_n_e
¶ File :
mo_one_e_ints/pot_mo_ints.irp.f
double precision, allocatable :: mo_integrals_n_e (mo_num,mo_num)
Nucleus-electron interaction on the MO basis
Needs:
ao_integrals_n_e
ao_num
read_mo_integrals_e_n
Needed by:
-
mo_integrals_n_e_per_atom
¶ File :
mo_one_e_ints/pot_mo_ints.irp.f
double precision, allocatable :: mo_integrals_n_e_per_atom (mo_num,mo_num,nucl_num)
mo_integrals_n_e_per_atom(i,j,k) = \(\langle \phi_i| -\frac{1}{|r-R_k|} | \phi_j \rangle\) . where R_k is the coordinate of the k-th nucleus.
Needs:
ao_integrals_n_e_per_atom
ao_num
nucl_num
-
mo_kinetic_integrals
¶ File :
mo_one_e_ints/kin_mo_ints.irp.f
double precision, allocatable :: mo_kinetic_integrals (mo_num,mo_num)
Kinetic energy integrals in the MO basis
Needs:
ao_kinetic_integrals
ao_num
read_mo_integrals_kinetic
Needed by:
-
mo_one_e_integrals
¶ File :
mo_one_e_ints/mo_one_e_ints.irp.f
double precision, allocatable :: mo_one_e_integrals (mo_num,mo_num)
array of the mono electronic hamiltonian on the MOs basis : sum of the kinetic and nuclear electronic potential (and pseudo potential if needed)
Needs:
do_pseudo
mo_integrals_n_e
mo_pseudo_integrals
read_mo_one_e_integrals
Needed by:
-
mo_overlap
¶ File :
mo_one_e_ints/mo_overlap.irp.f
double precision, allocatable :: mo_overlap (mo_num,mo_num)
Provider to check that the MOs are indeed orthonormal.
Needs:
ao_num
ao_overlap
-
mo_pseudo_integrals
¶ File :
mo_one_e_ints/pot_mo_pseudo_ints.irp.f
double precision, allocatable :: mo_pseudo_integrals (mo_num,mo_num)
Pseudopotential integrals in MO basis
Needs:
ao_num
ao_pseudo_integrals
do_pseudo
mo_coef
mo_num
read_mo_integrals_pseudo
Needed by:
-
mo_spread_x
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_spread_x (mo_num,mo_num) double precision, allocatable :: mo_spread_y (mo_num,mo_num) double precision, allocatable :: mo_spread_z (mo_num,mo_num)
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
Needs:
ao_num
ao_spread_x
-
mo_spread_y
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_spread_x (mo_num,mo_num) double precision, allocatable :: mo_spread_y (mo_num,mo_num) double precision, allocatable :: mo_spread_z (mo_num,mo_num)
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
Needs:
ao_num
ao_spread_x
-
mo_spread_z
¶ File :
mo_one_e_ints/spread_dipole_mo.irp.f
double precision, allocatable :: mo_spread_x (mo_num,mo_num) double precision, allocatable :: mo_spread_y (mo_num,mo_num) double precision, allocatable :: mo_spread_z (mo_num,mo_num)
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
Needs:
ao_num
ao_spread_x
-
s_mo_coef
¶ File :
mo_one_e_ints/ao_to_mo.irp.f
double precision, allocatable :: s_mo_coef (ao_num,mo_num)
Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix.
Needs:
ao_num
ao_overlap
Needed by:
Subroutines / functions¶
-
mo_to_ao:
()¶ File :
mo_one_e_ints/ao_to_mo.irp.f
subroutine mo_to_ao(A_mo,LDA_mo,A_ao,LDA_ao)
Transform A from the MO basis to the AO basis
$(S.C).A_{mo}.(S.C)^dagger$
Needs:
ao_num
Called by:
Calls:
dgemm()
-
mo_to_ao_no_overlap:
()¶ File :
mo_one_e_ints/ao_to_mo.irp.f
subroutine mo_to_ao_no_overlap(A_mo,LDA_mo,A_ao,LDA_ao)
$C.A_{mo}.C^dagger$
Needs:
ao_num
Calls:
dgemm()