[FLASH-USERS] Error in AMR Prolong Routine

Klaus Weide klaus at flash.uchicago.edu
Mon May 4 10:30:58 EDT 2009


On Fri, 1 May 2009, Tomasz Plewa wrote:

> Klaus -
> > 
> > (1) to fill guard cells == to put well-defined values into guard cells of
> > certain variables of certain blocks, by either
> >   o  simple copying from neighboring blocks at the same refinement level, or
> >   o  interpolation from coarser neighboring blocks, or
> >   o  averaging from finer neighboring blocks, or
> 
> This is normally not necessary, I believe, since a sibling block overlaps
> ghost cells and the first operation above applies.

Tomek,

You are right that at a low level within PARAMESH, this case 
("averaging from neighboring blocks") is handled the same way as the first 
case ("simple copying from neighboring blocks"). 

I was trying to give a description at a higher level.  To the caller of 
the FLASH3 routine Grid_fillGuardCells, or of the higher-level PARAMESH 
routine amr_guardcell, "averaging from finer neighboring blocks" is part
of the functionality of those calls.***

Internally this works (with PARAMESH 3 and up, at least) by having an 
initial step of global restriction, in which cell data from leaf blocks
are restricted to their parents; the guard cell exchange proper happens
after that, and at this point the data from a finer (leaf) neighbor will
indeed appear in already-averaged form at the same level.


*** This assumes that the PARAMESH parameter advance_all_levels is not 
set. If advance_all_levels were set - something we have not tested - then 
a step of global restriction would not be performed as part of guard cell 
filling.

Klaus



More information about the flash-users mailing list