SyTen

◆ grow_helper()

template<typename MapperA , typename MapperB , typename MapperC , typename MapperD , typename MapperE , typename MapperF >
CornerTransferMatrix::GrowthResult syten::IPEPSv2::CornerTransferMatrix::grow_helper ( State const &  psi,
Truncation  trunc,
Grid< STensor > &  cA,
Grid< STensor > &  cB,
Grid< STensor > &  tA,
Grid< STensor > &  tB,
Grid< STensor > &  rung,
int  max_counter,
MapperA  this_on_rung,
MapperB  next_on_rung,
MapperC  prev_on_rung,
MapperD  this_on_next,
MapperE  next_on_next,
MapperF  prev_on_next,
BondGrid< SBasisId > &  m,
BondGrid< SRDef > &  sv1,
CornerTransferMatrix::GrowthMode  mode 
)
static

Growth helper, unifies all growth directions.

Parameters
psiiPEPS on which to base the CTM growth
trunctruncation criterion for the CTM truncation
cA"right" or "top" corner tensors grid
cB"left" or "bottom" corner tensors grid
tA"right" or "top" ungrown tensor rung grid
tB"left" or "bottom" ungrown tensor rung grid
runggrown tensor rung grid
max_counternumber of distinct sites along the grown rung
this_on_rungfunctor returning the current rung/site coordinate when passed a coordinate along the grown rung
next_on_rungfunctor returning the current rung/site coordinate when passed the next coordinate along the grown rung
prev_on_rungfunctor returning the current rung/site coordinate when passed the previous coordinate along the grown rung
this_on_nextfunctor returning the coordinate on the next rung in CTM growth direction when passed a coordinate along the grown rung
next_on_nextfunctor returning the coordinate on the next rung in CTM growth direction when passed the next coordinate along the grown rung
prev_on_nextfunctor returning the coordinate on the next rung in CTM growth direction when passed the previous coordinate along the grown rung
mbond grid of CTM bases of the grown rung
sv1bond grid of last first singular value to calculate the singular value change
modeCTM growth mode

References syten::abs(), std::vector< T >::clear(), syten::conj(), syten::Cuda::copy(), syten::diagonal(), syten::STensorImpl::gen_merge(), syten::IPEPSv2::have_shown_ctm_ad_warning, syten::STensorImpl::invert_diagonal(), syten::logGW(), lr, syten::IdentityDenseTensorImpl::merge(), mode, std::move(), syten::normalise(), syten::normalised(), syten::project(), syten::STensorImpl::qr(), syten::real(), syten::sqrt(), syten::IPEPSv2::CornerTransferMatrix::GrowthResult::sv1_change, syten::STensorImpl::svd(), SYTEN_ASSERT_MSG, SYTEN_COMPLEX_SCALAR, std::tie(), and syten::IPEPSv2::CornerTransferMatrix::GrowthResult::trunc_error.

Referenced by grow_b_once(), grow_l_once(), grow_r_once(), and grow_t_once().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: