ITensor / ITensor/ITensorNetworks.jl

Define `tree_orthogonalize(tn::ITensorNetwork, vertex[, distance=nv(tn)])`

Open
#20 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
128
Forks
23
Avg merge
4d 7h
Merged PRs (30d)
7

Description

Define tree_orthogonalize(tn::ITensorNetwork, vertex[, distance=nv(tn)]) for performing a tree orthogonalization of a tensor network, as defined in Section II C and Fig. 3 of https://arxiv.org/abs/2206.07044 (referred to as the tree gauge in that reference). This would create a spanning tree of the tensor network with a source node/vertex vertex and orthogonalize the resulting tree using QR/SVD towards that source vertex.

distance would define a neighborhood around the source vertex, which could be implemented using Graphs.neighborhood(tn, vertex, distance).

Note that this is already used within the apply/tebd function when ortho=true, but it doesn't currently support an optional distance, so implicitly orthogonalizes all tensors in the network which isn't necessary in general. See the implementation here:
https://github.com/mtfishman/ITensorNetworks.jl/blob/4c108fe34cdf6135ca4ecb2a8d7fa747d1ca9c1e/src/abstractitensornetwork.jl#L368

Also, some options should be given for creating the spanning tree which may take into account the bond dimensions as weights, or passing a custom spanning tree function.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/abstractitensornetwork.jl around the apply/tebd implementation linked in the issue, where ortho=true currently performs orthogonalization. Read Section II C and Fig. 3 of the referenced paper, then inspect Graphs.neighborhood for the distance behavior. Done means adding the proposed tree_orthogonalize interface with distance support and options for spanning-tree construction.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.