|
static |
Growth helper, unifies all growth directions.
psi | iPEPS on which to base the CTM growth |
trunc | truncation 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 |
rung | grown tensor rung grid |
max_counter | number of distinct sites along the grown rung |
this_on_rung | functor returning the current rung/site coordinate when passed a coordinate along the grown rung |
next_on_rung | functor returning the current rung/site coordinate when passed the next coordinate along the grown rung |
prev_on_rung | functor returning the current rung/site coordinate when passed the previous coordinate along the grown rung |
this_on_next | functor returning the coordinate on the next rung in CTM growth direction when passed a coordinate along the grown rung |
next_on_next | functor returning the coordinate on the next rung in CTM growth direction when passed the next coordinate along the grown rung |
prev_on_next | functor returning the coordinate on the next rung in CTM growth direction when passed the previous coordinate along the grown rung |
m | bond grid of CTM bases of the grown rung |
sv1 | bond grid of last first singular value to calculate the singular value change |
mode | CTM 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, std::tie(), and syten::IPEPSv2::CornerTransferMatrix::GrowthResult::trunc_error.
Referenced by grow_b_once(), grow_l_once(), grow_r_once(), and grow_t_once().