gw.h Source File

LibRPA: gw.h Source File
LibRPA
gw.h
1 /*
2  * @file gw.h
3  * @brief facilities to calculate self-energy operator.
4  */
5 #pragma once
6 #include "ri.h"
7 #include "timefreq.h"
8 #include "meanfield.h"
9 #include "atoms.h"
10 #include "matrix_m.h"
11 
12 namespace LIBRPA
13 {
14 
15 class G0W0
16 {
17 private:
18  bool d_sigc_built;
19 public:
20  const MeanField &mf;
21  const vector<Vector3_Order<double>>& kfrac_list;
22  const TFGrids &tfg;
24  std::map<int, std::map<double, std::map<Vector3_Order<double>, atom_mapping<Matz>::pair_t_old>>> sigc_is_f_k_IJ;
26  std::map<int, std::map<int, std::map<double, Matz>>> sigc_is_ik_f_KS;
27 public:
28  G0W0(const MeanField &mf,
29  const vector<Vector3_Order<double>>& kfrac_list,
30  const TFGrids &tfg);
31  // delete copy/move constructors
32  G0W0(const G0W0 &s_g0w0) = delete;
33  G0W0(G0W0 &&s_g0w0) = delete;
34 
35  // delete assignment copy/move
36  G0W0 operator=(const G0W0 &s_g0w0) const = delete;
37  G0W0 operator=(G0W0 &&s_g0w0) = delete;
38 
40  // void build_spacetime(
41  // const atpair_R_mat_t &LRI_Cs,
42  // const map<double, atom_mapping<std::map<Vector3_Order<double>,
43  // matrix_m<complex<double>>>>::pair_t_old> &Wc_freq_q,
44  // const vector<Vector3_Order<int>> &Rlist,
45  // const Vector3_Order<int> &R_period);
46 
49  const Cs_LRI &LRI_Cs,
50  const map<double, atom_mapping<std::map<Vector3_Order<double>,
51  matrix_m<complex<double>>>>::pair_t_old> &Wc_freq_q,
52  const vector<Vector3_Order<int>> &Rlist,
53  const Vector3_Order<int> &R_period);
54 
56  void build_sigc_matrix_KS();
57 };
58 
59 }
Utilies to handle atomic model and related data.
Definition: gw.h:16
std::map< int, std::map< int, std::map< double, Matz > > > sigc_is_ik_f_KS
correlation self-energy matrix in the basis of KS states, indices [ispin][ik][freq](n_bands,...
Definition: gw.h:26
void build_sigc_matrix_KS()
build the correlation self-energy matrix in Kohn-Sham basis
Definition: gw.cpp:248
void build_spacetime_LibRI(const Cs_LRI &LRI_Cs, const map< double, atom_mapping< std::map< Vector3_Order< double >, matrix_m< complex< double >>>>::pair_t_old > &Wc_freq_q, const vector< Vector3_Order< int >> &Rlist, const Vector3_Order< int > &R_period)
using native tensor contraction
Definition: gw.cpp:31
std::map< int, std::map< double, std::map< Vector3_Order< double >, atom_mapping< Matz >::pair_t_old > > > sigc_is_f_k_IJ
frequency-domain reciprocal-space correlation self-energy, indices [ispin][freq][k][I][J](n_I,...
Definition: gw.h:24
Object of the meanfield input of Green's function.
Definition: meanfield.h:20
Object to handle time/frequency grids for quadrature.
Definition: timefreq.h:21
Definition: vector3_order.h:15
Definition: matrix_m.h:213
Utilities to handle the mean-field starting point for many-body calculation.
Definition: analycont.cpp:14
Utilies related to resolution of identity.
Definition: ri.h:46
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
Utilities related to quadrature on time/frequency domain.