AutoRefineMesh
From OpenFOAMWiki
1 Name
autoRefineMesh - Utility to refine cells near to a surface.
2 Synopsis
autoRefineMesh [OPTIONS]
3 Description
Refine cells near to a surface. The parameters must be specified in system/autoRefineMeshDict. The example shipped with the source code (in $FOAM_UTILITIES/mesh/advanced/autoRefineMesh/autoRefineMeshDict) is reproduced below.
-case DIR
- Execute the command on the case directory DIR. If not provided, use the current directory
-noFunctionObjects
- Skip the execution of the functionObjects
-help
- Display the help and exit
4 autoRefineMeshDict description
FoamFile { version 2.0; format ascii; class dictionary; object autoRefineMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Surface to keep to surface "plexi.obj"; // What is outside. These points have to be inside a cell (so not on a face!) outsidePoints ((-0.99001 -0.99001 -0.99001)); // // 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 minEdgeLen 0.1; // Or until the number of cells would become more than (stops one level before this) cellLimit 2500000; // // 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. splitLevel 2; // Cut purely geometric (will cut hexes through vertices) or take topology // into account. geometricCut false; // Whether to use hex topology. This will never cut hex through vertices. useHexTopology yes; // Write meshes from intermediate steps writeMesh true; // ************************************************************************* //