2010-08-25 21:42:57 +00:00
|
|
|
/*--------------------------------*- C++ -*----------------------------------*\
|
2010-05-12 13:27:55 +00:00
|
|
|
| ========= | |
|
2013-12-11 16:09:41 +00:00
|
|
|
| \\ / F ield | foam-extend: Open Source CFD |
|
2016-06-20 15:00:40 +00:00
|
|
|
| \\ / O peration | Version: 4.0 |
|
2015-05-17 13:55:59 +00:00
|
|
|
| \\ / A nd | Web: http://www.foam-extend.org |
|
2010-05-12 13:27:55 +00:00
|
|
|
| \\/ M anipulation | |
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
FoamFile
|
|
|
|
{
|
2010-08-25 21:42:57 +00:00
|
|
|
version 2.0;
|
|
|
|
format ascii;
|
|
|
|
class dictionary;
|
|
|
|
object autoRefineMeshDict;
|
2010-05-12 13:27:55 +00:00
|
|
|
}
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
|
|
|
|
// Surface to keep to
|
2010-08-25 21:42:57 +00:00
|
|
|
surface "plexi.ftr";
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// What is outside. These points have to be inside a cell (so not on a face!)
|
2010-08-25 21:42:57 +00:00
|
|
|
outsidePoints ((-0.99001 -0.99001 -0.99001));
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Selection of cells to refine
|
|
|
|
//
|
|
|
|
|
|
|
|
// If smallest edge of mesh > maxEdgeLen select all cut cells for refinement.
|
|
|
|
// If < maxEdgeLen select only those cut cells which are closer than
|
|
|
|
// curvatureDistance to surface
|
|
|
|
// and with cos of angle between normals on surface < curvature.
|
|
|
|
maxEdgeLen 0.1;
|
|
|
|
curvatureDistance 1.0;
|
|
|
|
curvature 0.9;
|
|
|
|
|
|
|
|
// if > 0: Remove inside cells at every step. Inside is given by number of
|
|
|
|
// layers separating outside from inside.
|
|
|
|
// (note that we cannot remove outside
|
|
|
|
// cells since these contain the outsidePoints)
|
|
|
|
// Do not use this option if you want mesh to spill through a hole which is
|
|
|
|
// not visible on the coarsest level but only becomes visible after refinement
|
|
|
|
nCutLayers 2;
|
|
|
|
|
|
|
|
// Refine until smallest edge of mesh < minEdgeLen
|
2010-08-25 21:42:57 +00:00
|
|
|
minEdgeLen 0.1;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// Or until the number of cells would become more than (stops one level before
|
|
|
|
// this)
|
2010-08-25 21:42:57 +00:00
|
|
|
cellLimit 2500000;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Selection of final set
|
|
|
|
//
|
|
|
|
|
|
|
|
// Select based on side of surface. Usually select inside cells and project
|
|
|
|
// outwards or select outside cells and project inwards.
|
|
|
|
selectCut false;
|
|
|
|
selectInside false;
|
|
|
|
selectOutside true;
|
|
|
|
// Leave out cell closer than nearDistance to the surface. Usually
|
|
|
|
// 0.5*minEdgeLen. Set to -1 to disable.
|
|
|
|
nearDistance -1;
|
|
|
|
|
|
|
|
// Some cells on the surface of the selected cells might have all their
|
|
|
|
// points on the 'outside'. These would get flattened when projecting so
|
|
|
|
// are either kept and refined (selectHanging) or removed from the set
|
|
|
|
selectHanging false;
|
|
|
|
|
|
|
|
//
|
|
|
|
// Refinement parameters
|
|
|
|
//
|
|
|
|
|
|
|
|
// Type of coordinate system
|
|
|
|
coordinateSystem global;
|
|
|
|
//coordinateSystem patchLocal;
|
|
|
|
|
|
|
|
// .. and its coefficients. x,y in this case. (normal = tan1^tan2)
|
|
|
|
globalCoeffs
|
|
|
|
{
|
|
|
|
tan1 (1 0 0);
|
|
|
|
tan2 (0 1 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
patchLocalCoeffs
|
|
|
|
{
|
|
|
|
patch outside; // Normal direction is facenormal of zero'th face of patch
|
|
|
|
tan1 (1 0 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// List of directions to refine
|
|
|
|
directions
|
|
|
|
(
|
|
|
|
tan1
|
|
|
|
tan2
|
|
|
|
normal
|
|
|
|
);
|
|
|
|
|
|
|
|
// refinement level difference between neighbouring cells. Set to large if
|
|
|
|
// there is no need for a limit.
|
2010-08-25 21:42:57 +00:00
|
|
|
splitLevel 2;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// Cut purely geometric (will cut hexes through vertices) or take topology
|
|
|
|
// into account.
|
2010-08-25 21:42:57 +00:00
|
|
|
geometricCut false;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// Whether to use hex topology. This will never cut hex through vertices.
|
2010-08-25 21:42:57 +00:00
|
|
|
useHexTopology yes;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// Write meshes from intermediate steps
|
2010-08-25 21:42:57 +00:00
|
|
|
writeMesh true;
|
2010-05-12 13:27:55 +00:00
|
|
|
|
|
|
|
// ************************************************************************* //
|