[Carpet] "proper nesting" in the presence of symmetries

Erik Schnetter schnetter at cct.lsu.edu
Fri Jun 16 15:59:38 CEST 2006


On Jun 15, 2006, at 11:57:35, Jonathan Thornburg wrote:

> Hi, Erik,
>
> I am running Carpet on a single processor.
> I have a par file (attached) which sets up a grid like this,
> using RotatingSymmetry90 with its default settings:
>
> Carpet::domain_from_coordbase = true
> driver::ghost_size               = 3
> Carpet::buffer_width             = 9
>
> Carpet::prolongation_order_space = 3
> Carpet::prolongation_order_time  = 2
> Carpet::num_integrator_substeps  = 4

You don't need to specify the number of integrator substeps unless  
you use outer buffer zones.  When you use outer buffer zones, then  
you must not also set buffer_width, because both mechnisms add to  
each other.  I generally suggest using outer buffer zones, because  
they lead to much less surprise with respect to the locations of the  
fine grids.  For example, the "physical" part of your fine grids  
below extend to

level1:	[0.0, 3.2]
level 2:	[0.0; 2.1]

since the outermost 9 grid points are buffer zones.  With "physical"  
I mean that it is integrated in time instead of being prolongated  
from the coarse grid.  On the other hand, the "computational" part of  
your fine grids extend to

level 1:	[0.0, 5.6]
level 2:	[0.0: 3.3]

> CoordBase::domainsize = "minmax"	# specify continuum domain
> CoordBase::xmin =   0.0
> CoordBase::xmax = +10.0
> CoordBase::ymin =   0.0
> CoordBase::ymax = +10.0
> CoordBase::zmin = -10.0
> CoordBase::zmax = +10.0
> CoordBase::dx   =   0.4
> CoordBase::dy   =   0.4
> CoordBase::dz   =   0.4
>
> ActiveThorns = "CarpetRegrid"
> CarpetRegrid::refinement_levels = 3
> CarpetRegrid::refined_regions = manual-coordinate-list
> CarpetRegrid::smart_outer_boundaries = yes
> CarpetRegrid::coordinates = "[
>    [ ([ 0.0, 0.0,-5.0] : [ 5.0, 5.0, +5.0] : [0.2, 0.2, 0.2])],
>    [ ([ 0.0, 0.0,-3.0] : [ 3.0, 3.0, +3.0] : [0.1, 0.1, 0.1])]
>                              ]"
> CarpetRegrid::keep_same_grid_structure = yes
> CarpetLib::save_memory_during_regridding = yes
>
> CartGrid3D::type         = "CoordBase"
> CartGrid3D::avoid_origin = false
>
> Carpet complains that the grid isn't properly nested:
>
> INFO (Carpet): Recomposing the grid hierarchy for map 0
> Not properly nested: rl=1, required distance=4
> Received from level 0:  
> bboxset<CCTK_INT4,3>:size=45168,setsize=4,set={([1536,1536,14336]: 
> [17408,17408,19968]:[512,512,512]),([11776,1536,20480]: 
> [17408,17408,43008]:[512,512,512]),([1536,11776,20480]: 
> [11264,17408,43008]:[512,512,512]),([1536,1536,37376]: 
> [11264,11264,43008]:[512,512,512])}
> Taboo region on level 1:  
> bboxset<CCTK_INT4,3>:size=94000,setsize=4,set={([-512,-512,12288]: 
> [19456,19456,22016]:[512,512,512]),([9728,-512,22528]: 
> [19456,19456,45056]:[512,512,512]),([-512,9728,22528]: 
> [9216,19456,45056]:[512,512,512]),([-512,-512,35328]: 
> [9216,9216,45056]:[512,512,512])}
> Sent to level 2: bboxset<CCTK_INT4,3>:size=10451,setsize=4,set= 
> {([2048,2048,19968]:[11776,11776,23040]:[512,512,512]), 
> ([8704,2048,23552]:[11776,11776,37376]:[512,512,512]), 
> ([2048,8704,23552]:[8192,11776,37376]:[512,512,512]), 
> ([2048,2048,34304]:[8192,8192,37376]:[512,512,512])}
> Overlap on level 1: bboxset<CCTK_INT4,3>:size=8375,setsize=4,set= 
> {([2048,2048,19968]:[11776,11776,22016]:[512,512,512]), 
> ([9728,2048,22528]:[11776,11776,37376]:[512,512,512]), 
> ([2048,9728,22528]:[9216,11776,37376]:[512,512,512]), 
> ([2048,2048,35328]:[9216,9216,37376]:[512,512,512])}
> WARNING level 1 in thorn CarpetLib processor 0 host carbon.aei.mpg.de
>   (line 695 of /home/jonathan/cactus/Cactus/configs/test-moving- 
> excision/build/CarpetLib/dh.cc):
>   -> Not properly nested
>
> I am confused as to just where the improper nesting lies:  there
> seems to be lots of space between the upper faces of the various
> refinement boxes, and the lower faces are symmetry planes in xy,
> and have lots of space in z.
>
> Can you tell me just what the rules are which define "proper nesting"?

The rules are that the grid points which are used for prolongation to  
the next finer level are not set by prolongation from the next  
coarser level.  Additionally, Carpet requires a certain distance  
between these two regions, which defaults to 4 grid points.  This is  
a CarpetLib parameter.  You can set this distance to 0.

Does the taking away of 9 grid points that I calculate above answer  
your question why there is not enough space between these two grids?   
In fact, the prolongation zones even overlap.

Carpet should have output the fine grid sizes during startup.  If  
not, you can restart the simulation with Carpet::verbose=yes.

-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/20060616/1cf697ba/attachment.pgp 


More information about the developers mailing list