Algorithms

Generic

VUMPS

TensorRenormalizationGroups.VUMPSType
struct VUMPS <: AbstractBoundaryAlgorithm

Stores the parameters for the variational uniform matrix product state (VUMPS) boundary algorithm.

Fields

  • bonddim::Int64: The bond dimension of the boundary.

  • maxiter::Int64: Maximum number of iterations.

  • tol::Float64: Convergence tolerance.

  • verbose::Bool: When true, will print algorithm convergence progress.

Constructor

VUMPS(; bonddim, maxiter=100, tol=1e-12, verbose=true)
source
TensorRenormalizationGroups.VUMPSRuntimeType
struct VUMPSRuntime{G, AType, CType, FType<:AbstractUnitCell, SType<:AbstractUnitCell} <: AbstractBoundaryRuntime

Fields

  • mps::MPS{G, AType, CType} where {G, AType, CType}: The boundary matrix product state (MPS)

  • fixedpoints::FixedPoints{FType} where FType<:AbstractUnitCell: Left and right fixed points of the transfer matrix

  • svals::AbstractUnitCell: Singular values used to compute the convergence measure

source
TensorRenormalizationGroups.MPSType
struct MPS{G<:AbstractUnitCellGeometry, AType<:AbstractTensorMap{N, 2}, CType<:AbstractTensorMap{0, 2}}

Infinite boundary matrix product state (MPS) in mixed canonical form. MPS tensors have N "physical" indices. Has fields AL, C, AR and derived field AC such that

\[A_L(x,y) C(x,y) \approx C(x - 1, y) A_R(x, y) \approx AC(x, y) \quad \forall x,y \in \Lambda\]

where $\Lambda$ defines the unit cell of geometry G.

Examples

using TensorKit
physbonds = UnitCell(fill(ComplexSpace(2), 2, 1))
virtbonds = UnitCell(fill(ComplexSpace(3), 2, 1))
mps = MPS(rand, ComplexF64, physbonds, virtbonds);
AL, C, AR, AC = mps;
C
source
TensorRenormalizationGroups.FixedPointsType
struct FixedPoints{A<:(AbstractUnitCell{G, var"#s290"} where {var"#s290"<:(TensorKit.AbstractTensorMap{T, S, N₁, 2} where {N₁, S, T}), G})} <: TensorRenormalizationGroups.AbstractFixedPoints

Left and right fixed points of the transfer matrix formed from each row-to-row transfer matrix sandwiched between the a boundary MPS and it's adjoint. This struct has two fields :left and :right which can be accessed directly.

source

CTMRG

TensorRenormalizationGroups.CTMRGType
struct CTMRG{SVD<:TensorKit.OrthogonalFactorizationAlgorithm} <: AbstractCornerMethod

Stores the parameters for the corner transfer matrix renormalization group (CTMRG) boundary algorithm.

Fields

  • bonddim::Int64: The bond dimension of the boundary.

  • maxiter::Int64: Maximum number of iterations.

  • tol::Float64: Convergence tolerance.

  • verbose::Bool: When true, will print algorithm convergence progress.

  • ptol::Float64: Tolerance used in the pseudoinverse.

  • svdalg::TensorKit.OrthogonalFactorizationAlgorithm: Algorithm used for the SVD. Either TensorKit.SVD() or TensorKit.SDD().

  • randinit::Bool: If true, intialize with random tensors.

Constructor

CTMRG(; bonddim, maxiter=100, tol=1e-12, verbose=true, ptol=5e-8, svdalg=TensorKit.SVD(), randinit=false)
source
TensorRenormalizationGroups.CornerMethodTensorsType
struct CornerMethodTensors{C<:Corners, E<:Edges, P<:TensorRenormalizationGroups.Projectors, N<:(AbstractUnitCell{G, ElType} where {G, ElType<:TensorKit.AbstractTensorMap})}

Concreate struct containing tensors required for a corner method. Fields are not public. Tensors can be accessed using the field getters corners and edges.

source
TensorRenormalizationGroups.CornerMethodRuntimeType
struct CornerMethodRuntime{T<:CornerMethodTensors, S<:TensorRenormalizationGroups.CornerSingularValues} <: AbstractRenormalizationRuntime

Runtime state of a corner method renormalization algorithm. Fields are not public. Tensors can be accessed using the field getters corners and edges.

source

TRG

TensorRenormalizationGroups.TRGType
struct TRG{T<:TensorKit.TruncationScheme} <: AbstractRenormalizationAlgorithm

Stores the parameters for the tensor renormalization group (TRG) coarse graining algorithm.

Fields

  • trunc::TensorKit.TruncationScheme: The TruncationScheme used during the SVD step. See TensorKit.TruncationScheme and TensorKit.tsvd for more details.

  • maxiter::Int64: Maximum number of iterations.

  • tol::Float64: Convergence tolerance.

  • verbose::Bool: When true, will print algorithm convergence progress.

Constructor

TRG(; trunc, maxiter=20, tol=1e-12, verbose=true)
source
TensorRenormalizationGroups.TRGRuntimeType
struct TRGRuntime{AType, SType} <: AbstractGrainingRuntime

Runtime objects containing state of a TRG algorithm. The current cumulative value of the contraction can be obtained using the field :

Fields

  • tensors::Any: Coarse-grained tensors at the current stage of the algorithms runtime.

  • svals::Any: Singular values used for computing convergence tolerance.

  • cumsum::Matrix{Float64}: The current cumulative value of the contraction with respect to each tensor in the unit cell.

source