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

Class herm_matrix_timestep deals with contour objects \( C(t,t') \) at a particular timestep \(t'\). More...

#include <cntr_equilibrium_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 at a given time step to all ranks. More...
 
void clear (void)
  Sets all values to zero. More...
 
template<class Matrix >
void density_matrix (int tstp, Matrix &M)
  Returns the density matrix at given time step. More...
 
void density_matrix (int tstp, cplx &rho)
  Returns the density matrix at given time step. More...
 
void get_matrixelement (int i1, int i2, herm_matrix< T > &g)
 
 herm_matrix_timestep ()
 
 herm_matrix_timestep (int tstp, int ntau, int size1=1)
  Initializes the herm_matrix_timestep class for a square-matrix for fermions. More...
 
 herm_matrix_timestep (int tstp, int ntau, int size1, int sig)
  Initializes the herm_matrix_timestep class for a square-matrix for fermions/bosons. More...
 
 herm_matrix_timestep (int tstp, int ntau, int size1, int size2, int sig)
  Initializes the herm_matrix_timestep class for a general matrix. More...
 
 herm_matrix_timestep (const herm_matrix_timestep &g)
  Initializes the herm_matrix_timestep class with the same layout as a given herm_matrix_timestep. More...
 
 herm_matrix_timestep (herm_matrix_timestep &&g) noexcept
 
void incr (herm_matrix_timestep< T > &g1, T weight)
  Increase the value of the herm_matrix_timestep by weight \( * g(t) \) More...
 
void incr (herm_matrix< T > &g, T weight=1.0)
  Increase the value of the herm_matrix_timestep by \(\alpha g(t)\) More...
 
void incr_timestep (int tstp, herm_matrix_timestep< T > &g1, T weight)
  Increase the value of the herm_matrix_timestep by weight \( * g(t) \) More...
 
void incr_timestep (int tstp, herm_matrix< T > &g, T weight=1.0)
  Increase the value of the herm_matrix_timestep by \(\alpha g(t)\) More...
 
void left_multiply (function< T > &ft, T weight=1.0)
  Left-multiplication of the herm_matrix_timestep with a contour function More...
 
void left_multiply (int tstp, function< T > &ft, T weight=1.0)
  Left-multiplication of the herm_matrix_timestep with a contour function More...
 
void left_multiply_hermconj (int tstp, function< T > &ft, T weight=1.0)
  Left-multiplies the herm_matrix_timestep with the hermitian conjugate of a contour function. More...
 
cplxlesptr (int i)
 
cplxmatptr (int i)
 
int ntau (void) const
 
herm_matrix_timestepoperator= (const herm_matrix_timestep &g)
 
herm_matrix_timestepoperator= (herm_matrix_timestep &&g) noexcept
 
void read_from_hdf5 (hid_t group_id, const char *groupname)
  Read herm_matrix_timestep from hdf5 group given by group_id and group name groupname More...
 
void read_from_hdf5 (hid_t group_id)
  Read herm_matrix_timestep from hdf5 group given by group_id More...
 
void read_from_hdf5 (const char *filename, const char *groupname)
  Read herm_matrix_timestep from hdf5 group given by group name groupname in file filename More...
 
void Recv_timestep (int tstp, int root, int tag)
  Recevies the herm_matrix at a given time step from a specific task. More...
 
void Reduce_timestep (int tstp, int root)
  MPI reduce for the herm_matrix_timestep More...
 
void resize (int nt, int ntau, int size1)
  Resizes herm_matrix_timestep object with respect to the number of points on the Matsubara branch and the matrix size at a given timestep . More...
 
cplxretptr (int i)
 
void right_multiply (function< T > &ft, T weight=1.0)
  Right-multiplication of the herm_matrix_timestep with a contour function More...
 
void right_multiply (int tstp, function< T > &ft, T weight=1.0)
  Right-multiplication of the herm_matrix_timestep with a contour function More...
 
void right_multiply_hermconj (int tstp, function< T > &ft, T weight=1.0)
  Right-multiplies the herm_matrix_timestep with the hermitian conjugate of a contour function. More...
 
void Send_timestep (int tstp, int dest, int tag)
  Sends the herm_matrix_timestep 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...
 
void set_matrixelement (int tstp, 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...
 
void set_matrixelement (int i1, int i2, herm_matrix_timestep< T > &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
void set_matrixelement (int tstp, int i1, int i2, herm_matrix_timestep< T > &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
void set_matrixelement (int i1, int i2, herm_matrix< T > &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
void set_matrixelement (int tstp, int i1, int i2, herm_matrix< T > &g, int j1, int j2)
  Set the matrix element of \(C_{[i1,i2]}\) for each component from \( g_{[i1,i2]} \) More...
 
void set_submatrix (int tstp, std::vector< int > &i1, std::vector< int > &i2, herm_matrix< T > &g, std::vector< int > &j1, std::vector< int > &j2)
  Sets a (sub-) matrix of this contour object at a given time step to a (sub-) matrix of a given herm_matrix. More...
 
void set_submatrix (int tstp, std::vector< int > &i1, std::vector< int > &i2, herm_matrix_timestep< T > &g, std::vector< int > &j1, std::vector< int > &j2)
  Sets a (sub-) matrix of this contour object at a given time step to a (sub-) matrix of a given herm_matrix_timestep. More...
 
void set_timestep (cyclic_timestep< T > &timestep, cyclic_timestep< T > &timestep_cc, int sig)
 
void set_timestep (cyclic_timestep< T > &timestep, int sig)
 
void set_timestep (int tstp, herm_matrix< T > &g1)
  Sets all components of herm_matrix_timestep 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 to the components of a given herm_matrix_timestep at time step tstp. More...
 
void set_timestep_pseudo (cyclic_timestep< T > &timestep, cyclic_timestep< T > &timestep_cc, int sig)
 
void set_timestep_pseudo (cyclic_timestep< T > &timestep, int sig)
 
void set_timestep_zero (int tstp)
  Sets all components at time step tstp to zero. More...
 
int sig (void) const
 
int size1 (void) const
 
int size2 (void) const
 
void smul (int tstp, T weight)
  Multiply herm_matrix_timestep with scalar weight. More...
 
void smul (T weight)
  Multiply herm_matrix_timestep with scalar weight. More...
 
int tstp (void) const
 
cplxtvptr (int i)
 
void write_to_hdf5 (hid_t group_id)
  Write herm_matrix_timestep to hdf5 group given by group_id More...
 
void write_to_hdf5 (hid_t group_id, const char *groupname)
  Write herm_matrix_timestep 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 to hdf5 group given by name groupname and store in file filename More...
 
 ~herm_matrix_timestep ()
 

Detailed Description

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

Class herm_matrix_timestep deals with contour objects \( C(t,t') \) at a particular timestep \(t'\).

Purpose

The class 'herm_matrix_timestep' describes a time slice \(\mathcal{T}[C]_n\) of the contour function \(C(t,t')\) at the time step \( n \), storing \(C^<(t_j, t_n), C^\mathrm{R}(t_n, t_j)\) for \(j=0,\dots,n\) and \(C^\mathrm{M}(\tau_m), C^\rceil(t_n, \tau_m)\) for \(m=0,\dots,N_\tau\). The contour function \( C(t,t') \) can be of scalar type or matrix-valued.

Definition at line 10 of file cntr_equilibrium_decl.hpp.


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