Computing and contracting

TensorRenormalizationGroups.RenormalizationType
struct Renormalization{Alg<:AbstractRenormalizationAlgorithm, Net<:AbstractUnitCell, Run<:AbstractRenormalizationRuntime}

Concrete struct representing the state of a contraction algorithm of type Alg used to contract a network of type Net with runtime tensors of type Run.

Fields

  • alg::AbstractRenormalizationAlgorithm: The renormalization algorithm to contract network with.

  • network::AbstractUnitCell: An AbstractUnitCell representing the network of tensors to be contracted.

  • runtime::AbstractRenormalizationRuntime: The runtime object corresponding to alg.

  • info::TensorRenormalizationGroups.ConvergenceInfo: Convegence info for this renormalization instance.

  • initial::AbstractRenormalizationRuntime: A deepcopy of runtime called at construction.

Constructors

Renormalization(network::AbstractMatrix, alg::AbstractRenormalizationAlgorithm, [initial::AbstractRenormalizationRuntime])

A new instance of Renormalization is constructed by passing network and (optionally) an initial runtime object, as well as the chosen alg. If initial is specified, convertproblem will be called to attempt to make initial compatible with alg.

Renormalization(network::AbstractMatrix, problem::Renormalization)

Constuct a new instance of Renormalization using the algorithm and runtime from existing problem.

Warn

Renormalization will always be constructed using a copy of network, but not a deepcopy. That is, one can mutate the network struct using setindex! with out mutating the constructed Renormalization, but mutating the tensor elements themselves will propagate through to this struct.

source
TensorRenormalizationGroups.renormalize!Function
renormalize!([callback=identity,] problem::Renormalization; kwargs...)

Perform the renormalization defined in problem executing callback(problem) after each step and mutating problem in place. If verbose = false, top-level information about algorithm progress will be surpressed.

source
TensorRenormalizationGroups.contractFunction
contract(problem::Renormalization) -> AbstractUnitCell

Contract around each tensor in problem.network using the boundary specified in problem, returning a unit cell of the values.

source
contract(network::AbstractArray, boundary::Union{Renormalization, AbstractBoundaryRuntime}) -> AbstractArray

Contract around each tensor in network using boundary, returning an array of the values.

source
contract(problem::Renormalization, i1, i2) -> Number
contract(network::AbstractArray, boundary::Union{Renormalization, AbstractBoundaryRuntime}, i1, i2) -> Number

Peforming a multi-tensor contraction on the contiguous region network[i1, i2] using the boundary tensors from boundary specificed by i1 and i2. The arguments i1 and i2 are usual AbstractArray indices, however one must have length(i1), length(i2) == size(network). The former method contracts problem.network.

source