FLASH4.6.1 API

Generated from /asc/asci2/site/flashcode/secure/release_4p6/source/Grid/Grid_markRefineDerefine.F90 with ROBODoc v4.99.8 on Wed Sep 18 01:16:47 2019

TABLE OF CONTENTS


[Functions] source/Grid/Grid_markRefineDerefine

[top][index]

NAME

  Grid_markRefineDerefine

SYNOPSIS

  call Grid_markRefineDerefine()

DESCRIPTION

  Mark blocks for refinement or derefinement
  This routine is used with AMR only where individual 
  blocks are marked for refinement or derefinement based upon
  some refinement criterion. The Uniform Grid does not need
  this routine, and uses the stub.

  This routine is normally called by the implementation of
  Grid_updateRefinement. It may also get called repeatedly
  during the initial construction of the Grid from
  Grid_initDomain.

ARGUMENTS

  none

SIDE EFFECTS

  This routine works by modifying the global (processor-local) flag
  arrays
      newchild, refine, derefine, stay
  imported from the AMR implementation.

NOTES

  The default implementation of this routine uses the Flash runtime
  parameters refine_var_{1,2,3,4}, refine_cutoff_{1,2,3,4},
  derefine_cutoff_{1,2,3,4}, and refine_filter_{1,2,3,4} to determine
  refinement.
  
  A non-directional guardcell fill for all CENTER variables that are
  referenced by any of those refine_var_# runtime parameters
  (including EOS calls for guardcells, if any refinement variables
  refine_var_# require them to be current) is performed in the
  default implementation of this routine.  Since the checking of
  refinement criteria may reference the values of some variables in
  inactive blocks, the caller of Grid_markRefineDerefine should
  ensure that those inactive blocks have values that are up to date
  (at least for the variables to be used for refinement criteria);
  this is done by an explicit restriction call in the default APR
  implementation of Grid_updateRefinement.
  
  Users creating their own implementation of this interface or of
  Grid_updateRefinement should make sure that the above remains
  true; that is, they should include the appropriate call(s) to
  Grid_fillGuardCells (and to a restriction routine if necessary) in
  their implementation.

SEE ALSO

  Grid_updateRefinement
  Grid_initDomain
  Grid_fillGuardCells