[Carpet] CarpetIOHDF5 IOHDF5::out_dt semantics

Erik Schnetter schnetter at cct.lsu.edu
Mon Mar 12 23:09:26 CET 2007


On Mar 12, 2007, at 14:48:30, Jonathan Thornburg wrote:

> Hi, Thomas, greetings from Southampton,
>
> I've just discovered that when using CarpetIOHDF5, IOHDF5::out_dt
> has semantics which I find a bit peculiar.
>
> I'm using the darcs development version of Carpet from 24.Dec.2006,
> and CactusBase/IO* CVS-updated around the same time (the newest
> file timestamps in CactusBase/IO* are 7.Dec.2006).
>
> I started a run specifying
>   ActiveThorns = "CarpetIOHDF5"
>   IOHDF5::out_criterion = "time"
>   IOHDF5::out_dt        = 10.0
> This run went to cctk_iteration 6880 (cctk_time=215).  I wanted to get
> to cctk_time=1000, so I restarted from the last checkpoint, which was
> at cctk_iteration 6400 (cctk_time=200).  To reduce disk space usage,
> for the restart I specified
>   ActiveThorns = "CarpetIOHDF5"
>   IOHDF5::out_criterion = "time"
>   IOHDF5::out_dt        = 50.0
> I was expecting that the result would be HDF output every cctk_time=10
> up to t=210, then at 250, 300, 350, ... thereafter.  But according to
> hdf5toascii_slicer, the HDF5 files actually contain output at
> 0, 10, 20, 30, ..., 190, 200, 210, 260, 310, 360, 410, ... .
>
> That is, the semantics of  IOHDF5::out_dt  aren't "output any time
> cctk_time is an integral multiple of this time" but rather "output
> this much time past the last output, whenever that might have been".
>
> My first question is, is this as it should be?  (That is, is this
> a "feature" of CarpetIOHDF5, or a bug?

It is as it is intended.  Carpet remembers the time of the last  
output, and will output every 50 after that.  It doesn't round up or  
down to make the output times multiples of 50, although that could be  
possible, if people would prefer that.

> Continuing along, my restart run went to cctk_iteration 25696
> (cctk_time=803).  So, I restarted a 2nd time from a checkpoint done
> at cctk_iteration  25600 (cctk_time=800).  What seems odd to me is
> that, despite again specifying
>   ActiveThorns = "CarpetIOHDF5"
>   IOHDF5::out_criterion = "time"
>   IOHDF5::out_dt        = 50.0
> I did *not* get any output at t=800.
>
> Given the actual semantics of  IOHDF5::out_dt, what would I need to
> do to get HDF output at the time of a checkpoint?

Carpet remembers the time of the last output.  Since you did output  
at t=760, the next output will be at t=810, not t=800.  You can set  
out_dt=<very-small-number>, or set out_every=1; then it will output  
at that time (and every following iteration).  Setting out_dt=40  
should also do the trick.  A restart is nothing special for a  
simulation; the ideal is that you should not be able to tell that a  
restart has happened.

-erik

-- 
Erik Schnetter <schnetter at cct.lsu.edu>

My email is as private as my paper mail.  I therefore support encrypting
and signing email messages.  Get my PGP key from www.keyserver.net.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : /archives/developers/attachments/20070312/67e9b8ad/attachment.pgp 


More information about the developers mailing list