| std::tuple< State, SRDef > syten::MPS::apply_op_orthogonalise_fit | ( | State const & | in, |
| Operator const & | op, | ||
| Truncation const & | trunc, | ||
| SRDef | desired_change, | ||
| Index | max_exp_sweeps = 12, |
||
| Index | max_opt_sweeps = 2, |
||
| State | res = State(), |
||
| Iterator | first = nullptr, |
||
| Iterator | last = nullptr |
||
| ) |
Applies the operator op to the state in while orthogonalising the result against states [first, last) and truncating with trunc.
| in | the initial state \( |\psi \rangle \) as a MPS::State |
| op | the operator \( \hat O \) |
| trunc | a truncation specification |
| desired_change | sweeps are considered converged if the total change during a sweep is below this. |
| max_exp_sweeps | maximal number of full (back&forth) expansion sweeps |
| max_opt_sweeps | maximal number of full (back&forth) optimisation sweeps |
| res | input guess state to use as initial state |
| first | iterator to the first element of the orthogonalised set \( \{ | v_i \rangle \}_{i=\mathtt{first}}^{\mathtt{last-1}} \) |
| last | iterator to the one-past-the-end element of the orthogonalised set \( \{ | v_i \rangle \}_{i=\mathtt{first}}^{\mathtt{last-1}} \) |
first and last are optional and can be left off. No orthogonalisation will occur in this case. References syten::abs(), syten::Timer::add(), std::vector< T >::back(), syten::Tensor< rank >::begin(), syten::conj(), distance(), std::distance(), syten::Tensor< rank >::end(), syten::Timer::end(), expand_to_left(), expand_to_right(), syten::genFuse(), syten::genIONode(), syten::genSplit(), syten::MPS::State::leftnorm(), syten::MPS::Operator::lIdx, syten::MPS::State::lIdx, syten::MPS::State::lInt, syten::logGD(), syten::logTV(), std::make_tuple(), syten::Timer::middle(), std::move(), mps_mpo_ctr_ctr(), mps_mpo_mps_ctr_left(), mps_mpo_mps_ctr_right(), norm(), syten::orthogonalise_solve_svd(), std::vector< T >::pop_back(), std::vector< T >::push_back(), syten::MPS::Operator::rIdx, syten::MPS::State::rIdx, syten::MPS::State::rInt, syten::MPS::State::size(), syten::Timer::start(), syten::to_string_rd(), syten::MPS::State::uIdx, syten::MPS::State::uInt, and syten::underThreshold().
Referenced by syten::Krylov::TensorNetworksImpl::VarApplyOrtho::apply(), apply_op_itrunc_fit(), syten::do_apply_op(), syten::MPS::TDVP::Worker::gse_build_krylov_vectors(), syten::MPS::DMRG::Worker::gse_build_krylov_vectors(), and taylor_time_evolution().
Here is the call graph for this function:
Here is the caller graph for this function: