CheMPS2
CheMPS2::TensorKM Class Reference

#include <TensorKM.h>

+ Inheritance diagram for CheMPS2::TensorKM:
+ Collaboration diagram for CheMPS2::TensorKM:

Public Member Functions

 TensorKM (const int boundary_index, const char identity, const int Idiff, const SyBookkeeper *denBK)
 Constructor. More...
 
virtual ~TensorKM ()
 Destructor.
 
void construct (TensorT *denT)
 
- Public Member Functions inherited from CheMPS2::TensorOperator
 TensorOperator (const int boundary_index, const int two_j, const int n_elec, const int n_irrep, const bool moving_right, const bool prime_last, const bool jw_phase, const SyBookkeeper *bk_up, const SyBookkeeper *bk_down)
 Constructor. More...
 
virtual ~TensorOperator ()
 Destructor.
 
int gNKappa () const
 Get the number of symmetry blocks. More...
 
double * gStorage ()
 Get the pointer to the storage. More...
 
int gKappa (const int N1, const int TwoS1, const int I1, const int N2, const int TwoS2, const int I2) const
 Get the index corresponding to a certain tensor block. More...
 
int gKappa2index (const int kappa) const
 Get the storage jump corresponding to a certain tensor block. More...
 
double * gStorage (const int N1, const int TwoS1, const int I1, const int N2, const int TwoS2, const int I2)
 Get the pointer to the storage of a certain tensor block. More...
 
int gIndex () const
 Get the boundary index. More...
 
int get_2j () const
 Get twice the spin of the tensor operator. More...
 
int get_nelec () const
 Get how many electrons there are more in the symmetry sector of the lower leg compared to the upper leg. More...
 
int get_irrep () const
 Get the (real-valued abelian) point group irrep difference between the symmetry sectors of the lower and upper legs (see Irreps.h) More...
 
void update (TensorOperator *previous, TensorT *mps_tensor_up, TensorT *mps_tensor_down, double *workmem)
 Clear and update. More...
 
void daxpy (double alpha, TensorOperator *to_add)
 daxpy for TensorOperator More...
 
void daxpy_transpose_tensorCD (const double alpha, TensorOperator *to_add)
 daxpy_transpose for C- and D-tensors (with special spin-dependent factors) More...
 
void clear ()
 Set all storage variables to 0.0.
 
double inproduct (TensorOperator *buddy, const char trans) const
 Make the in-product of two TensorOperator. More...
 

Additional Inherited Members

- Protected Member Functions inherited from CheMPS2::TensorOperator
void update_moving_right (const int ikappa, TensorOperator *previous, TensorT *mps_tensor_up, TensorT *mps_tensor_down, double *workmem)
 Update moving right. More...
 
void update_moving_left (const int ikappa, TensorOperator *previous, TensorT *mps_tensor_up, TensorT *mps_tensor_down, double *workmem)
 Update moving left. More...
 
- Protected Attributes inherited from CheMPS2::TensorOperator
const SyBookkeeperbk_up
 The bookkeeper of the upper MPS.
 
const SyBookkeeperbk_down
 The bookkeeper of the lower MPS.
 
int two_j
 Twice the spin of the tensor operator.
 
int n_elec
 How many electrons there are more in the symmetry sector of the lower leg compared to the upper leg.
 
int n_irrep
 The (real-valued abelian) point group irrep difference between the symmetry sectors of the lower and upper legs (see Irreps.h)
 
bool moving_right
 Whether or not moving right.
 
int * sector_nelec_up
 The up particle number sector.
 
int * sector_irrep_up
 The up spin symmetry sector.
 
int * sector_spin_up
 The up spin symmetry sector.
 
int * sector_spin_down
 The down spin symmetry sector (pointer points to sectorTwoS1 if two_j == 0)
 
bool prime_last
 Convention in which the tensor operator is stored (see class information)
 
bool jw_phase
 Whether or not to include a Jordan-Wigner phase due to the fermion anti-commutation relations.
 
- Protected Attributes inherited from CheMPS2::Tensor
int index
 Index of the Tensor object. For TensorT: a site index; for other tensors: a boundary index.
 
double * storage
 The actual variables. Tensor block kappa begins at storage+kappa2index[kappa] and ends at storage+kappa2index[kappa+1].
 
int nKappa
 Number of Tensor blocks.
 
int * kappa2index
 kappa2index[kappa] indicates the start of tensor block kappa in storage. kappa2index[nKappa] gives the size of storage.
 

Detailed Description

TensorKM class.

Author
Sebastian Wouters sebas.nosp@m.tian.nosp@m.woute.nosp@m.rs@g.nosp@m.mail..nosp@m.com
Date
August 9, 2014

The TensorKM class is a storage and manipulation class for a single contracted creator/annihilitor for the two-orbital mutual information. It only exists moving left to right.

Definition at line 34 of file TensorKM.h.

Constructor & Destructor Documentation

CheMPS2::TensorKM::TensorKM ( const int  boundary_index,
const char  identity,
const int  Idiff,
const SyBookkeeper denBK 
)

Constructor.

Parameters
boundary_indexThe boundary index
identityThe identity: K, or M (capitals!)
IdiffThe irrep of the one creator ( sandwiched since TensorK )
denBKThe symmetry bookkeeper

Definition at line 25 of file TensorKM.cpp.

Member Function Documentation

void CheMPS2::TensorKM::construct ( TensorT denT)
Parameters
denTTensorT from which the new TensorKM should be made.

Definition at line 42 of file TensorKM.cpp.

+ Here is the call graph for this function:


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