diff --git a/src/AOs/ASSUMPTIONS.rst b/src/AOs/ASSUMPTIONS.rst index e69de29b..cb89b682 100644 --- a/src/AOs/ASSUMPTIONS.rst +++ b/src/AOs/ASSUMPTIONS.rst @@ -0,0 +1,8 @@ +* The atomic orbitals are normalized: + + .. math:: + + \int \left(\chi_i({\bf r}) \right)^2 dr = 1 + +* The AO coefficients in the EZFIO files are not normalized +* The AO coefficients and exponents are ordered in increasing order of exponents diff --git a/src/AOs/README.rst b/src/AOs/README.rst index d63605d0..a1fe987b 100644 --- a/src/AOs/README.rst +++ b/src/AOs/README.rst @@ -2,6 +2,37 @@ AOs Module ========== +This module describes the atomic orbitals basis set. + +An atomic orbital :math:`\chi` centered on nucleus A is represented as: + +.. math:: + + \chi_i({\bf r}) = (x-X_A)^a (y-Y_A)^b (z-Z_A)^c \sum_k c_{ki} e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2} + + +The AO coefficients are normalized as: + +.. math:: + + {\tilde c}_{ki} = \frac{c_{ki}}{ \int \left( (x-X_A)^a (y-Y_A)^b (z-Z_A)^c e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2} \right)^2} dr + +Assumptions +=========== + +.. Do not edit this section. It was auto-generated from the +.. ASSUMPTIONS.rst file. + +* The atomic orbitals are normalized: + + .. math:: + + \int \left(\chi_i({\bf r}) \right)^2 dr = 1 + +* The AO coefficients in the EZFIO files are not normalized +* The AO coefficients and exponents are ordered in increasing order of exponents + + Needed Modules ============== diff --git a/src/AOs/aos.irp.f b/src/AOs/aos.irp.f index ae5b67c7..4b3a74c0 100644 --- a/src/AOs/aos.irp.f +++ b/src/AOs/aos.irp.f @@ -20,16 +20,18 @@ END_PROVIDER &BEGIN_PROVIDER [ double precision, ao_expo, (ao_num_align,ao_prim_num_max) ] &BEGIN_PROVIDER [ double precision, ao_coef, (ao_num_align,ao_prim_num_max) ] implicit none + + BEGIN_DOC +! Coefficients, exponents and powers of x,y and z +! ao_coef(i,j) = coefficient of the jth primitive on the ith ao + END_DOC + PROVIDE ezfio_filename + double precision, allocatable :: buffer(:,:) allocate ( buffer(ao_num,ao_prim_num_max) ) integer :: ibuffer(ao_num,3) integer :: i,j,k ibuffer = 0 - BEGIN_DOC -! coefficient of the primitives on the AO basis -! ao_coef(i,j) = coefficient of the jth primitive on the ith ao - END_DOC - PROVIDE ezfio_filename call ezfio_get_ao_basis_ao_power(ibuffer) ao_power = 0 do j = 1, 3