SyTen

◆ genRandomCompleteState() [2/2]

State syten::IPEPS::genRandomCompleteState ( Lattice const &  lat,
Basis const &  sector,
std::vector< Basis > const &  backwards_bases,
std::vector< Basis > const &  right_bases,
Index  max_blocksize = Maximum() 
)

Attempts to generate an IPEPS compatible with the lattice and the specified bases.

Parameters
latthe lattice with which the state is to be compatible
sectorthe target quantum number sector for the unit cell, physical index of the remover
backwards_basesthe incoming bases from the back on each backmost site of the lattice, numbered left to right
right_basesthe incoming bases from the right on each rightmost site of the lattice, numbered front to back
max_blocksizethe maximal permitted block size of each sector

Sets the bases of those tensors for which neighbouring tensors have already a set basis.

Counts the number of sites without tensors

Builds tensors on all sites where complete basis information exists.

Counts the number of completed but not yet build sites

Counts the number of sites with a single undefined basis.

References std::vector< T >::back(), syten::Basis::dir, syten::Basis::flipped(), syten::genFuse(), syten::genIINode(), syten::genOONode(), genRandomTensor(), syten::genSplit(), syten::Tensor< rank >::getBasis(), syten::Invalid, std::make_pair(), syten::makeRandom(), std::move(), syten::norm(), syten::IPEPS::State::rbIdx, std::vector< T >::size(), SYTEN_ASSERT_MSG, and std::tie().

+ Here is the call graph for this function: