lattice / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
https://lattice.github.io/quda
Other
287 stars 94 forks source link

CPS staggered phase in QUDA is different from CPS and Chroma's convention. #1408

Closed SaltyChiang closed 10 months ago

SaltyChiang commented 11 months ago

We can choose three different conventions while using staggeredPhaseQuda to apply the staggered phase to a gauge field. QUDA_STAGGERED_PHASE_CPS should apply the CPS software's staggered phase, which is also chosen as default by Chroma.

CPS' and Chroma's implementations can be found here, and I believe they are applying phases like $\psi^\prime(x,y,z,t)=\gamma_1^{x}\gamma_2^{y}\gamma_3^{z}\gamma_4^{t}\psi(x,y,z,t)$.

But in QUDA with QUDA_STAGGERED_PHASE_CPS, it looks like the phases are $\psi^\prime(x,y,z,t)=\gamma_1^{x+1}\gamma_2^{y}\gamma_3^{z}\gamma_4^{t}\psi(x,y,z,t)$, and are different from the implementations above.

maddyscientist commented 10 months ago

@SaltyChiang this is likely just a bug that I introduced. There's no current users of the QUDA_STAGGERED_PHASE_CPS when interfacing with QUDA, so we likely just missed this.

While you could just file a PR with the fix (not including the changes in #1409 while discussion is ongoing there)?

SaltyChiang commented 10 months ago

1409 closes the issue as it removes QUDA_STAGGERED_PHASE_CPS enum.