ITensorMap module - use TensorKit as a backend#75
Draft
lkdvos wants to merge 5 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a WIP implementation of using TensorKit as a backend for TensorNetworkQuantumSimulator.
There are a bunch of things that are left to discuss and look at, and a number of design decisions we could revisit, but I felt like it might be nicer to have a look at what is required first.
This is heavily assisted by Claude to identify the parts and pieces necessary to make this work, so give me a bit to go over and actually properly implement a number of these features.
For now I opted to have the least amount of invasive changes to the main software, and keep the core "ITensorKit" module separate with the heavier code work, but I think in a perfect world I would consider splitting ITensorKit as its own package, and gradually make some changes to the core library here to use the more advanced features of TensorKit that allow avoiding a number of intermediate allocations, as well as some of the more hacky ways this library works around symmetries.