Closed mofeing closed 8 months ago
All modified lines are covered by tests :white_check_mark:
:exclamation: No coverage uploaded for pull request base (
develop@be2e2e9
). Click here to learn what that means.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
This PR starts the process of rewriting current
TensorNetwork
type hierarchy on more OOP-like classes. It doesn't do all the things we would like from it yet, but we need some other changes and this PR merges the minimum changes in order to proceed with them.The main change is that we get rid of the "field-inheritance hack using
NamedTuple
", which although interesting, it doesn't scale well. It also redefines what anAnsatz
is and turnsBoundary
andPlug
into traits.Things yet to do after this PR
TensorNetwork
internals to encode the dual graph of the Tensor Network #104QuantumTensorNetwork
#105Ansatz
subtypes as special cases of graph layers #106Ansatz
IS the graph layer (e.g. a MPS and a MPO have the same "ansatz" and graph layer)Infinite
plug trait #107TensorNetwork
hierarchyClasses.@class
Classes.jl
fork or build on top of other packages #108