NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library
cntr::herm_matrix_timestep_view< T > Class Template Reference

Class herm_matrix_timestep_view serves for interfacing with class herm_matrix_timestep without copying the data. More...

#include <cntr_getset_decl.hpp>

Public Types

typedef std::complex< T > cplx
 
typedef T scalar_type
 

Public Member Functions

void Bcast_timestep (int tstp, int root)
  Broadcasts the herm_matrix_timestep_view at a given time step to all ranks. More...
 
void density_matrix (int tstp, std::complex< T > &M)
  Return single particle density matrix from herm_matrix_timestep_view. More...
 
template<class Matrix >
void density_matrix (int tstp, Matrix &M)
  Return single particle density matrix as Eigen matrix from herm_matrix_timestep_view. More...
 
void get_data (herm_matrix_timestep_view< T > &g)
  Return the data into herm_matrix_timestep_view More...
 
template<class GG >
void get_data (GG &g)
  Return the data into object given by the template argument More...
 
void get_data (std::complex< T > *ret, std::complex< T > *les, std::complex< T > *tv, std::complex< T > *mat)
 
template<typename T >
void get_data (CPLX *ret, CPLX *les, CPLX *tv, CPLX *mat)
  Return the data More...
 
void get_timestep (int tstp, herm_matrix_timestep< T > &timestep)
  Get timestep into herm_matrix_timestep More...
 
 herm_matrix_timestep_view ()
 
 herm_matrix_timestep_view (const herm_matrix_timestep_view &g)
  Initializes the herm_matrix_timestep_view class with the same layout as a given herm_matrix_timestep_view g. More...
 
 herm_matrix_timestep_view (herm_matrix_timestep< T > &g)
  Initializes the herm_matrix_timestep_view class with the same layout as a given herm_matrix_timestep g. More...
 
 herm_matrix_timestep_view (int tstp, herm_matrix< T > &g, bool check_assert=true)
  Initializes the herm_matrix_timestep_view class with the same layout as a given herm_matrix g. More...
 
 herm_matrix_timestep_view (int tstp, int ntau, int size1, int size2, int sig)
  Initializes the herm_matrix_timestep_view class for a general matrix. More...
 
 herm_matrix_timestep_view (int tstp, herm_matrix_timestep< T > &g, bool check_assert=true)
  Initializes the herm_matrix_timestep_view class with the same layout as a given herm_matrix_timestep g. More...
 
 herm_matrix_timestep_view (int tstp, herm_matrix_timestep_view< T > &g)
  Initializes the herm_matrix_timestep_view class with the same layout as a given herm_matrix_timestep_view g. More...
 
void incr_timestep (herm_matrix_timestep_view< T > &g, std::complex< T > alpha)
 
void incr_timestep (herm_matrix_timestep_view< T > &g, T alpha)
  Increase the value of the herm_matrix_timestep_view for \(\alpha g(t) \). More...
 
template<class GG >
void incr_timestep (GG &g, std::complex< T > alpha)
 
