dft_one_e

This module defines the most important providers needed for the DFT and RSDFT calculations:

  • energy_x and energy_c : the exchange and correlation energy functionals (see e_xc_general.irp.f)

  • potential_x_alpha_ao and potential_x_beta_ao : the exchange potential for alpha/beta electrons (see pot_general.irp.f)

  • potential_c_alpha_ao and potential_c_beta_ao : the correlation potential for alpha/beta electrons (see pot_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):

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

ao_effective_one_e_potential

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable   :: ao_effective_one_e_potential_without_kin     (ao_num,ao_num,N_states)

Effective_one_e_potential(i,j) = \(\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle\)

on the MO basis

Taking the expectation value does not provide any energy, but

ao_effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts

and it is used in any RS-DFT based calculations

Needs:

  • ao_num

  • effective_one_e_potential

  • mo_num

  • n_states

  • s_mo_coef

Needed by:

  • ao_effective_one_e_potential_sa

ao_effective_one_e_potential_sa

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: ao_effective_one_e_potential_sa      (ao_num,ao_num)
double precision, allocatable   :: ao_effective_one_e_potential_without_kin_sa  (ao_num,ao_num)

State-averaged potential in AO basis

Needs:

  • ao_effective_one_e_potential

  • ao_num

  • n_states

  • state_average_weight

ao_effective_one_e_potential_without_kin

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable   :: ao_effective_one_e_potential_without_kin     (ao_num,ao_num,N_states)

Effective_one_e_potential(i,j) = \(\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle\)

on the MO basis

Taking the expectation value does not provide any energy, but

ao_effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts

and it is used in any RS-DFT based calculations

Needs:

  • ao_num

  • effective_one_e_potential

  • mo_num

  • n_states

  • s_mo_coef

Needed by:

  • ao_effective_one_e_potential_sa

ao_effective_one_e_potential_without_kin_sa

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: ao_effective_one_e_potential_sa      (ao_num,ao_num)
double precision, allocatable   :: ao_effective_one_e_potential_without_kin_sa  (ao_num,ao_num)

State-averaged potential in AO basis

Needs:

  • ao_effective_one_e_potential

  • ao_num

  • n_states

  • state_average_weight

effective_one_e_potential

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: effective_one_e_potential    (mo_num,mo_num,N_states)
double precision, allocatable   :: effective_one_e_potential_without_kin        (mo_num,mo_num,N_states)

Effective_one_e_potential(i,j) = \(\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle\)

on the MO basis

Taking the expectation value does not provide any energy, but

effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts

and it is used in any RS-DFT based calculations

Needs:

  • mo_integrals_n_e

  • mo_kinetic_integrals

  • mo_num

  • n_states

  • potential_c_alpha_mo

  • potential_x_alpha_mo

  • short_range_hartree_operator

Needed by:

  • ao_effective_one_e_potential

  • effective_one_e_potential_sa

effective_one_e_potential_sa

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: effective_one_e_potential_sa (mo_num,mo_num)
double precision, allocatable   :: effective_one_e_potential_without_kin_sa     (mo_num,mo_num)

State-averaged potential in MO basis

Needs:

  • effective_one_e_potential

  • mo_num

  • n_states

  • state_average_weight

effective_one_e_potential_without_kin

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: effective_one_e_potential    (mo_num,mo_num,N_states)
double precision, allocatable   :: effective_one_e_potential_without_kin        (mo_num,mo_num,N_states)

Effective_one_e_potential(i,j) = \(\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle\)

on the MO basis

Taking the expectation value does not provide any energy, but

effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts

and it is used in any RS-DFT based calculations

Needs:

  • mo_integrals_n_e

  • mo_kinetic_integrals

  • mo_num

  • n_states

  • potential_c_alpha_mo

  • potential_x_alpha_mo

  • short_range_hartree_operator

Needed by:

  • ao_effective_one_e_potential

  • effective_one_e_potential_sa

