qcdcode / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
http://lattice.github.com/quda
Other
2 stars 0 forks source link

checking the clover inversion for ndeg twisted clover #9

Closed kostrzewa closed 3 years ago

kostrzewa commented 3 years ago

When dynamic clover is disabled (and in the call of loadCloverQuda in the tests), we need to ensure that the clover field is correctly inverted also in the non-deg case.

loadCloverQuda

187   if (dslash_type == QUDA_CLOVER_WILSON_DSLASH || dslash_type == QUDA_TWISTED_CLOVER_DSLASH                                            
188       || dslash_type == QUDA_CLOVER_HASENBUSCH_TWIST_DSLASH) {
189     if (compute_clover) printfQuda("Computing clover field on GPU\n");
190     else {
191       printfQuda("Sending clover field to GPU\n");
192       constructHostCloverField(hostClover, hostCloverInv, inv_param);
193     }
194     inv_param.compute_clover = compute_clover;
195     inv_param.return_clover = compute_clover;
196     inv_param.compute_clover_inverse = true;
197     inv_param.return_clover_inverse = true;
198 
199     loadCloverQuda(hostClover, hostCloverInv, &inv_param);
200   }

in lib/interface_quda.cpp, we need to ensure that the logic which sets CloverFieldParam does the right thing and that cloverInvert then too does the right thing.

kostrzewa commented 3 years ago

seems to work fine as the inverse as applied by the test function ndegTwistCloverGamma5 in the test of the two-flavour DiracTwistedCloverPC::Dslash (symmetric, dagger) matches what is done in the NdegTwistCloverApply kernel when dynamic_clover is enabled.