SyTen
syten::MPS::RDMs::TwoParticleRDM Struct Reference

The helper class for th construction of the two particle reduced density matrix. More...

#include <rdm.h>

+ Inheritance diagram for syten::MPS::RDMs::TwoParticleRDM:
+ Collaboration diagram for syten::MPS::RDMs::TwoParticleRDM:

Public Types

typedef std::array< std::string, 2 > OperatorSymbs
 The type containing a list of SSOs without the spin. More...
 
typedef Vec< std::stringSpins
 The tpye containing the spin degrees of freedom. More...
 

Public Member Functions

void construct ()
 Actually constructs the RDM. More...
 
DenseTensor< 4, SDef > const & getRDM (Index const s, Index const p) const
 Returns a reference to a requested RDM. More...
 
DenseTensor< 4, SDefmoveRDM (Index const s, Index const p)
 Returns the RDM as rvalue. More...
 
DenseTensor< 4, SDefsumOverSpins () const
 Takes the full RDM and sums over the spins. More...
 
 TwoParticleRDM (State &psi_, Lattice const &lat_, OperatorSymbs const &ops, Spins const &spins_)
 Constructor taking an MPS, a lattice and some operators and storing everything. More...
 
- Public Member Functions inherited from syten::MPS::RDMs::RDM
virtual void construct ()=0
 Every RDM needs to specify how it's constructed. More...
 
 RDM (State &psi_)
 Constructor. More...
 

Private Member Functions

Tensor< 4 > contr (Tensor< 3 > const &r, Index const site) const
 Contracts the site tensor with a given right block. More...
 
DenseTensor< 4, SDef > & gamma (Index const sigma, Index const sigma_prime)
 Returns the correct reduced density matrix. More...
 
void inner_first_constr (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block, std::array< Index, 3 > const &set_order)
 Matrix elements od the form ijkj. More...
 
void inner_first_constr_one_one_path1 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path2 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path3 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path4 (std::array< Index, 2 > const &indices, Index const sigma, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path5 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path6 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path7 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path8 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_one_one_path9 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w1_block)
 Constructs elements. More...
 
void inner_first_constr_path1 (std::array< Index, 3 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w2_block, bool const first_path)
 Constructs the blocks with all operators, i.e. More...
 
void inner_first_constr_path2_1 (std::array< Index, 3 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w2_block)
 Constructs the blocks with all operators, i.e. More...
 
void inner_first_constr_path2_2 (std::array< Index, 3 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w2_block)
 Constructs the blocks with all operators, i.e. More...
 
void inner_first_constr_path3_1 (std::array< Index, 3 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w2_block)
 Constructs the blocks with all operators, i.e. More...
 
void inner_first_constr_path3_2 (std::array< Index, 3 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w2_block)
 Constructs the blocks with all operators, i.e. More...
 
void inner_first_constr_two (Index const j, Index const sigma, Tensor< 3 > &w3_block)
 Constructs elements. More...
 
void inner_first_constr_two_path1 (Index const j, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w3_block)
 Constructs elements. More...
 
void inner_first_constr_two_path2 (Index const j, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w3_block)
 Constructs elements. More...
 
void inner_second_constr (Index const j, Index const sigma, Tensor< 3 > &w2_block)
 Constructs operators with a particle number like SSO in the middle. More...
 
void inner_second_constr_path1 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w3_block)
 Constructs the blocks with three right ops, the two right most are annihilators. More...
 
void inner_second_constr_path2 (std::array< Index, 2 > const &indices, std::array< Index, 2 > const &sigmas, Tensor< 3 > &w3_block)
 Constructs the blocks with three right ops, the right most is an annihilators, the second right most is a creator. More...
 
void inner_second_constr_path3 (std::array< Index, 2 > const &indices, Index const sigma, Tensor< 3 > &w3_block)
 Constructs the blocks with three right ops, the right most is an annihilators, the second right most is a creator. More...
 
void inner_second_constr_path4 (Index const j, std::array< Index, 2 > const &sigmas, Tensor< 3 > w2_block)
 Constructs operators with two SSOs on right-most site. More...
 
void inner_second_constr_path5 (Index const j, std::array< Index, 2 > const &sigmas, Tensor< 3 > w2_block)
 Constructs operators with two SSOs on right-most site. More...
 
void inner_third_constr (Index const j, Index const sigma, Tensor< 3 > w4_block)
 Constructs the blocks with two right ops. More...
 
Tensor< 3 > right_contr (Index const currentSite, Tensor< 4 > const &mpo_cmp, Tensor< 4 > const &mr) const
 Takes the MPO component and right-contraction for site i-1 multiplied with ψ_i and computes the right-block for site i. More...
 
void set_and_perm (SDef const element, std::array< Index, 2 > const &sigmas, std::array< Index, 4 > const &indices)
 Sets the element to a entry of the tensors and does all the permutations. More...
 

Static Private Member Functions

static SDef matrix_element (Tensor< 3 > const &right)
 Computes the matrix element from given right contraction. More...
 

Private Attributes

std::string const annihilator
 Symbol for annihilation operator. More...
 
std::string const creator
 Symbol for creation operator. More...
 
Lattice const & lat
 The lattice. More...
 
std::string const number = "n"
 Symbol for number operator. More...
 
Vec< DenseTensor< 4, SDef > > rdms
 The actual RDMs. More...
 
Spins const spins
 Spin degrees of freedom. More...
 

Additional Inherited Members

- Public Attributes inherited from syten::MPS::RDMs::RDM
bool verbose_output = true
 Print the progress or not. More...
 
- Protected Attributes inherited from syten::MPS::RDMs::RDM
Statepsi
 The state. More...
 
Index const size
 Total size of the system, stored locally. More...
 

Detailed Description

The helper class for th construction of the two particle reduced density matrix.


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