10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-11-12 17:13:54 +01:00

Documented AOs module

This commit is contained in:
Anthony Scemama 2014-04-10 22:07:04 +02:00
parent 7ed4489fe1
commit b3cac81524
3 changed files with 46 additions and 5 deletions

View File

@ -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

View File

@ -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
==============

View File

@ -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