Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian > Class Template Reference

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.
 

Detailed Description

template<detail::TwoSiteOperatorView Hamiltonian>
class uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >

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.

Template Parameters
HamiltonianImmediate host BlockTensor view describing the local operator.

Member Typedef Documentation

◆ hamiltonian_type

template<detail::TwoSiteOperatorView Hamiltonian>
using uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >::hamiltonian_type = std::remove_cvref_t<Hamiltonian>

Constructor & Destructor Documentation

◆ LocalTwoSiteEffectiveHamiltonian()

template<detail::TwoSiteOperatorView Hamiltonian>
uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >::LocalTwoSiteEffectiveHamiltonian ( hamiltonian_type  hamiltonian)
inlineexplicit

Retain an immutable local two-site Hamiltonian object.

Member Function Documentation

◆ hamiltonian()

template<detail::TwoSiteOperatorView Hamiltonian>
auto uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >::hamiltonian ( ) const -> hamiltonian_type const&
inlinenoexcept

Return the retained local Hamiltonian.

◆ operator()()

template<detail::TwoSiteOperatorView Hamiltonian>
template<MutableImmediateBlockTensorView Output, detail::TwoSiteCenterView Input>
requires detail::CompatibleTwoSiteCenters<Output, Input>
void uni20::tensor_network::LocalTwoSiteEffectiveHamiltonian< Hamiltonian >::operator() ( Output &  output,
Input const &  input 
) const
inline

Overwrite a fixed center with the Hamiltonian application.

Template Parameters
OutputCompatible mutable center view.
InputCompatible read-only center view.
Parameters
outputFixed-structure destination center.
inputSource center.
Precondition
Output numerical storage does not overlap input or Hamiltonian storage.

The documentation for this class was generated from the following file: