[ET Trac] [Einstein Toolkit] #1239: AHFinderDirect uses incorrect origin_* upon recovery when horizon was never found before
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Feb 1 01:28:18 CST 2013
#1239: AHFinderDirect uses incorrect origin_* upon recovery when horizon was never
found before
-----------------------------------------+----------------------------------
Reporter: reisswig@… | Owner:
Type: defect | Status: review
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Resolution: | Keywords: AHFinderDirect
-----------------------------------------+----------------------------------
Comment (by anonymous):
Replying to [comment:1 rhaas]:
> Three comments:
> * there is commented out code in the commit which might as well be not
committed :-)
> * this code seems to pose the danger of ps.origin() never being called
when both h_found_flag[horizon_number-1] == 0 and
(ah_really_initial_find_flag[horizon_number-1] . Since before ps.origin()
was always called, I wonder if this might cause it to remain initialized.
I think the new behavior is correct. If a horizon has never been found,
then its ps.origin is just at whatever was there in the initial par-file
(it got set to this value initially). If one wants to change the origin
parameter upon recovery (the parameter is steerable= recovery!), this new
steered parameter value would never be used!
This is desasterous when one decides to try to find a horizon elsewhere.
Remark: I picked the condition such that it matches the condition for when
the initial_guess_ellipsoid routine is called (which is causing all the
trouble).
Once a horizon was found, one could argue that instead of using the
parameter value of origin_*, it should take the origin value that was
stored in the checkpoint.
Actually, I think this behavior is more correct, because without
pretracking or tracking from a grid scalar, we rely on the fact that the
old origin is not too far from the anticipated new origin (at least I
believe that this is the case). If we would take the value from the
parfile upon recovery, the user would have to set the value according to
where the horizon was found the last time! This is clearly to much of a
hassle.
> * finally the code in the else branch uses horizon_number instead of
horizon_number-1
Yes, but not for parameters. Jonathan starts counting from 1.
> A general question: This seems to be an instance of a thorn that makes
copies of Cactus' parameters (or quantities computed from them) and then
checkpoints them. This seems to interfere badly with Cactus' ability to
change parameter values on recovery. My question is if there is use in
such thorns trying to emulate the logic in Cactus as to when to update
values? I believe the login in Cactus goes something like this: at
recovery the values for parameters are those stored in checkpoints unless
it is explicitly set in the new parameter file and this setting differs
from the one in the original parameter file used at checkpoint time in
which case values from the new parameter file are used. Is this correct?
Do we want to implement something similar in AHFinderDirect (I assume this
to involve checking how often a parameter has been set at
POST_RECOVER_VARIABLES time).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1239#comment:3>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list