[Carpet] Regridding & Recomposing

Bela Szilagyi szilagyi at aei.mpg.de
Tue Jan 16 19:38:51 CET 2007


Erik,

it seems that your definitions for Regridding & Recomposing, in combination 
with Carpet::CallRegrid() give no scheduling of the POSTREGRID bin in certain 
cases where maybe it should.

From what I see, the return value of the Regrid function is set to "true" when 
requesting a decrease in the number of refinement levels.  Also, the 
Recompose() routine appears to return "true" only if the grid definition on a 
particular level has changed.  You only schedule POSTREGRID if both 
"did_regrid" and "did_recompose" is set to "true".  Which means that when I 
request a change (decrease) in the levels, but no change within any of the 
levels themselves, there will be no scheduling of POSTREGRID.

I would suggest that we treat the case 

did_regrid = (not did_recompose) = true 

slightly differently.

We could schedule POSTREGRID either on all grids or on the new finest grid 
after having changed the nr of levels.  

Also, if did_recompose is true on level L < max_reflevels, wouldn't it be 
safer (and reasonable) to call POSTREGRID on all finer levels as well, rather 
than only on level L?  (Perhaps the logic within Recompose() will ensure this 
already.)

-- 
Bela Szilagyi
----------------------------------------------------
Max-Planck-Institut für Gravitationsphysik
Albert-Einstein-Institut
Tel: +49 331 567 7632
Fax: +49 331 567 7649
----------------------------------------------------




More information about the developers mailing list