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_coef
mo_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_coef
mo_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_coef
mo_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
mo_coef
mo_num
read_mo_integrals_n_e
Needed by:
mo_one_e_integrals
ref_bitmask_energy
- 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
mo_coef
mo_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
mo_coef
mo_num
read_mo_integrals_kinetic
Needed by:
mo_one_e_integrals
ref_bitmask_energy
- 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 one-electron Hamiltonian on the MO basis : sum of the kinetic and nuclear electronic potentials (and pseudo potential if needed)
Needs:
mo_integrals_n_e
mo_kinetic_integrals
mo_num
read_mo_one_e_integrals
Needed by:
core_energy
fock_operator_closed_shell_ref_bitmask
psi_energy_h_core
ref_bitmask_energy
- 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_coef
mo_num
- 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
- 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_coef
mo_num
- 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_coef
mo_num
- 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
mo_coef
mo_num
- 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
mo_coef
mo_num
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
mo_num
s_mo_coef
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
mo_coef
mo_num
Called by:
one_e_dm_alpha_ao_for_dft
one_e_dm_alpha_ao_for_dft_no_core
Calls:
dgemm()
- orthonormalize_mos:
File :
mo_one_e_ints/orthonormalize.irp.f
subroutine orthonormalize_mos
Needs:
ao_num
lin_dep_cutoff
mo_coef
mo_num
mo_overlap
Called by:
save_natural_mos()
Calls:
nullify_small_elements()
ortho_lowdin()
restore_symmetry()
Touches:
mo_coef