Skip to content

Commit

Permalink
Support conversion from ITensorNetwork to Quantum, TensorNetwork
Browse files Browse the repository at this point in the history
  • Loading branch information
mofeing committed Sep 10, 2024
1 parent e8fce55 commit eaf36ea
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion ext/TenetITensorNetworksExt.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
module TenetITensorNetworksExt

using Tenet
using ITensorNetworks
using ITensorNetworks: ITensorNetworks, ITensorNetwork, ITensor, siteinds, plev, vertices
const ITensors = ITensorNetworks.ITensors
const DataGraphs = ITensorNetworks.DataGraphs

Tenet.TensorNetwork(tn::ITensorNetwork) = TensorNetwork([tn[v] for v in vertices(tn)])

function Tenet.Quantum(tn::ITensorNetwork)
sitedict = Dict(
map(pairs(DataGraphs.vertex_data(siteinds(tn)))) do (loc, index)
index = only(index)
primelevel = plev(index)
@assert primelevel (0, 1)
Site(loc; dual=Bool(primelevel)) => Symbol(ITensors.id(index))
end,
)
return Quantum(TensorNetwork(tn), sitedict)
end

end

0 comments on commit eaf36ea

Please sign in to comment.