ITensorNetworks.jl
ITensorNetworks.jl copied to clipboard
A package with general tools for working with higher-dimensional tensor networks based on ITensor.
Define constructors like `mps(s)`, `mpo(s)`, `peps(s)`, etc. which construct `TTN` or `ITensorNetwork`s.
Use `external_inds` and `edge_inds`/`internal_inds` instead of `siteinds` and `linkinds`, or as alternative names through aliases.
Add tools for combining and uncombining all or some of the link/site indices of a tensor network. An interface I could imagine is the following for combining the link indices...
Move the `ITensors.MPS`/`ITensors.MPO` graph interface layer from https://github.com/ITensor/ITensorTDVP.jl/pull/43 into this package, once that PR is merged. An interesting question that hits on some limitations of Julia's subtyping system is that...
This is a good idea for a generic graph function. It is the complement of the edge boundary of a subgraph (https://en.wikipedia.org/wiki/Boundary_(graph_theory) and `boundary_edges` added in https://github.com/mtfishman/NamedGraphs.jl/pull/20). As we discussed,...
As a follow up to #30, add an interface for passing weights of a graph/tensor network to the graph partitioning backends, with good defaults for known types like `ITensorNetwork`/`IndsNetwork` and...
Define `broadcast` for `AbstractITensorNetwork` (subtypes).
What would be the desirable behavior for iterating over general `ITensorNetwork`s? In #18 I just defaulted to iterating over the `vertex_data` of the network, since currently concrete `AbstractITensorNetwork` subtypes only...
It would be interesting to see if we can get away with just having a `TreeTensorNetwork`/`TTN` type that is treated as an operator or a state depending on the context....