-
Notifications
You must be signed in to change notification settings - Fork 128
Exp for fermionic tensors 1188 #1661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Looks like my altered check for the indices of |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1661 +/- ##
==========================================
+ Coverage 81.01% 81.02% +0.01%
==========================================
Files 59 59
Lines 4629 4638 +9
==========================================
+ Hits 3750 3758 +8
- Misses 879 880 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Updated this PR today with a slight rewrite that takes the ordering of the input indices (to I have a PR ready along similar lines for the |
Just to clarify, a user can input |
|
Good question. Yes if s1 and s2 happen to be "swappable" meaning they have identical spaces, just different ids and possibly different tags, then that input is allowed and should do the right thing mathematically. I think it would be equivalent to performing a 'swap gate' on one side of the tensor and then exponentiating the resulting tensor. In practice, if the inputted tensor is Hermitian in the more natural (s1',s2'), (dag(s1), dag(s2)) pairing (so s1' paired with dag(s1), s2' paired with dag(s2)) then I believe the other input will ruin the Hermitian property so it might be a more sketchy case for |
|
I mention that Hermitian case because |
|
One potentially confusing thing about the current interface is that while a correct ordering of the input indices is I just mention that because users should be careful to understand that the input to |
|
Thanks for the clarification, all of that makes sense. |
|
This looks reasonable to me, ready to merge? |
Description
Fix the
expfunction for fermionic ITensors, by bringing the indices into a canonical ordering(i',j',k', dag(k), dag(j), dag(i))with theOutindices ordered first, and then temporarily turning off the fermion system for the remainder of theexpoperation.Fixes #1188
Issue #1188 and the included unit test give a good demonstration of the previous behavior and new behavior.
Checklist:
using JuliaFormatter; format(".")in the base directory of the repository (~/.julia/dev/ITensors) to format your code according to our style guidelines.