Open martin-ueding opened 6 years ago
Also all four of the Dslash tests fail, it seems to be that the actual Dslash operation returns zero, or that the QDP version always returns zero.
I have now made a change to expect_near
such that the first element is always the control. Therefore it is now easy to see that all the QDP++ versions return zero vectors. How did that happen? The QDP++ installation on my laptop did not change and also the build that I created for Travis CI should not have changed, it is always downloaded from my website.
Perhaps it is just some weird effect from ccache, though I would hope that this would not happen. I am rebuilding on Travis CI to check whether that is the issue.
So perhaps it is some build problem regarding linkage?
Most of the tests are working again. The issue was simply that my expect_near
function, when called with HybridSpinor
instances, would always call HybridSpinor::unpack()
, which overwrote the QDP++ part. This is now fixed.
Now there are issues with the TM clover linear operator, though Dslash and Achimbdpsi work.
I have just switched the order of the two tests. It is still the second one which fails. So somehow the test harness does something which then makes gaussian
fill the spinors with garbage.
Now there is an if
-else
such that only one of them gets run, preferably the one with antiperiodic boundary conditions in time. But we will have to look into this.
I currently make Bartek's work in the
tm_functor_merge_two-flav-mshift
ready for merge intodevel
. The curious errors with undefined types__m128d
have disappeared. Now the issue is that the Multi-CG fails, but only with antiperiodic boundary conditions.In this issue I want to describe my progress, perhaps one of you has some hunch what this actually is.
The Multi-CG test in
tests/testMInvCG.cc
uses myRandomGauge
class and theHybridSpinor
:For some reason, this works just fine for
t_bc = 1
. When there ist_bc = -1
, thehs_source
spinor only containsinf
in both the QDP++ data structure and the QPhiX data structure. Thegaussian
function acts on the QDP++ spinor, so I should not have broken anything there.I put in some output and assertions that just check this:
For the periodic boundary conditions I get sensible values:
For the antiperiodic boundary conditions I just get junk:
To me it looks like the random number generator would only produce junk. However, since it just works fine in the periodic case, I am rather confused by this. I will have to further investigate.