QNANO
Coulomb_Matrix_Elements_Calculator.h
1 #ifndef QNANO_NEW_COULOMB_MATRIX_ELEMENT_CALCULATOR_DEFINED_H
2 #define QNANO_NEW_COULOMB_MATRIX_ELEMENT_CALCULATOR_DEFINED_H
3 
4 #include "tools/Static_Const_Member.h"
5 #include "eigen/include_Eigen.h"
6 #include "MPI/Distribute_EV.h"
7 #include "manybody/Coulomb_Matrix_Elements.h"
8 #include "coulomb/Coulomb_Onsite_Storage_List.h"
9 #include "tools/QNANO_Constants.h"
10 
12 public:
13 
14  Coulomb_Matrix_Elements mat_elem;
15 
45  void add_longrange(const Atom_List & atlist, \
46  const Distribute_EV_List &EV_e, \
47  const Distribute_EV_List &EV_h, \
48  int nr_e, int nr_h, \
49  double epsilon, int nrblocks, int verbosity=1);
50 
51 
52  void add_onsite(const Atom_List & atlist, \
53  const Coulomb_Onsite_Storage_List &onsite_storage_list, \
54  const Distribute_EV_List &EV_e, \
55  const Distribute_EV_List &EV_h, \
56  int nr_e, int nr_h, \
57  double epsilon, int verbosity=1);
58 
59 
61  void MPI_Reduce_to_Node0();
62 
63 
65  Coulomb_Matrix_Elements_Calculator(Coulomb_Matrix_Elements::Type type, int nr_e, int nr_h) : mat_elem(type, nr_e, nr_h){
66  }
67 
68 };
69 
70 
71 #endif
void MPI_Reduce_to_Node0()
Add parts calculated on different nodes and move them to node 0.
Definition: Coulomb_Matrix_Elements_Calculator.cc:268
Type
type: is it a direct, exchange, electron-electron or hole-hole matrix element?
Definition: Coulomb_Matrix_Elements.h:16
Definition: Atom_List.h:9
Definition: Coulomb_Matrix_Elements.h:13
Definition: Coulomb_Onsite_Storage_List.h:8
void add_longrange(const Atom_List &atlist, const Distribute_EV_List &EV_e, const Distribute_EV_List &EV_h, int nr_e, int nr_h, double epsilon, int nrblocks, int verbosity=1)
Definition: Coulomb_Matrix_Elements_Calculator.cc:4
Definition: Coulomb_Matrix_Elements_Calculator.h:11
Definition: Distribute_EV.h:19