|  | CheMPS2
    | 
#include <TensorKM.h>
 Inheritance diagram for CheMPS2::TensorKM:
 Inheritance diagram for CheMPS2::TensorKM: Collaboration 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 SyBookkeeper * | bk_up | 
| The bookkeeper of the upper MPS. | |
| const SyBookkeeper * | bk_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. | |
TensorKM class.
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.
| CheMPS2::TensorKM::TensorKM | ( | const int | boundary_index, | 
| const char | identity, | ||
| const int | Idiff, | ||
| const SyBookkeeper * | denBK | ||
| ) | 
Constructor.
| boundary_index | The boundary index | 
| identity | The identity: K, or M (capitals!) | 
| Idiff | The irrep of the one creator ( sandwiched since TensorK ) | 
| denBK | The symmetry bookkeeper | 
Definition at line 25 of file TensorKM.cpp.
| void CheMPS2::TensorKM::construct | ( | TensorT * | denT | ) |