effective_one_e_potential_without_kin_sa

File : dft_one_e/effective_pot.irp.f

double precision, allocatable   :: effective_one_e_potential_sa (mo_num,mo_num)
double precision, allocatable   :: effective_one_e_potential_without_kin_sa     (mo_num,mo_num)

State-averaged potential in MO basis

Needs:

  • effective_one_e_potential

  • mo_num

  • n_states

  • state_average_weight

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_sr_lda

  • energy_x_pbe

  • 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

  • hf_exchange

  • n_states

Needed by:

  • e_exchange_dft

mu_erf_dft

File : dft_one_e/mu_erf_dft.irp.f

double precision        :: mu_erf_dft

range separation parameter used in RS-DFT.

It is set to mu_erf in order to be consistent with the module “hamiltonian”

Needs:

  • mu_erf

Needed by:

  • mu_of_r_dft

mu_grad_rho

File : dft_one_e/mu_erf_dft.irp.f

double precision, allocatable   :: mu_grad_rho  (n_points_final_grid)

Needs:

  • final_grid_points

  • mu_erf

  • n_points_final_grid

Needed by:

  • mu_of_r_dft

mu_of_r_dft

File : dft_one_e/mu_erf_dft.irp.f

double precision, allocatable   :: mu_of_r_dft  (n_points_final_grid)

Needs:

  • mu_dft_type

  • mu_erf_dft

  • mu_grad_rho

  • mu_of_r_hf

  • mu_rsc_of_r

  • n_points_final_grid

Needed by:

  • aos_sr_vc_alpha_lda_w

  • aos_sr_vxc_alpha_lda_w

  • aos_vc_alpha_sr_pbe_w

  • aos_vxc_alpha_sr_pbe_w

  • energy_c_sr_lda

  • energy_x_sr_lda

  • energy_x_sr_pbe

  • mu_of_r_dft_average

mu_of_r_dft_average

File : dft_one_e/mu_erf_dft.irp.f

double precision        :: mu_of_r_dft_average

Needs:

  • ao_num

  • elec_alpha_num

  • elec_beta_num

  • final_grid_points

  • mu_of_r_dft

  • n_points_final_grid

  • n_states

  • one_e_dm_alpha_ao_for_dft

mu_rsc_of_r

File : dft_one_e/mu_erf_dft.irp.f

double precision, allocatable   :: mu_rsc_of_r  (n_points_final_grid)

Needs:

  • ao_num

  • final_grid_points

  • n_points_final_grid

  • n_states

  • one_e_dm_alpha_ao_for_dft

Needed by:

  • mu_of_r_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

  • hf_exchange

  • 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

  • hf_exchange

  • 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

psi_dft_energy_h_core

File : dft_one_e/one_e_energy_dft.irp.f

double precision, allocatable   :: psi_dft_energy_kinetic       (N_states)
double precision, allocatable   :: psi_dft_energy_nuclear_elec  (N_states)
double precision, allocatable   :: psi_dft_energy_h_core        (N_states)

kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft

Needs:

  • elec_alpha_num

  • elec_beta_num

  • mo_integrals_n_e

  • mo_kinetic_integrals

  • mo_num

  • n_states

  • one_e_dm_mo_alpha_for_dft

  • one_e_dm_mo_beta_for_dft

psi_dft_energy_kinetic

File : dft_one_e/one_e_energy_dft.irp.f

double precision, allocatable   :: psi_dft_energy_kinetic       (N_states)
double precision, allocatable   :: psi_dft_energy_nuclear_elec  (N_states)
double precision, allocatable   :: psi_dft_energy_h_core        (N_states)

kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft

Needs:

  • elec_alpha_num

  • elec_beta_num

  • mo_integrals_n_e

  • mo_kinetic_integrals

  • mo_num

  • n_states

  • one_e_dm_mo_alpha_for_dft

  • one_e_dm_mo_beta_for_dft

psi_dft_energy_nuclear_elec

File : dft_one_e/one_e_energy_dft.irp.f

