dft_one_e
This module defines the most important providers needed for the DFT and RSDFT calculations:
energy_x
andenergy_c
: the exchange and correlation energy functionals (seee_xc_general.irp.f
)potential_x_alpha_ao
andpotential_x_beta_ao
: the exchange potential for alpha/beta electrons (seepot_general.irp.f
)potential_c_alpha_ao
andpotential_c_beta_ao
: the correlation potential for alpha/beta electrons (seepot_general.irp.f
)
These providers are then used in the ks_scf and rs_ks_scf programs, together within some RSDFT external plugins (see https://gitlab.com/eginer/qp_plugins_eginer).
The flexibility of the functionals is handle by the two following keywords (see dft_keywords):
dft_keywords exchange_functional
: defines which exchange functionals will be setdft_keywords correlation_functional
: defines which correlation functionals will be set
In the core modules of the Quantum Package, two functionals are implemented:
“LDA” or “short_range_LDA” for, respectively the LDA and its short-range version
“PBE” or “short_range_PBE” for, respectively the PBE and its short-range version
Providers
- energy_c
File :
dft_one_e/e_xc_general.irp.f
double precision, allocatable :: energy_c (N_states)
correlation and exchange energies general providers.
Needs:
correlation_functional
energy_c_lda
energy_c_none
energy_c_pbe
energy_c_sr_lda
energy_x_sr_pbe
n_states
Needed by:
e_correlation_dft
- energy_x
File :
dft_one_e/e_xc_general.irp.f
double precision, allocatable :: energy_x (N_states)
correlation energies general providers.
Needs:
energy_x_lda
energy_x_none
energy_x_pbe
energy_x_sr_lda
energy_x_sr_pbe
exchange_functional
n_states
Needed by:
e_exchange_dft
- potential_c_alpha_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_c_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_c_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta correlation potentials on the AO basis
Needs:
ao_num
correlation_functional
n_states
potential_c_alpha_ao_lda
potential_c_alpha_ao_none
potential_c_alpha_ao_sr_lda
potential_c_beta_ao_none
potential_x_alpha_ao_pbe
potential_x_alpha_ao_sr_pbe
Needed by:
ao_potential_alpha_xc
potential_c_alpha_mo
- potential_c_alpha_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_c_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_c_beta_mo (mo_num,mo_num,N_states)
general providers for the alpha/beta correlation potentials on the MO basis
Needs:
ao_num
mo_coef
mo_num
n_states
potential_c_alpha_ao
Needed by:
effective_one_e_potential
trace_v_xc
- potential_c_beta_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_c_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_c_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta correlation potentials on the AO basis
Needs:
ao_num
correlation_functional
n_states
potential_c_alpha_ao_lda
potential_c_alpha_ao_none
potential_c_alpha_ao_sr_lda
potential_c_beta_ao_none
potential_x_alpha_ao_pbe
potential_x_alpha_ao_sr_pbe
Needed by:
ao_potential_alpha_xc
potential_c_alpha_mo
- potential_c_beta_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_c_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_c_beta_mo (mo_num,mo_num,N_states)
general providers for the alpha/beta correlation potentials on the MO basis
Needs:
ao_num
mo_coef
mo_num
n_states
potential_c_alpha_ao
Needed by:
effective_one_e_potential
trace_v_xc
- potential_x_alpha_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_x_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_x_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta exchange potentials on the AO basis
Needs:
ao_num
exchange_functional
n_states
potential_x_alpha_ao_lda
potential_x_alpha_ao_none
potential_x_alpha_ao_pbe
potential_x_alpha_ao_sr_lda
potential_x_alpha_ao_sr_pbe
potential_x_beta_ao_none
Needed by:
ao_potential_alpha_xc
potential_x_alpha_mo
- potential_x_alpha_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_x_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_x_beta_mo (mo_num,mo_num,N_states)
general providers for the alpha/beta exchange potentials on the MO basis
Needs:
ao_num
mo_coef
mo_num
n_states
potential_x_alpha_ao
Needed by:
effective_one_e_potential
trace_v_xc
- potential_x_beta_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_x_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_x_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta exchange potentials on the AO basis
Needs:
ao_num
exchange_functional
n_states
potential_x_alpha_ao_lda
potential_x_alpha_ao_none
potential_x_alpha_ao_pbe
potential_x_alpha_ao_sr_lda
potential_x_alpha_ao_sr_pbe
potential_x_beta_ao_none
Needed by:
ao_potential_alpha_xc
potential_x_alpha_mo
- potential_x_beta_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_x_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_x_beta_mo (mo_num,mo_num,N_states)
general providers for the alpha/beta exchange potentials on the MO basis
Needs:
ao_num
mo_coef
mo_num
n_states
potential_x_alpha_ao
Needed by:
effective_one_e_potential
trace_v_xc
- potential_xc_alpha_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_xc_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_xc_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta exchange/correlation potentials on the AO basis
Needs:
ao_num
exchange_functional
n_states
potential_xc_alpha_ao_lda
potential_xc_alpha_ao_none
potential_xc_alpha_ao_pbe
potential_xc_alpha_ao_sr_lda
potential_xc_alpha_ao_sr_pbe
potential_xc_beta_ao_none
Needed by:
ao_potential_alpha_xc
potential_xc_alpha_mo
- potential_xc_alpha_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_xc_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_xc_beta_mo (mo_num,mo_num,N_states)
Needs:
ao_num
mo_coef
mo_num
n_states
potential_xc_alpha_ao
Needed by:
trace_v_xc_new
- potential_xc_beta_ao
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_xc_alpha_ao (ao_num,ao_num,N_states) double precision, allocatable :: potential_xc_beta_ao (ao_num,ao_num,N_states)
general providers for the alpha/beta exchange/correlation potentials on the AO basis
Needs:
ao_num
exchange_functional
n_states
potential_xc_alpha_ao_lda
potential_xc_alpha_ao_none
potential_xc_alpha_ao_pbe
potential_xc_alpha_ao_sr_lda
potential_xc_alpha_ao_sr_pbe
potential_xc_beta_ao_none
Needed by:
ao_potential_alpha_xc
potential_xc_alpha_mo
- potential_xc_beta_mo
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: potential_xc_alpha_mo (mo_num,mo_num,N_states) double precision, allocatable :: potential_xc_beta_mo (mo_num,mo_num,N_states)
Needs:
ao_num
mo_coef
mo_num
n_states
potential_xc_alpha_ao
Needed by:
trace_v_xc_new
- trace_v_h
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: trace_v_xc (N_states) double precision, allocatable :: trace_v_h (N_states) double precision, allocatable :: trace_v_hxc (N_states)
Trace_v_xc = sum_{i,j} (rho_{ij}_alpha v^{xc}_{ij}^alpha + rho_{ij}_beta v^{xc}_{ij}^beta) Trace_v_Hxc = sum_{i,j} v^{H}_{ij} (rho_{ij}_alpha + rho_{ij}_beta) Trace_v_Hxc = sum_{i,j} rho_{ij} v^{Hxc}_{ij}
Needs:
mo_num
n_states
one_e_dm_mo_alpha_for_dft
one_e_dm_mo_beta_for_dft
potential_c_alpha_mo
potential_x_alpha_mo
short_range_hartree_operator
- trace_v_hxc
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: trace_v_xc (N_states) double precision, allocatable :: trace_v_h (N_states) double precision, allocatable :: trace_v_hxc (N_states)
Trace_v_xc = sum_{i,j} (rho_{ij}_alpha v^{xc}_{ij}^alpha + rho_{ij}_beta v^{xc}_{ij}^beta) Trace_v_Hxc = sum_{i,j} v^{H}_{ij} (rho_{ij}_alpha + rho_{ij}_beta) Trace_v_Hxc = sum_{i,j} rho_{ij} v^{Hxc}_{ij}
Needs:
mo_num
n_states
one_e_dm_mo_alpha_for_dft
one_e_dm_mo_beta_for_dft
potential_c_alpha_mo
potential_x_alpha_mo
short_range_hartree_operator
- trace_v_xc
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: trace_v_xc (N_states) double precision, allocatable :: trace_v_h (N_states) double precision, allocatable :: trace_v_hxc (N_states)
Trace_v_xc = sum_{i,j} (rho_{ij}_alpha v^{xc}_{ij}^alpha + rho_{ij}_beta v^{xc}_{ij}^beta) Trace_v_Hxc = sum_{i,j} v^{H}_{ij} (rho_{ij}_alpha + rho_{ij}_beta) Trace_v_Hxc = sum_{i,j} rho_{ij} v^{Hxc}_{ij}
Needs:
mo_num
n_states
one_e_dm_mo_alpha_for_dft
one_e_dm_mo_beta_for_dft
potential_c_alpha_mo
potential_x_alpha_mo
short_range_hartree_operator
- trace_v_xc_new
File :
dft_one_e/pot_general.irp.f
double precision, allocatable :: trace_v_xc_new (N_states)
Trace_v_xc = sum_{i,j} (rho_{ij}_alpha v^{xc}_{ij}^alpha + rho_{ij}_beta v^{xc}_{ij}^beta)
Needs:
mo_num
n_states
one_e_dm_mo_alpha_for_dft
one_e_dm_mo_beta_for_dft
potential_xc_alpha_mo