Closed kostrzewa closed 5 years ago
At least, my current guess is that that is the problem...
I'm pretty confident that the propagators are fine because tmLQCD's own residual check comes out correct.
I don't see any functionality to perform halo-exchange on just one of the checkerboards. Is it sufficient to add to the loops in spinor_field_lexic2eo two further small loops to attach RAND/2 pieces beyond the VOLUME/2 index? Not quite sure what the halo layout is in CVC...
actually, I've found the xchange_eo_field
function, but I've also realized that the hopping matrix should do what is necessary.. so it's not the halo exchange.
What about normalisation? The propagator that tmLQCD spits out is kappa-normalised. As far as I can see, cpff_invert_contract
currently ignores this...
The residual checks in
cpff_invert_contract
fail because, even if I add halo-exchange for the spinor field incheck_clover_residual
, the checkerboarded spinors obtained viaspinor_field_lexic2eo
do not have halos. As a result, the application ofQ_clover_phi_matrix_eo
is not correct and the source is not reproduced.I don't see any functionality to perform halo-exchange on just one of the checkerboards. Is it sufficient to add to the loops in
spinor_field_lexic2eo
two further small loops to attach RAND/2 pieces beyond the VOLUME/2 index? Not quite sure what the halo layout is in CVC...