Pre-computes the (LW) contraction and then only multiplies in M and R on each Lanczos step. More...
#include <operator_applicators.h>
Public Member Functions | |
LWMR (std::vector< Tensor< 3 > > const &l_, std::vector< Tensor< 3 > > const &r_, std::vector< std::reference_wrapper< const Tensor< 4 > > > const &w_, std::vector< Tensor< 3 > > const &orthoCmp_={}, DenseTensor< 2 > const &xtxinv={}) | |
Standard ctor. More... | |
Tensor< 3 > | operator() (Tensor< 3 > &m) const |
Operator application: evaluates \( \sum_i L^i W^i R^i
\cdot M \) and orthogonalises against all \( O^j \). More... | |
Public Attributes | |
std::vector< Tensor< 5 > > | lw |
contraction of L and W, precomputed on creation More... | |
std::vector< Tensor< 3 > > const & | orthoCmp |
orthogonal states projected into MPS basis More... | |
std::vector< Tensor< 3 > > const & | r |
right contraction More... | |
DenseTensor< 2 > const & | xtxinv |
inverted overlap matrix of the orthogonal states More... | |
Pre-computes the (LW) contraction and then only multiplies in M and R on each Lanczos step.
Also cf. 778cf4cd897b16c488dae4f920c0dc2950676187. Note that for two-site DMRG, LMWR is typically better.