[Carpet] Carpet output
Erik Schnetter
schnetter at cct.lsu.edu
Wed Oct 11 17:34:01 CEST 2006
On Oct 11, 2006, at 09:53:09, Giovanni Corvino wrote:
> Hi everybody, I have one question on the way Carpet3 saves HDF5
> output.
> Working with the visulaization tools of GianMario we found that my run
> with 5 refinement levels did not save the data of every refinement
> level
> at each iteration.
>
> These are my parameters:
>
> coordbase::xmin = 0 #
> coordbase::xmax = 72.0 #
> coordbase::ymin = 0 #
> coordbase::ymax = 72.0 #
> coordbase::zmin = 0 #
> coordbase::zmax = 72.0 #
>
> coordbase::dx = 1.6 #
> coordbase::dy = 1.6 #
> coordbase::dz = 1.6 #
>
> carpetregrid::coordinates = "[
> [ ([0,0,0]:[25.6,25.6,25.6]:[0.8,0.8,0.8]) ],
> [ ([0,0,0]:[15.2,15.2,15.2]:[0.4,0.4,0.4]) ],
> [ ([0,0,0]:[8,8,8]:[0.2,0.2,0.2]) ],
> [ ([0,0,0]:[4,4,4]:[0.1,0.1,0.1]) ]
> ]"
>
> carpetregrid::outerbounds = "[
> [ [[0,1],[0,1],[0,1]] ],
> [ [[0,1],[0,1],[0,1]] ],
> [ [[0,1],[0,1],[0,1]] ],
> [ [[0,1],[0,1],[0,1]] ]
> ]"
>
> carpet::max_refinement_levels = 5
> carpetregrid::refinement_levels = 5
>
> carpet::prolongation_order_space = 3
> carpet::prolongation_order_time = 2
> carpet::buffer_width = 8
>
> driver::ghost_size = 2
>
> carpet::enable_all_storage = no
> carpet::init_3_timelevels = no
> MoL::initial_data_is_crap = yes
> adm_bssn::timelevels = 3
> admconstraints::constraints_persist = yes
>
> I save HDF5 every 100 iterations and we noticed that the first saved
> iteration had all the rl as the 5th, the 9th, 13th and so on. The
> iterations between these have data only of the finest levels, in
> particular the second and the fourth have only rl 2,3 and 4, while the
> 3rd has rl 3 and 4.
> This same behaviour is not present in a run with 3 rl.
>
> The question is: is this behaviour normal?
Carpet takes different time step sizes on different levels.
Normally, each level takes time step sizes twice as large as the next
finer level. For that reason, many people prefer to output data at
iteration numbers that are powers of two, because this ensures that
all levels are at the same time. The exact synchronisation depends
on the parameters Carpet::max_refinement_levels and the number of
active levels.
Yes, this behaviour is expected. If you output data at an iteration
which is skipped by a level, then there are no data for that level at
that time. Therefore Carpet chooses to not output that level. It
would be possible to add an option to output that level anyway, but
you would then get output from a different, later iteration, which
would be confusing.
Another, more complicated solution would be to interpolate data in
time. This would be more complicated to implement, but is in many
cases what people expect, e.g. if smooth movies should be produced.
Of course, such time interpolation can introduce artefacts of its own.
It is also possible to deactivate the subcycling in time, but I don't
know whether this has been used in production mode recently.
Is outputting the data every 64 or 128 iteration sufficient for your
purposes?
-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/20061011/9c31b719/attachment.pgp
More information about the developers
mailing list