9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-24 12:33:30 +01:00
qp2/docs/source/modules/density_for_dft.rst
2024-12-04 15:58:59 +01:00

487 lines
11 KiB
ReStructuredText

.. _module_density_for_dft:
.. program:: density_for_dft
.. default-role:: option
===============
density_for_dft
===============
This module defines the *provider* of the density used for the |DFT| related
calculations. This definition is done through the keyword
:option:`density_for_dft density_for_dft`. The density can be:
* `WFT`: the density is computed with a potentially multi determinant wave
function (see variables `psi_det` and `psi_det`)# input_density: the density
is set to a density previously stored in the |EZFIO| directory (see
``aux_quantities``)
* `damping_rs_dft`: the density is damped between the input_density and the WFT
density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
EZFIO parameters
----------------
.. option:: density_for_dft
Type of density used for DFT calculation. If set to WFT , it uses the density of the wave function stored in (psi_det,psi_coef). If set to input_density it uses the one-body dm stored in aux_quantities/ . If set to damping_rs_dft it uses the damped density between WFT and input_density. In the ks_scf and rs_ks_scf programs, it is set to WFT.
Default: WFT
.. option:: damping_for_rs_dft
damping factor for the density used in RSFT.
Default: 0.5
.. option:: no_core_density
If [no_core_density] then all elements of the density matrix involving at least one orbital set as core are set to zero. The default is False in order to take all the density.
Default: False
.. option:: normalize_dm
Type of density. If .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb
Default: True
Providers
---------
.. c:var:: one_body_dm_mo_alpha_one_det
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_body_dm_mo_alpha_one_det (mo_num,mo_num,N_states)
double precision, allocatable :: one_body_dm_mo_beta_one_det (mo_num,mo_num,N_states)
One body density matrix on the |MO| basis for a single determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_num`
* :c:data:`n_states`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: one_body_dm_mo_beta_one_det
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_body_dm_mo_alpha_one_det (mo_num,mo_num,N_states)
double precision, allocatable :: one_body_dm_mo_beta_one_det (mo_num,mo_num,N_states)
One body density matrix on the |MO| basis for a single determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_num`
* :c:data:`n_states`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: one_e_dm_alpha_ao_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`density_for_dft`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: one_e_dm_alpha_ao_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft_no_core (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft_no_core (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft_no_core
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
.. c:var:: one_e_dm_average_alpha_mo_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_average_alpha_mo_for_dft (mo_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`state_average_weight`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_average_mo_for_dft`
.. c:var:: one_e_dm_average_beta_mo_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_average_beta_mo_for_dft (mo_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`state_average_weight`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_average_mo_for_dft`
.. c:var:: one_e_dm_average_mo_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_average_mo_for_dft (mo_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
* :c:data:`one_e_dm_average_beta_mo_for_dft`
.. c:var:: one_e_dm_beta_ao_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`density_for_dft`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: one_e_dm_beta_ao_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft_no_core (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft_no_core (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft_no_core
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
.. c:var:: one_e_dm_mo_alpha_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha_for_dft (mo_num,mo_num,N_states)
density matrix for alpha electrons in the MO basis used for all DFT calculations based on the density
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`damping_for_rs_dft`
* :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`density_for_dft`
* :c:data:`elec_alpha_num`
* :c:data:`list_core`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`no_core_density`
* :c:data:`normalize_dm`
* :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`one_e_dm_mo_alpha_average`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_for_dft`
.. c:var:: one_e_dm_mo_alpha_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha_for_dft_no_core (mo_num,mo_num,N_states)
density matrix for alpha electrons in the MO basis without the core orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`list_core`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_dm_mo_beta_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_beta_for_dft (mo_num,mo_num,N_states)
density matrix for beta electrons in the MO basis used for all DFT calculations based on the density
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`damping_for_rs_dft`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`density_for_dft`
* :c:data:`elec_beta_num`
* :c:data:`list_core`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`no_core_density`
* :c:data:`normalize_dm`
* :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`one_e_dm_mo_alpha_average`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_average_beta_mo_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
* :c:data:`one_e_dm_mo_for_dft`
.. c:var:: one_e_dm_mo_beta_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_beta_for_dft_no_core (mo_num,mo_num,N_states)
density matrix for beta electrons in the MO basis without the core orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`list_core`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_beta_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_dm_mo_for_dft
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_for_dft (mo_num,mo_num,N_states)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`