mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-25 05:51:46 +02:00
Documented MOs
This commit is contained in:
parent
fa9984c495
commit
65cef0f6e6
@ -7,7 +7,7 @@ the constants that will be used to define on which kind of integer the bitmasks
|
|||||||
will be defined.
|
will be defined.
|
||||||
|
|
||||||
In the program, when an integer ``X`` is used to represent a bit string (like a determinant
|
In the program, when an integer ``X`` is used to represent a bit string (like a determinant
|
||||||
for example), it should be defined as, for example::
|
for example), it should be defined as, for example:
|
||||||
|
|
||||||
.. code-block:: fortran
|
.. code-block:: fortran
|
||||||
|
|
||||||
|
@ -2,6 +2,19 @@
|
|||||||
MOs Module
|
MOs Module
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
Molecular orbitals are expressed as
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
\phi_k({\bf r}) = \sum_i C_{ik} \chi_k({\bf r})
|
||||||
|
|
||||||
|
The current set of molecular orbitals has a label ``mo_label``.
|
||||||
|
When the orbitals are modified, the label should also be updated to keep
|
||||||
|
everything consistent.
|
||||||
|
|
||||||
|
When saving the MOs, the ``mo_basis`` directory of the EZFIO file is copied
|
||||||
|
in the ``save`` directory, named by the current ``mo_label``.
|
||||||
|
|
||||||
Needed Modules
|
Needed Modules
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
mo_basis
|
mo_basis
|
||||||
mo_tot_num integer
|
mo_tot_num integer
|
||||||
mo_coef double precision (ao_basis_ao_num,mo_basis_mo_tot_num)
|
mo_coef double precision (ao_basis_ao_num,mo_basis_mo_tot_num)
|
||||||
mo_energy double precision (mo_basis_mo_tot_num)
|
|
||||||
mo_occ double precision (mo_basis_mo_tot_num)
|
|
||||||
mo_symmetry character*(8) (mo_basis_mo_tot_num)
|
|
||||||
mo_label character*(64)
|
mo_label character*(64)
|
||||||
|
|
||||||
|
@ -19,13 +19,21 @@ BEGIN_PROVIDER [ integer, mo_tot_num_align ]
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ character*(64), mo_label ]
|
BEGIN_PROVIDER [ double precision, mo_coef, (ao_num_align,mo_tot_num) ]
|
||||||
|
&BEGIN_PROVIDER [ character*(64), mo_label ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Label characterizing the MOS (local, canonical, natural, etc)
|
! Molecular orbital coefficients on AO basis set
|
||||||
|
! mo_coef(i,j) = coefficient of the ith ao on the jth mo
|
||||||
|
! mo_label : Label characterizing the MOS (local, canonical, natural, etc)
|
||||||
END_DOC
|
END_DOC
|
||||||
|
integer :: i, j
|
||||||
|
double precision, allocatable :: buffer(:,:)
|
||||||
|
!DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: buffer
|
||||||
logical :: exists
|
logical :: exists
|
||||||
PROVIDE ezfio_filename
|
PROVIDE ezfio_filename
|
||||||
|
|
||||||
|
!Label
|
||||||
call ezfio_has_mo_basis_mo_label(exists)
|
call ezfio_has_mo_basis_mo_label(exists)
|
||||||
if (exists) then
|
if (exists) then
|
||||||
call ezfio_get_mo_basis_mo_label(mo_label)
|
call ezfio_get_mo_basis_mo_label(mo_label)
|
||||||
@ -34,31 +42,7 @@ BEGIN_PROVIDER [ character*(64), mo_label ]
|
|||||||
call ezfio_set_mo_basis_mo_label(mo_label)
|
call ezfio_set_mo_basis_mo_label(mo_label)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
! Coefs
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, mo_energy, (mo_tot_num) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Fock diagonal elements
|
|
||||||
END_DOC
|
|
||||||
PROVIDE ezfio_filename
|
|
||||||
mo_energy = 0.d0
|
|
||||||
call ezfio_get_mo_basis_mo_energy(mo_energy)
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, mo_coef, (ao_num_align,mo_tot_num) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Molecular orbital coefficients on AO basis set
|
|
||||||
! mo_coef(i,j) = coefficient of the ith ao on the jth mo
|
|
||||||
END_DOC
|
|
||||||
integer :: i, j
|
|
||||||
double precision, allocatable :: buffer(:,:)
|
|
||||||
!DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: buffer
|
|
||||||
|
|
||||||
PROVIDE ezfio_filename
|
|
||||||
allocate(buffer(ao_num,mo_tot_num))
|
allocate(buffer(ao_num,mo_tot_num))
|
||||||
buffer = 0.d0
|
buffer = 0.d0
|
||||||
call ezfio_get_mo_basis_mo_coef(buffer)
|
call ezfio_get_mo_basis_mo_coef(buffer)
|
||||||
|
Loading…
Reference in New Issue
Block a user