[ET Trac] [Einstein Toolkit] #1256: scheduling MoL_PostStep in Post_Recover_Variables
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Fri Feb 15 14:51:53 CST 2013
#1256: scheduling MoL_PostStep in Post_Recover_Variables
---------------------+------------------------------------------------------
Reporter: rhaas | Owner:
Type: task | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Resolution: | Keywords: MoL
---------------------+------------------------------------------------------
Comment (by rhaas):
Con2Prim is an oddball routine that does not really behave nicely
unfortunately. Depending on the EOS used it might even modify the
conservatives.
With the MoL scheduling as at is currently, I don't think that Con2Prim
can run in PostStepModify. The reason is that Con2Prim needs to run in
postregrid where currently poststepmodify does not seem to run.
Essentially con2prim needs to run whenever the conservative varialbles
(ie. dens, scon, tau, namely GRHydro's evolved variables change). In that
sense it is similar to say the adm constraints. The problem is that
calling con2prim multiple times changes the result.
For not calling mol_poststep in post_recover_variables the argument is
that we want to restore the state of the simulation bit identical to what
it was at checkpoint time. So if we recompute something (admbase
variables, constraints, primitives) we must be sure that we will get
precisely the same values as we got at checkpoint time.
Also since we already know that we cannot call MoL_PostStep on the past
timelevels (since SYNC does not work), calling it on the current timelevel
only is strange. Any constraints that might need to be applied should
already have been applied at the time the checkpoint was written.
To my manner of thinking, checkpoint/restore should not call any
additional functions but just restore the simulation to precisely the
state it was in when it was checkpointed, so if the constraints/quantities
that MoL_PostStep enforces were wrong at checkpointing time, then they
should still be wrong at restore time (since there are routines that run
between mol_poststep and the point where the simulation is checkpointed
and that might modify the variables). Variables should be either
checkpointed or if one wants to be clever and recompute them after
checkpointing then the routine to recompute should be scheduled explicitly
in POST_RECOVER_VARIABLES (based on the argument that the thorn apparently
wants to know about checkpointing so can be expected to take special
measures).
Is there a case where we *require* MoL_PostStep because it is the only way
to fill in data (when recovering on a different number processors?)? Or
was it put there just to be sure? Note that it was not always scheduled in
POST_RECOVER_VARIABLES, this was done in
changeset:137/CactusNumerical/MoL.
{{{
Schedule MoL_PostStep also at post_recover_variables. This ensures
that boundary conditions, ADM variables etc. are correct after
recovering.
}}}
and that the comment in the schedule file says
{{{
##############################################################
### Schedule the PostStep parts after recovery ###
### so that symmetries are automatically done correctly. ###
### We may want to change this later as it could be ###
### expensive, but it's simplest for the moment. ###
##############################################################
}}}
Currently we checkpoint the ADMBase variables.
Currently the recovery routine reads in everything incl. ghost points (and
ghost points are checkpointed). Currently it is possible to have
space_mask and grhydro::atmosphere_mask differ in ghost zones and interior
points (since GRHydro uses it to keep track of some information of values
in eg densrhs which is only valid in the interior anyway and so never
bothers to synchronize it). Adding the SYNC makes it possible to get bit
identical recovery from checkpoints (if one leaves out mol_poststep).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1256#comment:2>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list