[ET Trac] [Einstein Toolkit] #1053: CarpetIOHDF5: it doesn't honor out3D_every parameter

Einstein Toolkit trac-noreply at einsteintoolkit.org
Tue Aug 21 10:29:38 CDT 2012


#1053: CarpetIOHDF5: it doesn't honor out3D_every parameter
----------------------+-----------------------------------------------------
  Reporter:  bmundim  |       Owner:  eschnett                
      Type:  defect   |      Status:  new                     
  Priority:  major    |   Milestone:                          
 Component:  Carpet   |     Version:                          
Resolution:           |    Keywords:  CarpetIOHDF5 out3D_every
----------------------+-----------------------------------------------------

Comment (by bmundim):

 I see. I understand the problem better now but I have to say that I find
 the so stated behavior of
 out_every extremely misleading. Take for example the definition at IOUtil
 of out_every:

 {{{
 INT out_every "How often to do output by default" STEERABLE = ALWAYS
 {
    1:* :: "Every so many iterations"
   -1:0 :: "Disable output"
 } -1
 }}}

 that was what I took for granted! Every 128 iterations starting from 0 an
 output was supposed to be
 dumped in the example above! If we are using Carpet then we need to
 understand a bit of AMR and how
 Carpet deals with time index. Once we understand that then it is easy to
 choose the number of iterations
 such that every other coarse (or half coarse, as I have chosen in this
 example) time step is dumped. The
 way it seems to be implemented is very misleading, unfortunately.

 >To remedy this, Carpet now keeps track of when the last output occurred,
 and outputs anew if at least out_every iterations passed since then. In
 the above case, output would occur every 128 iterations, since 128 is the
 smallest multiple of 32 that is larger than or equal to 100. This is safe,
 but of course, people now don't like this because output may occur at
 unpredictable times...

 I don't think Carpet is tracking correctly when the last 3D output
 occurred from the checkpoint file
 (unless it is considering the checkpoint iteration as the last 3D output,
 what doesn't look right to
 me). In the example above Carpet should know that the last 3D output was
 at it=256, before the
 checkpoint iteration. However Carpet doesn't seem to recover that
 information from the checkpoint file
 correctly. It seems to consider it=262 instead as the last output and then
 pick up the new series of
 output from that iteration number. That doesn't seem correct to me at all.
 Also the 2D slice does work
 correctly as posted above, ie it does pick it=256 as the last output
 iteration number.

 In any case, adding the following to the par file avoids this problem:

 {{{
 IOHDF5::out3D_criterion = "divisor"
 }}}

 thanks!

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


More information about the Trac mailing list