.. _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`