app Namespace Reference

LibRPA: LIBRPA::app Namespace Reference
LibRPA
LIBRPA::app Namespace Reference

Functions

std::vector< double > compute_exx_orbital_energy_ (int i_state_low, int i_state_high, int n_kpoints_task, const int *i_kpoints_task)
 Compute the exact exchange (EXX) energy for states at specified k-points. More...
 
void get_rpa_correlation_energy_ (std::complex< double > &rpa_corr, std::vector< std::complex< double >> &rpa_corr_irk_contrib)
 

Detailed Description

Functions for applications, e.g. RPA correlation, exact-exchange matrix

Function Documentation

◆ compute_exx_orbital_energy_()

std::vector< double > LIBRPA::app::compute_exx_orbital_energy_ ( int  i_state_low,
int  i_state_high,
int  n_kpoints_task,
const int *  i_kpoints_task 
)

Compute the exact exchange (EXX) energy for states at specified k-points.

Parameters
[in]i_state_lowThe lowest index of state (included) to compute
[in]i_state_highThe highest index of state (excluded) to compute
[in]n_kpoints_taskThe number of k-points to return in the called process. When equal to 0, an empty vector will be returned. When less than 0, all k-points will be computed. Otherwise, the states at k-points whose indices are stored in i_kpoints_task will be computed.
[in]i_kpoints_taskThe indices of k-points to compute EXX energy.
Returns
std::vector<double>, exchange energy of states. If i_state_low is no less than i_state_high, or n_kpoints_task is 0, the vector is empty. Otherwise the vector is of size n_spins * n_kpoints_compute * (i_state_high - i_state_low), where n_kpoints_compute equals to total number of k-points if n_kpoints_task < 1, and n_kpoints_task otherwise. The indices runs in the order of states, k-points and spins.
Here is the call graph for this function:
Here is the caller graph for this function: