Modify dirac[improved]staggered.cpp to use the full operator for calling MdagM as opposed to separate even/odd parts. In theory this does the right thing:
Dslash(*tmp1, in, QUDA_INVALID_PARITY);
DslashXpay(out, *tmp1, QUDA_INVALID_PARITY, in, 4*mass*mass);
But Dslash and DslashXpay assume single-parity fields, so we need a workaround in terms of calling Apply[Improved]Staggered directly.
Investigate adding support in invertMultishiftQuda for the full parity staggered operator. There's no inherent reason why this can't be done, it's probably just a plumbing expedition.
MdagM
as opposed to separate even/odd parts. In theory this does the right thing:But
Dslash
andDslashXpay
assume single-parity fields, so we need a workaround in terms of callingApply[Improved]Staggered
directly.invertMultishiftQuda
for the full parity staggered operator. There's no inherent reason why this can't be done, it's probably just a plumbing expedition.