MILC interface: Exact current#1633
Open
leonhostetler wants to merge 23 commits into
Open
Conversation
maddyscientist
approved these changes
May 26, 2026
Member
maddyscientist
left a comment
There was a problem hiding this comment.
This looks good to me. I'll leave @weinbe2 to comment on the MILC interface specifics. I've left a couple of comments.
Member
|
Thanks for the tweaks @leonhostetler. I've left a couple of non-essential comments that might be nice to update if you make another push. @weinbe2 any thoughts before we merge? |
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 the second and final PR in the series to enable exact current calculations for HVP in the MILC/QUDA interface. The previous PR was #1590 .
Changes:
Adds a new MILC interface function,
qudaExactCurrent, inlib/milc_interface.cpp. This computes the exact low-mode contribution to the current densities needed for HVP current calculations.Implements eigenvalue shifting in the MILC interface for preserved deflation spaces. Previously, when using a preserved deflation space across multiple solves, the eigenvalues were recomputed each time the mass changed. With this update,
computeEvalsis called only once, during the first solve. The resulting zero-mass eigenvalues are cached and shifted as needed for subsequent masses.This avoids many unnecessary mat-vecs and greatly reduces output volume: eigenvalues are now printed only once instead of once per solve, which previously could produce O(10^6) lines of eigenvalue output in a typical production run.
Makes
lib/eig_block_trlm.cppandlib/eig_trlm.cppslightly more verbose by printing progress notifications every 10th or 100th Lanczos step. On production-size lattices, eigensolves can otherwise run for more than an hour without any visible progress, which can make a normally progressing job appear to be stalled.Testing: