VMPS++
Loading...
Searching...
No Matches
SuperMatrix< Symmetry, Scalar > Class Template Reference

Detailed Description

template<typename Symmetry, typename Scalar = double>
class SuperMatrix< Symmetry, Scalar >

Auxiliary matrix of matrices to create an Mpo and MpoQ.

Definition at line 17 of file SuperMatrix.h.

#include <SuperMatrix.h>

Public Member Functions

OperatorTypeoperator() (size_t i, size_t j)
 
OperatorType operator() (size_t i, size_t j) const
 
void set (size_t Daux1, size_t Daux2, size_t D)
 
void setRowVector (size_t Daux, size_t D)
 
void setColVector (size_t Daux, size_t D)
 
void setMatrix (size_t Daux, size_t D)
 
SuperMatrix< Symmetry, Scalar > row (size_t i)
 
SuperMatrix< Symmetry, Scalar > col (size_t i)
 
void setZero ()
 
size_t rows () const
 
size_t cols () const
 
size_t auxdim () const
 
double memory (MEMUNIT memunit=GB) const
 
size_t D () const
 
std::vector< typename Symmetry::qType > calc_qOp () const
 

Private Types

typedef SparseMatrix< double, ColMajor, EIGEN_DEFAULT_SPARSE_INDEX_TYPEMatrixType
 
typedef SiteOperator< Symmetry, Scalar > OperatorType
 

Private Member Functions

void innerResize (size_t D)
 

Private Attributes

size_t N_rows
 
size_t N_cols
 
boost::multi_array< OperatorType, 2 > data
 

Member Typedef Documentation

◆ MatrixType

template<typename Symmetry , typename Scalar = double>
typedef SparseMatrix<double,ColMajor,EIGEN_DEFAULT_SPARSE_INDEX_TYPE> SuperMatrix< Symmetry, Scalar >::MatrixType
private

Definition at line 19 of file SuperMatrix.h.

◆ OperatorType

template<typename Symmetry , typename Scalar = double>
typedef SiteOperator<Symmetry,Scalar> SuperMatrix< Symmetry, Scalar >::OperatorType
private

Definition at line 20 of file SuperMatrix.h.

Member Function Documentation

◆ auxdim()

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::auxdim ( ) const
inline

auxiliary dimension of an Mpo / MpoQ / SuperMatrix:
- Daux=1: local operator
- Daux=2: sum of local operators
- Daux=3: Ising
- Daux=4: XY
- Daux=5: Heisenberg, XXZ
- Daux=6: Hubbard, Kondo
- Daux=7: extended Hubbard

Definition at line 92 of file SuperMatrix.h.

◆ calc_qOp()

template<typename Symmetry , typename Scalar = double>
std::vector< typename Symmetry::qType > SuperMatrix< Symmetry, Scalar >::calc_qOp ( ) const
inline

Definition at line 124 of file SuperMatrix.h.

◆ col()

template<typename Symmetry , typename Scalar = double>
SuperMatrix< Symmetry, Scalar > SuperMatrix< Symmetry, Scalar >::col ( size_t  i)
inline

Returns the i-th column.

Definition at line 67 of file SuperMatrix.h.

◆ cols()

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::cols ( ) const
inline

Definition at line 89 of file SuperMatrix.h.

◆ D()

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::D ( ) const
inline
Template Parameters
D
local (physical) dimension:
- D=2: S=1/2 Heisenberg
- D=3: t-J, S=1 Heisenberg
- D=4: Hubbard
- D=8: KondoLattice

Definition at line 112 of file SuperMatrix.h.

◆ innerResize()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::innerResize ( size_t  D)
inlineprivate

Definition at line 146 of file SuperMatrix.h.

◆ memory()

template<typename Symmetry , typename Scalar = double>
double SuperMatrix< Symmetry, Scalar >::memory ( MEMUNIT  memunit = GB) const
inline

Calculates the (theoretically) allocated memory (note: by default in GB).

Definition at line 99 of file SuperMatrix.h.

◆ operator()() [1/2]

template<typename Symmetry , typename Scalar = double>
OperatorType & SuperMatrix< Symmetry, Scalar >::operator() ( size_t  i,
size_t  j 
)
inline

Definition at line 23 of file SuperMatrix.h.

◆ operator()() [2/2]

template<typename Symmetry , typename Scalar = double>
OperatorType SuperMatrix< Symmetry, Scalar >::operator() ( size_t  i,
size_t  j 
) const
inline

Definition at line 24 of file SuperMatrix.h.

◆ row()

template<typename Symmetry , typename Scalar = double>
SuperMatrix< Symmetry, Scalar > SuperMatrix< Symmetry, Scalar >::row ( size_t  i)
inline

Returns the i-th row.

Definition at line 55 of file SuperMatrix.h.

◆ rows()

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::rows ( ) const
inline

Definition at line 88 of file SuperMatrix.h.

◆ set()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::set ( size_t  Daux1,
size_t  Daux2,
size_t  D 
)
inline

Resizes to a row vector (1,Daux) for the first site.

Definition at line 27 of file SuperMatrix.h.

◆ setColVector()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::setColVector ( size_t  Daux,
size_t  D 
)
inline

Resizes to a column vector (Daux,1) for the last site.

Definition at line 43 of file SuperMatrix.h.

◆ setMatrix()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::setMatrix ( size_t  Daux,
size_t  D 
)
inline

Resizes to a matrix (Daux,Daux) for all sites save the first and the last.

Definition at line 49 of file SuperMatrix.h.

◆ setRowVector()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::setRowVector ( size_t  Daux,
size_t  D 
)
inline

Resizes to a row vector (1,Daux) for the first site.

Definition at line 37 of file SuperMatrix.h.

◆ setZero()

template<typename Symmetry , typename Scalar = double>
void SuperMatrix< Symmetry, Scalar >::setZero ( )
inline

Sets all submatrices to zero.

Definition at line 79 of file SuperMatrix.h.

Member Data Documentation

◆ data

template<typename Symmetry , typename Scalar = double>
boost::multi_array<OperatorType,2> SuperMatrix< Symmetry, Scalar >::data
private

Definition at line 144 of file SuperMatrix.h.

◆ N_cols

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::N_cols
private

Definition at line 142 of file SuperMatrix.h.

◆ N_rows

template<typename Symmetry , typename Scalar = double>
size_t SuperMatrix< Symmetry, Scalar >::N_rows
private

Definition at line 141 of file SuperMatrix.h.


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