ITensor / ITensor/ITensorNetworks.jl
Define `tree_orthogonalize(tn::ITensorNetwork, vertex[, distance=nv(tn)])`
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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