QNANO
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Coulomb_Matrix_Elements Class Reference

#include <Coulomb_Matrix_Elements.h>

Inheritance diagram for Coulomb_Matrix_Elements:
Inheritance graph
[legend]
Collaboration diagram for Coulomb_Matrix_Elements:
Collaboration graph
[legend]

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_Elementsoperator= (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)
 
Tensor4operator= (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 ()
 

Detailed Description

Class to store Coulomb matrix elements. Practically the same as a Tensor4, but knows about the QNANO format for Coulomb matrix element files


The documentation for this class was generated from the following files: