GfsRefineSolid
From Gerris
GfsRefineSolid will refine any cell intersected by an embedded solid boundary down to the specified number of levels.
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;
}

