[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