[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