GfsRefineSolid

From Gerris

Revision as of 23:05, 15 July 2007; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

GfsRefineSolid will refine any cell intersected by an embedded solid boundary down to the specified number of levels.

GfsRefineSolid only works with solid surfaces defined explicitly by GTS files, not with surfaces defined implicitly by functions.

The syntax in parameter files is

[ GfsRefine ]

GfsRefineSolid also creates a new derived variable SolidCurvature which contains the maximum of the mean surface curvature for the fragment of embedded surface contained in a cell. If the mean curvature in a cell cannot be computed — for example because several non-connected fragments of surface intersect the cell — the value of SolidCurvature is set to 1/(cell size).

SolidCurvature can be used to refine an embedded surface according to its mean curvature using for example

RefineSolid {
  if (SolidCurvature > 0.) {
    /* compute the level so that (radius of curvature) > 5*(cell size) */
    gint l = log(SolidCurvature/0.2)/log(2.);
    return l < 8 ? 8 : l > 12 ? 12 : l;
  }
  else
    return 8;
}
Personal tools
communication