void syten::MPS::expand_to_right | ( | Tensor< 3 > const & | left, |
Tensor< 3 > const & | source, | ||
Tensor< 4 > const & | op, | ||
State & | target, | ||
Index const | position, | ||
SRDef const | alpha = 0.1 , |
||
Index const | max_blocksize = 15 , |
||
SRDef const | ratio = 1. , |
||
Index const | min_blocksize = 1 |
||
) |
Calculates an expansion term according to DMRG3S pointing to the right.
left | the left-contraction to the left of the active site |
source | the local mps component |
op | the local mpo component |
target | the target MPS state |
position | the position in the target state, sites position and position+1 will be affected. |
alpha | the mixing factor. |
max_blocksize | maximal blocksize of the expander |
ratio | the ratio of kept to discarded states |
min_blocksize | minimal blocksize of the expander |
References std::vector< T >::clear(), syten::MPS::Operator::dIdx, syten::MPS::State::dropUnmatched(), syten::expansion(), syten::genSplit(), syten::MPS::Operator::lIdx, syten::MPS::State::lIdx, norm(), syten::overThreshold(), syten::MPS::Operator::rIdx, syten::MPS::State::rIdx, syten::MPS::State::size(), syten::split(), SYTEN_ZNORM_THRESHOLD, syten::MPS::Operator::uIdx, syten::MPS::State::uIdx, syten::underThreshold(), and syten::zeroExpand().
Referenced by apply_op_orthogonalise_fit(), syten::MPS::DMRG::Worker::sweepRight(), and syten::MPS::DMRG::Worker::sync().