epsilon.h Source File

LibRPA: epsilon.h Source File
LibRPA
epsilon.h
1 #include "chi0.h"
2 #include "ri.h"
3 #include "atoms.h"
4 #include "matrix_m.h"
5 #include "parallel_mpi.h"
6 struct CorrEnergy
7 {
8  enum type { RPA, MP2 };
9  type etype;
10  complex<double> value;
11  map<Vector3_Order<double>, complex<double>> qcontrib;
12 };
13 
14 CorrEnergy compute_RPA_correlation(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat);
15 
16 CorrEnergy compute_RPA_correlation_blacs(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat);
17 CorrEnergy compute_RPA_correlation_blacs_2d( Chi0 &chi0, atpair_k_cplx_mat_t &coulmat);
18 CorrEnergy compute_RPA_correlation_blacs_2d_gamma_only( Chi0 &chi0, atpair_k_cplx_mat_t &coulmat);
19 CorrEnergy compute_MP2_correlation(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat);
20 
21 map<double, map<Vector3_Order<double>, atom_mapping<ComplexMatrix>::pair_t_old>> compute_Pi_q(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat);
22 map<double, map<Vector3_Order<double>, atom_mapping<ComplexMatrix>::pair_t_old>> compute_Pi_q_MPI(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat);
23 atom_mapping<ComplexMatrix>::pair_t_old gather_vq_row_q(const int &I, const atpair_k_cplx_mat_t &coulmat, const Vector3_Order<double> &ik_vec);
24 
25 map<double, atom_mapping<std::map<Vector3_Order<double>, matrix_m<complex<double>>>>::pair_t_old>
26 compute_Wc_freq_q(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat_eps,
27  atpair_k_cplx_mat_t &coulmat_wc,
28  const vector<std::complex<double>> &epsmac_LF_imagfreq);
29 
30 map<double, atom_mapping<std::map<Vector3_Order<double>, matrix_m<complex<double>>>>::pair_t_old>
31 compute_Wc_freq_q_blacs(const Chi0 &chi0, const atpair_k_cplx_mat_t &coulmat_eps,
32  atpair_k_cplx_mat_t &coulmat_wc,
33  const vector<std::complex<double>> &epsilon_mac_imagfreq);
34 
36 map<double, atom_mapping<std::map<Vector3_Order<int>, matrix_m<complex<double>>>>::pair_t_old>
37 FT_Wc_freq_q(
38  const map<double,
39  atom_mapping<std::map<Vector3_Order<double>, matrix_m<complex<double>>>>::pair_t_old>
40  &Wc_freq_q,
41  const TFGrids &tfg, vector<Vector3_Order<int>> Rlist);
42 
43 map<double, atom_mapping<std::map<Vector3_Order<int>, matrix_m<complex<double>>>>::pair_t_old>
44 CT_FT_Wc_freq_q(
45  const map<double,
46  atom_mapping<std::map<Vector3_Order<double>, matrix_m<complex<double>>>>::pair_t_old>
47  &Wc_freq_q,
48  const TFGrids &tfg, vector<Vector3_Order<int>> Rlist);
49 
50 ComplexMatrix compute_Pi_freq_q_row_ri(const Vector3_Order<double> &ik_vec, const atom_mapping<ComplexMatrix>::pair_t_old &chi0_freq_q, const atpair_k_cplx_mat_t &Vq_loc, const int &I, const Vector3_Order<double> &q);
51 ComplexMatrix compute_Pi_freq_q_row(const Vector3_Order<double> &ik_vec, const atom_mapping<ComplexMatrix>::pair_t_old &chi0_freq_q, const atom_mapping<ComplexMatrix>::pair_t_old &Vq_row, const int &I);
52 
53 complex<double> compute_pi_det_blacs(ComplexMatrix &loc_piT, const LIBRPA::Array_Desc& arrdesc_pi, int *ipiv, int &info);
54 
55 complex<double> compute_pi_det_blacs_2d(matrix_m<complex<double>> &loc_piT, const LIBRPA::Array_Desc &arrdesc_pi, int *ipiv, int &info);
56 double compute_pi_det_blacs_2d_gamma_only(matrix_m<double> &loc_piT, const LIBRPA::Array_Desc &arrdesc_pi, int *ipiv, int &info);
57 
58 void test_libcomm_for_system(const atpair_k_cplx_mat_t &coulmat);
Utilies to handle atomic model and related data.
Utlities to compute the independent response function.
Object to handle calculation of independent repsonse function ( )
Definition: chi0.h:18
Definition: complexmatrix.h:20
Definition: parallel_mpi.h:111
Object to handle time/frequency grids for quadrature.
Definition: timefreq.h:21
Definition: vector3_order.h:15
Definition: matrix_m.h:213
Utilies related to resolution of identity.
atom_mapping< map< Vector3_Order< double >, std::shared_ptr< ComplexMatrix > > >::pair_t_old atpair_k_cplx_mat_t
type alias of atom-pair mapping to complex matrix indexed by reciprocal vector
Definition: ri.h:43
Definition: epsilon.h:7
mapping from atom entries to data
Definition: atoms.h:30
map< atom_t, map< atom_t, T > > pair_t_old
mapping between atom pair and data. Nested map, old style
Definition: atoms.h:39