|
Uni20
Asynchronous tensor and runtime library.
|
Apply a local two-site operator to a fixed BlockTensor center. More...
#include <two_site_effective_hamiltonian.hpp>
Public Types | |
| using | hamiltonian_type = std::remove_cvref_t< Hamiltonian > |
Public Member Functions | |
| auto | hamiltonian () const noexcept -> hamiltonian_type const & |
| Return the retained local Hamiltonian. | |
| LocalTwoSiteEffectiveHamiltonian (hamiltonian_type hamiltonian) | |
| Retain an immutable local two-site Hamiltonian object. | |
| template<MutableImmediateBlockTensorView Output, detail::TwoSiteCenterView Input> requires detail::CompatibleTwoSiteCenters<Output, Input> | |
| void | operator() (Output &output, Input const &input) const |
| Overwrite a fixed center with the Hamiltonian application. | |
Apply a local two-site operator to a fixed BlockTensor center.
The center has boundary Domain<left bond, left physical, right physical> -> Codomain<right bond>. The implementation bends both physical factors into the codomain, contracts them with the operator in one adjacent group, and restores the canonical center boundary through zero-copy mapped views. The operator is retained by value for repeated matrix-free Krylov application. When that value is a borrowed view, its ultimate payload owner must outlive this operation object.
| Hamiltonian | Immediate host BlockTensor view describing the local operator. |
| using uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >::hamiltonian_type = std::remove_cvref_t<Hamiltonian> |
|
inlineexplicit |
Retain an immutable local two-site Hamiltonian object.
|
inlinenoexcept |
Return the retained local Hamiltonian.
|
inline |
Overwrite a fixed center with the Hamiltonian application.
| Output | Compatible mutable center view. |
| Input | Compatible read-only center view. |
| output | Fixed-structure destination center. |
| input | Source center. |