Open mtfishman opened 5 months ago
A comment on the representation of the symbolic TTN object:
Seems like this data structure could be a
DataGraph
with a graph structure matching theIndsNetwork
/TTN
graph structure and aSparseArrayDOK
stored on the vertices, where the number of dimensions is the degree of the graph and the elements areScaled{coefficient_type,Prod{Op}}
. Does that sound right to you?I suppose one thing that needs to be stored is the meaning of each dimension of the
SparseArrayDOK
on the vertices since you want to know which dimension corresponds to which neighbor. So interestingly the best representation may be anITensor
, or maybe a NamedDimsArray wrapping aSparseArrayDOK
, where the dimension names are the edges of the graph.
_Originally posted by @mtfishman in https://github.com/mtfishman/ITensorNetworks.jl/pull/166#discussion_r1589141729_
Regarding the data structure used in the svd_bond_coefs(...)
function:
This could be a
DataGraph
with that data on the edges of the graph.I also wonder if
Dict{QN,Matrix{coefficient_type}}
could be a block diagonalBlockSparseMatrix
where those matrices are the diagonal blocks and the QNs are the sector labels of the graded axes.
_Originally posted by @mtfishman in https://github.com/mtfishman/ITensorNetworks.jl/pull/166#discussion_r1589149589_
Followup to #116:
MatElem
andQNArrElem
with FillArrays.OneElement.determine_val_type
tocoefficient_type
.OpSum
coefficient type toFloat64
, require users to specifyOpSum{ComplexF64}
if they want that.OpSum
toMPO
conversion in ITensors: support multi-site operators, ensure sorting comparisons work and are implemented consistently with ITensors implementation, implement all relevant sorting w.r.t to traversal order of tree instead of site-labels to ensure compatibility with arbitraryvertextype
.ITensors
functions being used inttn_svd
likeITensors.determineValType
,ITensors.posInLink!
,ITensors.MatElem
, etc. toITensorNetworks.jl
and update their style. Functions likeITensors.which_op
,ITensors.params
,ITensors.site
,ITensors.argument
, etc. that come from theOps
module related toOpSum
shouldn't be copied over.calc_qn
outside ofttn_svd
.IndsNetwork
.