|
QNANO
|
#include <Coulomb_Matrix_Elements.h>


Public Types | |
| enum | Type { none, direct, exchange, ee, hh } |
| type: is it a direct, exchange, electron-electron or hole-hole matrix element? | |
Public Member Functions | |
| void | resize (int nr_e, int nr_h) |
| void | resize (const Manybody_Hilbert_Space &HS) |
| void | setup (Type type_, const Manybody_Hilbert_Space &HS, const std::string &filename="") |
| void | check_size_consistency () const |
| check if sizes are consistend with the type of the matrix element | |
| void | check_Hermitian (double accuracy=1e-6) const |
| check if Hermitian | |
| void | check_consistency (double accuracy=1e-6) const |
| check overall consistency | |
| bool | is_hole (size_t i) const |
| does an index correspond to a hole (true) or to an electron(false) | |
| void | read (const std::string &filename, bool read_size_from_file=false) |
| reader+printer: | |
| void | read_noheader (std::ifstream &ifs, const std::string &filename_for_error="") |
| void | print (const std::string &filename, int round_figure=8) const |
| void | apply_trafo (const QNANO_Matrix &trafo_e, const QNANO_Matrix &trafo_h) |
| apply unitary transformation for electron and hole states | |
| void | make_Hermitian () |
| used if only upper diagonal is specified in file | |
| void | copy_noresize (const Coulomb_Matrix_Elements &other) |
| void | copy (const Coulomb_Matrix_Elements &other) |
| Coulomb_Matrix_Elements & | operator= (const Coulomb_Matrix_Elements &other) |
| Coulomb_Matrix_Elements (const Coulomb_Matrix_Elements &other) | |
| Coulomb_Matrix_Elements (Type type_=none) | |
| Coulomb_Matrix_Elements (Type type_, size_t i, size_t j, size_t k, size_t l) | |
| Coulomb_Matrix_Elements (Type type_, int nr_e, int nr_h) | |
| Coulomb_Matrix_Elements (Type type_, const Manybody_Hilbert_Space &HS, const std::string &filename="") | |
| Coulomb_Matrix_Elements (Type type_, const std::string &filename) | |
Public Member Functions inherited from Tensor4 | |
| size_t | get_index (size_t i, size_t j, size_t k, size_t l) const |
| size_t | get_totalsize () const |
| size_t | get_size (size_t i) const |
| void | resize (size_t i, size_t j, size_t k, size_t l) |
| void | set_zero () |
| const std::complex< double > & | operator() (size_t i, size_t j, size_t k, size_t l) const |
| std::complex< double > & | operator() (size_t i, size_t j, size_t k, size_t l) |
| const std::complex< double > & | get_check (int i, int j, int k, int l) |
| void | copy (const Tensor4 &other) |
| Tensor4 & | operator= (const Tensor4 &other) |
| Tensor4 (const Tensor4 &other) | |
| Tensor4 (size_t i, size_t j, size_t k, size_t l) | |
Static Public Member Functions | |
| static std::string | get_type_string (enum Type type_) |
Public Attributes | |
| enum Coulomb_Matrix_Elements::Type | type |
Public Attributes inherited from Tensor4 | |
| size_t | size [4] |
| std::complex< double > * | data |
Additional Inherited Members | |
Protected Member Functions inherited from Tensor4 | |
| void | allocate () |
| void | deallocate () |
Class to store Coulomb matrix elements. Practically the same as a Tensor4, but knows about the QNANO format for Coulomb matrix element files
1.8.11