GfsRefineSolid
From Gerris
(Difference between revisions)
| Revision as of 23:05, 15 July 2007 GeordieMcBain (Talk | contribs) (noted restriction to surface defined explicitly by GTS files) ← Previous diff |
Revision as of 23:27, 10 October 2007 Popinet (Talk | contribs) (RefineSolid now works also with implicit surfaces) Next diff → |
||
| Line 1: | Line 1: | ||
| GfsRefineSolid will refine any cell intersected by an embedded solid boundary down to the specified number of levels. | GfsRefineSolid will refine any cell intersected by an embedded solid boundary down to the specified number of levels. | ||
| - | |||
| - | GfsRefineSolid only works with [[GfsSolid|solid]] [[GfsSurface|surfaces]] defined explicitly by GTS files, not with surfaces defined implicitly by functions. | ||
| The syntax in parameter files is | The syntax in parameter files is | ||
Revision as of 23:27, 10 October 2007
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;
}

