GRHydro con2prim is not a projection

Issue #1752 new
Roland Haas created an issue

For proper functionality Carpet requires that the MoL_PostStep group is a projection, that is applying it twice in a row may not change values. This is the assumption that goes eg into restriction but also into checkpoint recovery where MoL_PostStep runs on the current timelevel just after recovery. Because of this recovering a checkpoint with GRHydro active is not restoring the simulation to a bitwise identical state to what it was when writing a checkpoint.

The best solution would be to make GRHydro no longer use the "old" primitives as an initial guess which would also reduce the number of SYNCs required.

Keyword: GRHydro

Comments (2)

  1. Frank Löffler
    • removed comment

    From a design and programming standpoint I agree. However, did you try this? I am sure you are aware: the idea behind using the old solution is to not only find the new solution faster since the old values are most likely close to the new ones, but I can imagine cases in which starting from "some initial value" might actually fail to converge, while it might not when using a better initial guess.

    A possible, and already discussed method would be to not overwrite the initial guesses. However, for that to work one would need more memory, either to copy the old primitive guesses beforehand, or to solve into temporary storage before moving that into the primitive storage later. We used that to have the code try different con2prim routines without destroying the initial guesses some years back.

  2. Roland Haas reporter
    • removed comment

    I am thinking of the con2prim method that Wolfgang Kastaun implemented in the current WhsikyThermal (http://arxiv.org/abs/1306.4953) which I am told works well and does not rely on an initial guess.

    Keeping around the initial guess would also work. I think the memory costs are not that high since you don't need copies of all primitives, only the combinations that go into con2prim as an initial guess (which should be at most 3 scalars for the 3d Newton-Raphson inversion).

  3. Log in to comment