20 #ifndef SOBJECT_CHEMPS2_H 21 #define SOBJECT_CHEMPS2_H 24 #include "SyBookkeeper.h" 65 int gKappa(
const int NL,
const int TwoSL,
const int IL,
const int N1,
const int N2,
const int TwoJ,
const int NR,
const int TwoSR,
const int IR )
const;
83 double *
gStorage(
const int NL,
const int TwoSL,
const int IL,
const int N1,
const int N2,
const int TwoJ,
const int NR,
const int TwoSR,
const int IR );
101 double Split(
TensorT * Tleft,
TensorT * Tright,
const int virtualdimensionD,
const bool movingright,
const bool change );
105 void addNoise(
const double NoiseLevel );
116 int gNL(
const int ikappa )
const;
121 int gTwoSL(
const int ikappa )
const;
126 int gIL(
const int ikappa )
const;
131 int gN1(
const int ikappa )
const;
136 int gN2(
const int ikappa )
const;
141 int gTwoJ(
const int ikappa )
const;
146 int gNR(
const int ikappa )
const;
151 int gTwoSR(
const int ikappa )
const;
156 int gIR(
const int ikappa )
const;
161 int gReorder(
const int ikappa )
const;
int gTwoSL(const int ikappa) const
Get the left spin symmetry of block ikappa.
Sobject(const int index, SyBookkeeper *denBK)
Constructor.
int gKappa2index(const int kappa) const
Get the storage jump corresponding to a certain symmetry block.
double Split(TensorT *Tleft, TensorT *Tright, const int virtualdimensionD, const bool movingright, const bool change)
SVD an S-object into 2 TensorT's.
void symm2prog()
Convert the storage from symmetric Hamiltonian convention to diagram convention.
int gTwoJ(const int ikappa) const
Get the central spin symmetry of block ikappa.
int gNKappa() const
Get the number of symmetry blocks.
int gIL(const int ikappa) const
Get the left irrep symmetry of block ikappa.
double * gStorage()
Get the pointer to the storage.
int gKappa(const int NL, const int TwoSL, const int IL, const int N1, const int N2, const int TwoJ, const int NR, const int TwoSR, const int IR) const
Get the index corresponding to a certain symmetry block.
void Join(TensorT *Tleft, TensorT *Tright)
Join two sites to form a composite S-object.
void prog2symm()
Convert the storage from diagram convention to symmetric Hamiltonian convention.
virtual ~Sobject()
Destructor.
int gNL(const int ikappa) const
Get the left particle number symmetry of block ikappa.
int gIR(const int ikappa) const
Get the right irrep symmetry of block ikappa.
int gTwoSR(const int ikappa) const
Get the right spin symmetry of block ikappa.
int gIndex() const
Get the location index.
int gReorder(const int ikappa) const
Get the blocks from large to small: blocksize(reorder[i])>=blocksize(reorder[i+1]) ...
int gNR(const int ikappa) const
Get the right particle number symmetry of block ikappa.
void addNoise(const double NoiseLevel)
Add noise to the current S-object.
int gN1(const int ikappa) const
Get the left local particle number symmetry of block ikappa.
int gN2(const int ikappa) const
Get the right local particle number symmetry of block ikappa.