-
Notifications
You must be signed in to change notification settings - Fork 22
Add full update bond environment and gauge fixing #203
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
Codecov ReportAll modified and coverable lines are covered by tests ✅
🚀 New features to boost your workflow:
|
The test failures are due to GitHub outage today. Tests relevant to the changes all pass. |
Do you know the reason on why the bond environment condition number is quite large for a physical state, but small for a random state? And why can QR decomposition help? |
I'm not sure I really have an explanation for the condition number of a physical state vs a random state. Speculation: It could be that for a random initial guess the gauge is just very bad, which affects the condition number more than the actual state it represents. Therefore it's not actually the state, but rather the gauging that makes this better, which is why the QR might help since that is a partial gauging procedure? |
@lkdvos Besides the issue with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good to me!
This PR adds the bond environment for nearest-neighbor full update, which is expressed using the CTM tensors. For the horizontal bond between sites at
[r, c]
and[r, c+1]
, the bond environmentenv
iswhere
XX = X' X
andYY = Y' Y
, andX
,Y
are Q-tensors (PEPSOrth
) obtained from_qr_bond
.However, this simple construction has two problems.
env
is not positive-definite, or even Hermitian.test/bondenv/benv_fu.jl
demonstrate this with an iPEPS obtained from Hubbard model simple update.Thus this PR also implements a "gauge fixing" algorithm introduced in PhysRevB.90.064425 (and applied to FU in PhysRevB.92.035142; it can also be applied to NTU later), which does the following:
env
with(env + env') / 2
; in addition, eigen-decomposition is used to remove possible small negative eigenvalues ofenv
to make it semi-positive-definite.env
and greatly reduce its condition number (to ~1e+1).