Carpet no longer has an implied sync() call after restriction

Create issue
Issue #1381 closed
Roland Haas created an issue

I just pushed two tests for the higher order restriction code into CarpetProlongateTest. What I did was to generate the test data before the commit that removes the extra sync, then save the data and apply as the test data on top of the master branch. I also verified that indeed I get the same restricted data across an interprocessor boundary (ie in the z direction of the tests).

Surprisingly I actually do since in fact the schedule.ccl file in CarpetProlongateTest does not apply boundary conditions are SYNC in MoL_PostStep so that I should have gotten test failures.

This would seem to indicate that either (a) I don't have my test setup correctly (always possibly) or (b) there is yet another SYNC hidden somewhere inside of CarpetLib/Carpet.

On the other hand, the current "_rest" tests in CarpetProlongateTest now fail for me unless I re-add the sync. Adding a dummy routine and SYNC to MoL_PostStep which I think is the correct thing to do does not help possibly because the SYNC implies a prolongation while a low-level sync call does not (and which is where I see differences). This of course would argue against (b) above.

Attached please find my code change a a plot of diffference.z.asc for test_cc_rest_o3 before and after the change.

I do not necessarily think that this is a bug, it certainly is unexpected though.

Keyword:

Comments (3)

  1. Log in to comment