Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Functions
spin_half_heisenberg.hpp File Reference

Constructs U(1) spin-half product states and Heisenberg MPOs. More...

#include <uni20/core/scalar_concepts.hpp>
#include <uni20/symmetry/block_space.hpp>
#include <uni20/symmetry/u1.hpp>
#include <uni20/tensor_network/finite_chain.hpp>
#include <cstddef>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
Include dependency graph for spin_half_heisenberg.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::models::SpinHalfU1Site
 U(1)-symmetric spin-half local space and its two state charges. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::models
 

Typedefs

template<RealOrComplex Scalar>
using uni20::models::SpinHalfU1Mpo = tensor_network::FiniteMpo< Scalar, LocalSpace, LocalSpace, PackedSparseBlockStorage<> >
 Packed finite MPO type produced by the spin-half model builders.
 
template<RealOrComplex Scalar, BlockTensorStorage Storage = PackedSparseBlockStorage<>>
using uni20::models::SpinHalfU1Mps = tensor_network::FiniteMps< Scalar, BlockSpace, LocalSpace, Storage >
 Finite MPS type produced by the spin-half model builders.
 

Enumerations

enum class  uni20::models::SpinHalfState { uni20::models::up , uni20::models::down }
 Physical state selected at the first site of a spin-half product pattern. More...
 

Functions

template<RealOrComplex Scalar = double, BlockTensorStorage Storage = PackedSparseBlockStorage<>>
requires ImmediateLocalBlockStorageFor<Storage, Scalar, 3, 2>
auto uni20::models::make_neel_product_mps (std::size_t length, SpinHalfU1Site const &local, SpinHalfState first=SpinHalfState::up) -> SpinHalfU1Mps< Scalar, Storage >
 Construct a normalized alternating spin-half product MPS.
 
template<RealOrComplex Scalar = double>
auto uni20::models::make_spin_half_heisenberg_mpo (std::size_t length, SpinHalfU1Site const &local, make_real_t< Scalar > exchange=make_real_t< Scalar >{1}, make_real_t< Scalar > longitudinal_field=make_real_t< Scalar >{}) -> SpinHalfU1Mpo< Scalar >
 Construct the open spin-half Heisenberg Hamiltonian as a finite MPO.
 
auto uni20::models::make_spin_half_u1_site (std::string_view charge_name="Sz") -> SpinHalfU1Site
 Construct the standard U(1)-symmetric spin-half local space.
 

Detailed Description

Constructs U(1) spin-half product states and Heisenberg MPOs.