1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | cfMesh: A library for mesh generation
5 \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6 \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of cfMesh.
11 cfMesh is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation; either version 3 of the License, or (at your
14 option) any later version.
16 cfMesh is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with cfMesh. If not, see <http://www.gnu.org/licenses/>.
25 triangulateNonPlanarBaseFaces
28 Splits selected boundary layer cells into triangular prisms
31 triangulateNonPlanarBaseFaces.C
32 triangulateNonPlanarBaseFacesFunctions.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef triangulateNonPlanarBaseFaces_H
37 #define triangulateNonPlanarBaseFaces_H
39 #include "objectRegistry.H"
41 #include "polyMeshGenModifier.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Forward declarations
51 /*---------------------------------------------------------------------------*\
52 Class triangulateNonPlanarBaseFaces Declaration
53 \*---------------------------------------------------------------------------*/
55 class triangulateNonPlanarBaseFaces
58 //- Reference to the mesh
61 //- boolean list containing information about inverted cells
62 boolList invertedCell_;
64 //- classification of faces in the mesh
65 boolList decomposeFace_;
67 //- relative deviation compared to the layer thickness
70 // Private member functions
71 //- find faces with non-planarity greater than the required
73 bool findNonPlanarBoundaryFaces();
75 //- decompose existing faces
76 void decomposeBoundaryFaces();
78 //- decompose adjacent cells into pyramids
79 void decomposeCellsIntoPyramids();
81 //- Disallow bitwise copy construct
82 triangulateNonPlanarBaseFaces
84 const triangulateNonPlanarBaseFaces&
87 //- Disallow bitwise assignment
88 void operator=(const triangulateNonPlanarBaseFaces&);
94 //- Construct from mesh
95 triangulateNonPlanarBaseFaces(polyMeshGen& mesh);
98 ~triangulateNonPlanarBaseFaces();
100 // Public member functions
101 //- set the relative tolerance between the requested boundary
102 //- layer thickness and the deviation from planarity
103 //- the default is 1.0
104 void setRelativeTolerance(const scalar tol);
106 //- splits inverted boundary layer prisms into triangular prisms
107 void triangulateLayers();
109 // Static member functions
110 static void readSettings
113 triangulateNonPlanarBaseFaces&
117 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 } // End namespace Foam
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 // ************************************************************************* //