Closed donnaaboise closed 6 years ago
The issue does not have anything to do with the indirect neighbor exchange, since the difference already occurs when running with 2 processors.
Differences first occur at corners at coarse/fine interfaces.
Problem was that some work has to be done before sending local patches on proc border to remote processors. Coarse grid regions on the processor boundary must be filled. They were filled in the async case, but not in the sync. case. Simple to move the communication call after these coarse grid cells on the boundary have been filled.
Async routine shows bitwise equality for runs on different processor counts, whereas synchronous algorithm shows differences. Figure this out!