Conversation
VictorVanthilt
approved these changes
Apr 1, 2025
Member
VictorVanthilt
left a comment
There was a problem hiding this comment.
Great addition to the code! I like the new drawings of the derivative operators, they make it way easier to spot which of the operators you need and what you are exactly calculating without having to reverse-engineer the contraction using the @Plansor call.
Is there a definitive answer as to how much faster the new JordanMPO derivatives make things like DMRG?
leburgel
reviewed
Apr 7, 2025
Member
leburgel
left a comment
There was a problem hiding this comment.
Looks great! Left some comments, but nothing major.
Co-authored-by: Lander Burgelman <39218680+leburgel@users.noreply.github.com>
leburgel
approved these changes
Apr 7, 2025
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 quite a large refactor of the
derivativesobjects.In particular, I rewrote the hamiltonian derivatives to make use of the particular Jordan block structure, which leads to very large speedups, especially for nearest-neighbor Hamiltonians.
While on the topic, I also immediately specialized a blocktensor type for this Jordan block structure, mostly so this information is stored at the type level, and we don't have to assume that the MPOTensors have the correct properties.
Finally, I also noticed that the
SVDimplementation is a lot slower than theSDDone, so I made this accessible from the relevant algorithms, and restored the default toSDDeverywhere but in the Grassmann implementation. This might lead to spurious LAPACK errors again, but at least this can now be resolved by changing the settings.In principle this could do with some more documentation, but this might be left for a dedicated docs update session...