template<class GG >
void incr_timestep (GG &g, T alpha)
  Increase the value of the `template argument for \(\alpha g(t) \). More...
 
template<typename T >
void incr_timestep (herm_matrix_timestep_view< T > &g, CPLX alpha)
  Increase the value of the herm_matrix_timestep_view for \(\alpha g(t) \) More...
 
template<class GG >
void incr_timestep (GG &g, CPLX alpha)
  Increase the value of the herm_matrix_timestep_view for \(\alpha g(t) \). More...
 
void left_multiply (int tstp, function< T > &ft, T weight=1.0)
  Left-multiplication of the herm_matrix_timestep_view with a contour function More...
 
void left_multiply_hermconj (int tstp, function< T > &ft, T weight=1.0)
  Left-multiplies the herm_matrix_timestep_view with the hermitian conjugate of a contour function. More...
 
int ntau (void) const
 
herm_matrix_timestep_viewoperator= (const herm_matrix_timestep_view &g)
  Copy assignment operator for herm_matrix_timestep_view g class. More...
 
void read_from_hdf5 (hid_t group_id, const char *groupname)
  Read herm_matrix_timestep_view from hdf5 group given by group ID group_id and group name groupname. More...
 
void read_from_hdf5 (hid_t group_id)
  Read herm_matrix_timestep_view from hdf5 group given by group ID group_id. More...
 
void read_from_hdf5 (const char *filename, const char *groupname)
  Read herm_matrix_timestep_view from hdf5 group groupname in file filename. More...
 
void Recv_timestep (int tstp, int root, int tag)
  Recevies the herm_matrix_timestep_view at a given time step from a specific task. More...
 
void Reduce_timestep (int tstp, int root)
  MPI reduce for the herm_matrix_timestep_view. More...
 
void right_multiply (int tstp, function< T > &ft, T weight=1.0)
  Right-multiplication of the herm_matrix_timestep_view with a contour function More...
 
void right_multiply_hermconj (int tstp, function< T > &ft, T weight=1.0)
 
void Send_timestep (int tstp, int dest, int tag)
  Sends the herm_matrix_timestep_view at a given time step to a specific task. More...
 
void set_matrixelement (int i1, int i2, herm_matrix_timestep_view< T > &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
template<class GG >
void set_matrixelement (int i1, int i2, GG &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
void set_timestep (int tstp, herm_matrix< T > &g1)
  Sets all components of herm_matrix_timestep_view to the components of a given herm_matrix at time step tstp. More...
 
void set_timestep (int tstp, herm_matrix_timestep< T > &g1)
  Sets all components of herm_matrix_timestep_view to the components of a given herm_matrix_timestep at time step tstp. More...
 
void set_timestep_zero (int tstp)
  Sets all components at time step tstp to zero. More...
 
void set_to_data (std::complex< T > *data, int tstp, int ntau, int size, int sig)
 
void set_to_data (int tstp, herm_matrix< T > &g)
  Reset the pointers of herm_matrix_timestep_view class to the pointer given by herm_matrix g at timestep tstp. More...
 
void set_to_data (herm_matrix_timestep< T > &g)
  Reset the pointers of herm_matrix_timestep_view class to the pointer given by herm_matrix_timestep g at timestep tstp More...
 
int sig (void) const
 
int size1 (void) const
 
int size2 (void) const
 
void smul (T alpha)
  Multiply herm_matrix_timestep_view with scalar weight. More...
 
int tstp (void) const
 
void write_to_hdf5 (hid_t group_id)
  Write herm_matrix_timestep_view to hdf5 group given by group_id. More...
 
void write_to_hdf5 (hid_t group_id, const char *groupname)
  Write herm_matrix_timestep_view to hdf5 group given by group_id and name groupname. More...
 
void write_to_hdf5 (const char *filename, const char *groupname)
  Write herm_matrix_timestep_view to hdf5 group groupname in file filename. More...
 
 ~herm_matrix_timestep_view ()
 

Detailed Description

template<typename T>
class cntr::herm_matrix_timestep_view< T >

Class herm_matrix_timestep_view serves for interfacing with class herm_matrix_timestep without copying the data.

Purpose

Occasionally you may have a pre-defined object of herm_matrix or herm_matrix_timestep that you want to use. While one option is to make a copy of the data, most commonly you probably want to re-use this memory as a libcntr type, and this class serves as an interface. Mark similar concept of a map class in Eigen. To construct this class you need: a pointers to the region of memory defining different components (ret,tv,les,mat) and usual defining constants for the herm_matrix_timestep. The contour function can be of scalar type or matrix-valued.

Square-matrix-type contour functions are fully supported, while non-square- matrix contour functions are under development.!! NOTE: MIND DANGLING POINTERS

Definition at line 11 of file cntr_getset_decl.hpp.


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