[ET Trac] [Einstein Toolkit] #1256: scheduling MoL_PostStep in Post_Recover_Variables

Einstein Toolkit trac-noreply at einsteintoolkit.org
Sat Feb 16 10:51:06 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 wolfgang.kastaun@…):

 For the thermal branch of Whisky, the situation is the following

 -C2P does not need an initial guess, when called with the same input, the
 output is always the same.
 -C2P has a certain accuracy (given by a parameter), since it uses
 numerical root finding. Because of this, and only because of this, it is
 not an exact projection operator. It is however close to beeing one.
 -C2P does not just compute primitives from conserved variables, but also
 checks for unphysical input and tries to correct it under certain
 conditions, or sets the result to nan. Disentangling those two
 functionalities is possible but would be a performance problem.
 -C2P is also responsible for setting the artificial atmosphere. This could
 be decoupled in theory.
 -C2P does not set any additional masks.

 Therefore, our requirement are

 -C2P should only be called when the conserved variables have been updated.
 -It should not be called twice.
 -If it is called twice in certain cornercases, this may under no
 circumstance depend on arbitrary factors like restarts.
 -Running it twice is not an accuracy problem, but it is bad for debugging
 because it prevents us from noticing other bugs that slighltly change
 results during restart.
 -During checkpointing, the primitives and conserved variables should just
 be read from checkpoint file, including ghost/boundary points. There is no
 need to run C2P again.
 -Regridding of the conserved vars should be regarded like evolution of
 them, and C2P has to be run to keep things consistent.

 I also don't see why checkpointing and regridding have to trigger the
 sheduling of the same routines. Both things are different and should be
 treated seperately. I support the view that checkpointing should just
 reload stuff from file. If there are variables that can be recomputed
 _exactly_, one can do so instead, but this should be an _explicit_
 optimization. The standard should be to save and restore.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1256#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list