Computing and contracting
TensorRenormalizationGroups.Renormalization — Typestruct 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 contractnetworkwith.network::AbstractUnitCell: AnAbstractUnitCellrepresenting the network of tensors to be contracted.runtime::AbstractRenormalizationRuntime: The runtime object corresponding toalg.info::TensorRenormalizationGroups.ConvergenceInfo: Convegence info for this renormalization instance.initial::AbstractRenormalizationRuntime: Adeepcopyofruntimecalled 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.
TensorRenormalizationGroups.renormalize! — Functionrenormalize!([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.
TensorRenormalizationGroups.continue! — Functioncontinue!(problem::Renormalization) -> Renormalization
Allow problem to continue past the termination criteria.
TensorRenormalizationGroups.reset! — Functionreset!(problem::Renormalization) -> Renormalization
Reset the convergence info of problem.
TensorRenormalizationGroups.recycle! — Functionrecycle!(
problem::Renormalization,
network
) -> Renormalization
Call reset! on problem, and set the elements problem.network to that of copy(network)
TensorRenormalizationGroups.restart! — Functionrestart!(problem::Renormalization) -> Renormalization
Restart the algorithm entirely, returning the tensors to their initial state.
TensorRenormalizationGroups.contract — Functioncontract(problem::Renormalization) -> AbstractUnitCellContract around each tensor in problem.network using the boundary specified in problem, returning a unit cell of the values.
contract(network::AbstractArray, boundary::Union{Renormalization, AbstractBoundaryRuntime}) -> AbstractArrayContract around each tensor in network using boundary, returning an array of the values.
contract(problem::Renormalization, i1, i2) -> Number
contract(network::AbstractArray, boundary::Union{Renormalization, AbstractBoundaryRuntime}, i1, i2) -> NumberPeforming 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.