double precision, allocatable   :: psi_dft_energy_kinetic       (N_states)
double precision, allocatable   :: psi_dft_energy_nuclear_elec  (N_states)
double precision, allocatable   :: psi_dft_energy_h_core        (N_states)

kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft

Needs:

  • elec_alpha_num

  • elec_beta_num

  • mo_integrals_n_e

  • mo_kinetic_integrals

  • mo_num

  • n_states

  • one_e_dm_mo_alpha_for_dft

  • one_e_dm_mo_beta_for_dft

regular_range_hartree

File : dft_one_e/sr_coulomb.irp.f

double precision, allocatable   :: regular_range_hartree_operator       (mo_num,mo_num,N_states)
double precision, allocatable   :: regular_range_hartree        (N_states)

regular_range_Hartree_operator(i,j) = \(\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}\)

regular_range_Hartree = \(1/2 \sum_{i,j} \rho_{ij} \mathtt{regular_range_Hartree_operator}(i,j)\)

= \(1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}\)

Needs:

  • cholesky_mo_num

  • cholesky_mo_transp

  • do_mo_cholesky

  • mo_integrals_cache_min

  • mo_integrals_map

  • mo_num

  • mo_two_e_integrals_in_map

  • n_states

  • one_e_dm_average_mo_for_dft

  • one_e_dm_mo_for_dft

regular_range_hartree_operator

File : dft_one_e/sr_coulomb.irp.f

double precision, allocatable   :: regular_range_hartree_operator       (mo_num,mo_num,N_states)
double precision, allocatable   :: regular_range_hartree        (N_states)

regular_range_Hartree_operator(i,j) = \(\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}\)

regular_range_Hartree = \(1/2 \sum_{i,j} \rho_{ij} \mathtt{regular_range_Hartree_operator}(i,j)\)

= \(1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}\)

Needs:

  • cholesky_mo_num

  • cholesky_mo_transp

  • do_mo_cholesky

  • mo_integrals_cache_min

  • mo_integrals_map

  • mo_num

  • mo_two_e_integrals_in_map

  • n_states

  • one_e_dm_average_mo_for_dft

  • one_e_dm_mo_for_dft

short_range_hartree

File : dft_one_e/sr_coulomb.irp.f

double precision, allocatable   :: short_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable   :: short_range_hartree  (N_states)

short_range_Hartree_operator(i,j) = \(\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}\)

short_range_Hartree = \(1/2 \sum_{i,j} \rho_{ij} \mathtt{short_range_Hartree_operator}(i,j)\)

= \(1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}\)

Needs:

  • cholesky_mo_num

  • cholesky_mo_transp

  • do_mo_cholesky

  • mo_integrals_cache_min

  • mo_integrals_erf_map

  • mo_integrals_map

  • mo_num

  • mo_two_e_integrals_erf_in_map

  • mo_two_e_integrals_in_map

  • n_states

  • one_e_dm_average_mo_for_dft

  • one_e_dm_mo_for_dft

Needed by:

  • effective_one_e_potential

  • trace_v_xc

short_range_hartree_operator

File : dft_one_e/sr_coulomb.irp.f

double precision, allocatable   :: short_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable   :: short_range_hartree  (N_states)

short_range_Hartree_operator(i,j) = \(\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}\)

short_range_Hartree = \(1/2 \sum_{i,j} \rho_{ij} \mathtt{short_range_Hartree_operator}(i,j)\)

= \(1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}\)

Needs:

  • cholesky_mo_num

  • cholesky_mo_transp

  • do_mo_cholesky

  • mo_integrals_cache_min

  • mo_integrals_erf_map

  • mo_integrals_map

  • mo_num

  • mo_two_e_integrals_erf_in_map

  • mo_two_e_integrals_in_map

  • n_states

  • one_e_dm_average_mo_for_dft

  • one_e_dm_mo_for_dft

Needed by:

  • effective_one_e_potential

  • trace_v_xc

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