On 15 Nov 2010, at 17:46, Roland Haas wrote:
Testsuites
- AHFinderDirect/AEILocalInterp: Carpet/mercurial with full grid
gives identical results on 1 or 2 processors, PUGH with bitant grid does not. This points to PUGHInterp to be th culprit.
However Ian sees differences when using Multipole and Carpet as well (for 32 processors). This points to the symmetry handling in AEILocalInterp being the culprit.
Erik found the source of the Multipole problem, and it was unrelated. The problem was that Multipole uses Hermite polynomial interpolation by default which requires 3 ghost zones, but the tests were being run with 2. This leads to AEILocalInterp not having enough points to interpolate with a centered stencil when close to an interprocessor boundary. In such cases, AEILocalInterp silently off-centres the interpolation stencil, leading to a different interpolation error, though still of the correct order.
I have modified Multipole so that it disables this off-centering by default; this should allow such problems to be identified more easily. I have also modified the test suites to use 3 ghost zones, and they now pass on 32 processes, in addition to the 1 and 2 process tests that were passing before.