syten::MPS::DMRG::LBOWorker::LBOWorker | ( | LBOState && | psi_, |
std::vector< Operator > && | op_, | ||
DMRGConfig && | conf_, | ||
Tensor< 2 > & | , | ||
Index const | lbound_, | ||
const Index | rbound_, | ||
std::vector< LBOState > && | ortho_ | ||
) |
Standard ctor, use to set up a DMRG worker.
[in] | psi_ | the input/initial guess. |
[in] | op_ | the operators over which we want to minimise |
[in] | conf_ | the configuration object. |
[in] | lbound_ | left edge of this worker segment |
[in] | rbound_ | right edge of this worker segment |
[in] | ortho_ | set of states against which to orthogonalise |
This constructor right-normalises the input state and calculates the needed right-contractions, so it might take a while.
References std::vector< T >::begin(), syten::DMRG::DMRGConfig::cache, syten::MPS::LBOState::cache(), calcContrLeft(), calcContrRight(), conf, contrLeft, contrRight, syten::DMRG::DMRGConfig::currentStage, dir, syten::MPS::LBOState::dropUnmatched(), std::vector< T >::end(), energyM(), syten::Basis::flipped(), syten::genFuse(), syten::genIONode(), syten::genSplit(), syten::Tensor< rank >::getBasis(), initLog(), std::iota(), syten::DMRG::DMRGConfig::lastEnergy, syten::MPS::lboify_mpo_cmp(), lbound, syten::MPS::LBOState::leftnorm(), length, syten::MPS::LBOState::lIdx, syten::MPS::Operator::lIdx, logTrace(), syten::MPS::LBOState::m(), syten::MPS::LBOState::mc(), syten::MPS::LBOState::No, syten::MPS::norm(), syten::DMRG::DMRGConfig::numWorkers, op, ortho, orthoLeft, orthoRight, syten::MPS::LBOState::pleaseCache, position, psi, std::vector< T >::push_back(), rbound, std::vector< T >::resize(), syten::MPS::LBOState::rIdx, syten::MPS::Operator::rIdx, syten::MPS::LBOState::rightnorm(), site_positions, syten::MPS::LBOState::size(), syten::DMRG::DMRGConfig::stages, SYTEN_ASSERT_DEBUG, SYTEN_ASSERT_MSG, syten::MPS::LBOState::v(), syten::MPS::LBOState::vc(), and syten::DMRG::DMRGConfig::worker.