Skip to content

Conversation

@chaoos
Copy link
Contributor

@chaoos chaoos commented Nov 6, 2023

  • Adds interface openQxD <--> QUDA
  • Adds capability for C* boundaries in 1,2 or 3 spatial directions
  • Fixed CPU reordering
  • Adds openQCD gamma matrix basis (and basis transformations)
  • Adds order class for spinors
  • Adds order class for clover field (U(1) clover field is transfered from openQxD)
  • Adds order class for gauge field
  • Changed all the comments in quda.h to C89 style comments
  • Rebased on your current develop branch

mathiaswagner and others added 30 commits September 26, 2022 12:39
The rank formula was updated to the openQxD layout: rank = coords[0]*dims[1]*dims[2]*dims[3] + coords[1]*dims[2]*dims[3]  + coords[2]*dims[3] + coords[3]
The forloop was corrected (typo in i counter)
corrected to i<=3
trying to manually couple indexing correctly
Currently, the reordering is done inside OpenQxd
Probably it will continue to work for spinor fields... To be confirmed..
In check3, only half the sites are loaded onto quda (odd ones on whole lattice), then in the save function, only the odd ones in the first half get reloaded!
@chaoos
Copy link
Contributor Author

chaoos commented Sep 11, 2025

are there ever cases where OpenQ*D would need both recon-13/9 and recon-12/8 simultaneously?

Originally yes, but I saw that it makes stuff increasingly complicated. So I added a new Cmake flag QUDA_QCD_PLUS_QED=ON/OFF as you proposed to build Wilson ops with QUDA_RECONSTRUCT_NO/8/12 if set to OFF (the default) or QUDA_RECONSTRUCT_NO/9/13 if set to ON.

See 452f6e6

@weinbe2
Copy link
Contributor

weinbe2 commented Oct 21, 2025

I'm happy with this PR from a visual standpoint. I still need to do build/run tests, in particular with QCD+QED, but that's more to make sure nothing unexpectedly broke, there are a few things I'd like to try beyond what's covered by our CI. This is awesome work, @chaoos .

Based on an offline convo, I'll take on updating the Wilson dslash tests to properly test recon-13 and -9 in a separate PR. This would be done by generating random U(3) instead of SU(3) fields. Since I've had to deal with this relatively recently with HISQ (as is relevant for long links) this should be relatively straightforward for me.

@maddyscientist , I believe you wanted to do some further review.

Copy link
Member

@maddyscientist maddyscientist left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @chaoos for all the work you have done and going through the review process to get this in shape to merge.

I have one small comment (regarding enabling strict prototyping for the C interface test), but beyond that, this is good to go. Approving.

@weinbe2
Copy link
Contributor

weinbe2 commented Oct 30, 2025

Thank you @chaoos for all the work you have done and going through the review process to get this in shape to merge.

I have one small comment (regarding enabling strict prototyping for the C interface test), but beyond that, this is good to go. Approving.

I'll take point on addressing the strict prototypic for the C interface as part of updating the unit tests to explicitly check recon-9/13 when QCD+QED is enabled, I'm happy to merge this. Thanks @chaoos for all of your work (and patience when I was slow to review it)!

@weinbe2 weinbe2 merged commit c75b77c into lattice:develop Oct 30, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants