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

Class function for objects \( f(t) \) with time on real axis. More...

#include <cntr_convolution_decl.hpp>

+ Collaboration diagram for cntr::function< T >:

Public Types

typedef std::complex< T > cplx
 

Public Member Functions

void Bcast_timestep (int tstp, int root)
  Broadcast a time step of the function using MPI More...
 
 function ()
 
 function (int nt, int size1=1)
  Initializes the function class for a square-matrix-valued function of time. More...
 
 function (int nt, int size1, int size2)
  Initializes the function class for a non-square-matrix-valued function of time. More...
 
 function (const function &f)
  Initializes the function class from an existing function object More...
 
 function (function &&f) noexcept
  Initializes the function class from an existing function object(right-value reference) More...
 
void get_matrixelement (int i1, int i2, function< T > &g)
  Get a matrix element of the function object More...
 
template<class EigenMatrix >
void get_value (int tstp, EigenMatrix &M) const
  Get matrix value of this function object at a specific time point More...
 
void incr (function< T > &g, T weight=1.0)
  Increase the function object by another function. More...
 
void left_multiply (cplx *f, T weight=1.0)
  Multiply function values with a matrix-valued function from the left More...
 
void left_multiply (function< T > &f, T weight=1.0)
  Multiply function values with a matrix-valued function from the left More...
 
int nt (void) const
 
functionoperator= (const function &f)
  Overloaded operator '='. It copies data from an existing function object More...
 
functionoperator= (function &&f) noexcept
  Overloaded operator '=', which copies data from an existing function object(right-value reference) More...
 
cplxoperator[] (int t)
 
const cplxoperator[] (int t) const
 
void print_to_file (const char *file, int precision=16) const
  Store the function data to a txt file More...
 
cplxptr (int t)
 
const cplxptr (int t) const
 
void read_from_file (const char *file)
  Read the function data from a txt file More...
 
void read_from_file (int nt1, const char *file)
  Read the function data from a txt file More...
 
void read_from_hdf5 (hid_t group_id)
  Read the function data from a hdf5 file More...
 
void read_from_hdf5 (hid_t group_id, const char *groupname)
  Read the function data from a hdf5 file More...
 
void read_from_hdf5 (const char *filename, const char *groupname)
  Read the function data from a hdf5 file More...
 
void read_from_hdf5 (int nt1, hid_t group_id)
  Read the function data from a hdf5 file More...
 
void read_from_hdf5 (int nt1, hid_t group_id, const char *groupname)
  Read the function data from a hdf5 file More...
 
void read_from_hdf5 (int nt1, const char *filename, const char *groupname)
  Read the function data from a hdf5 file More...
 
void resize (int nt, int size1)
  Resize the time length and/or matrix dimension of a square-matrix function More...
 
void right_multiply (cplx *f, T weight=1.0)
  Multiply the function with another matrix-valued function from the right More...
 
void right_multiply (function< T > &f, T weight=1.0)
  Multiply function values with a matrix-valued function from the right More...
 
void set_constant (cplx *f0)
  Set all data to a constant(scalar or matrix) for the function class More...
 
template<class EigenMatrix >
void set_constant (EigenMatrix &M)
  Set all data to a constant matrix for the function class More...
 
template<class EigenMatrix >
void set_matrixelement (int tstp, int i1, int i2, EigenMatrix &M, int j1, int j2)
  Set a matrix element from an Eigen matrix More...
 
void set_matrixelement (int i1, int i2, function &g, int j1, int j2)
  Set a matrix element from a function object More...
 
template<class EigenMatrix >
void set_value (int tstp, EigenMatrix &M)
  Set matrix value at a specific time point More...
 
template<class EigenMatrix >
void set_value (int tstp, cplx x)
  Set scalar value at a specific time point More...
 
void set_zero (void)
  Set all data to zero for the function class More...
 
int size1 (void) const
 
int size2 (void) const
 
void smul (T weight)
  Multiply the function with a scalar More...
 
void write_to_hdf5 (hid_t group_id) const
  Write the function data to a hdf5 file More...
 
void write_to_hdf5 (hid_t group_id, const char *groupname) const
  Write the function data to a hdf5 file More...
 
void write_to_hdf5 (const char *filename, const char *groupname) const
  Write the function data to a hdf5 file More...
 
 ~function ()
 

Public Attributes

cplxdata_
  Pointer to the function in the Matrix form on the real-time axis ( \(f(t)\)) ; 'data_+ \( (t+1)\;*\)element_size' corresponds to (0,0)-component of \(f(t)\). More...
 
int nt_
  Maximum number of the time steps. More...
 
int size1_
  Number of the colums in the Matrix form. More...
 
int size2_
  Number of the rows in the Matrix form. More...
 
int total_size_
  Size of the data stored for the function on the real-time axis including \( t=-1\); \( (n_t + 2)\) * size1 * size2 . More...
 

Detailed Description

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

Class function for objects \( f(t) \) with time on real axis.

Purpose

This class contains the data of a function of time on real axis. The function can be scalar/matrix valued. The class also contains various operations on functions. t = -1 means the function on the imaginary(Matsubara) axis.

Definition at line 9 of file cntr_convolution_decl.hpp.


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