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 correctEdgesBetweenPatches
28 Changes mesh surface until every boundary face shares only one edge with
29 the faces in other boundary patch
32 correctEdgesBetweenPatches.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef correctEdgesBetweenPatches_H
37 #define correctEdgesBetweenPatches_H
39 #include "polyMeshGenModifier.H"
40 #include "labelLongList.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Forward declarations
50 class meshSurfaceEngine;
52 /*---------------------------------------------------------------------------*\
53 Class correctEdgesBetweenPatches Declaration
54 \*---------------------------------------------------------------------------*/
56 class correctEdgesBetweenPatches
62 //- pointer to surface engine
63 mutable const meshSurfaceEngine* msePtr_;
68 VRWGraph newBoundaryFaces_;
69 labelLongList newBoundaryOwners_;
70 labelLongList newBoundaryPatches_;
72 //- holds data which cells have to be decomposed
73 boolList decomposeCell_;
76 // Private member functions
78 //- construct and return mesh surface
79 const meshSurfaceEngine& meshSurface() const;
81 //- delete mesh surface
82 void clearMeshSurface();
85 void replaceBoundary();
87 //- decompose corrected cells
88 void decomposeCorrectedCells();
90 //- decompose bnd faces for which the feature edges are not connected
91 //- over vertices and internal faces which have more than one feature
92 //- edge at the boundary
93 void decomposeProblematicFaces();
95 //- decompose cells with faces at concave boundary edges
96 void decomposeConcaveFaces();
98 //- perform decompose remaining faces having more than one feature edge
99 void patchCorrection();
101 //- Disallow default bitwise copy construct
102 correctEdgesBetweenPatches(const correctEdgesBetweenPatches&);
104 //- Disallow default bitwise assignment
105 void operator=(const correctEdgesBetweenPatches&);
111 //- Construct from mesh data
112 correctEdgesBetweenPatches(polyMeshGen& mesh);
116 ~correctEdgesBetweenPatches();
122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 } // End namespace Foam
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
130 // ************************************************************************* //