correctEdgesBetweenPatches.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | cfMesh: A library for mesh generation
4  \\ / O peration |
5  \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6  \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9  This file is part of cfMesh.
10 
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.
15 
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
19  for more details.
20 
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/>.
23 
24 Class
25  correctEdgesBetweenPatches
26 
27 Description
28  Changes mesh surface until every boundary face shares only one edge with
29  the faces in other boundary patch
30 
31 SourceFiles
32  correctEdgesBetweenPatches.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef correctEdgesBetweenPatches_H
37 #define correctEdgesBetweenPatches_H
38 
39 #include "polyMeshGenModifier.H"
40 #include "labelLongList.H"
41 #include "boolList.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 // Forward declarations
49 class meshOctree;
50 class meshSurfaceEngine;
51 
52 /*---------------------------------------------------------------------------*\
53  Class correctEdgesBetweenPatches Declaration
54 \*---------------------------------------------------------------------------*/
55 
57 {
58  // Private data
59  //- mesh
61 
62  //- pointer to surface engine
63  mutable const meshSurfaceEngine* msePtr_;
64 
65  //- boundary data
71 
72  //- holds data which cells have to be decomposed
74  bool decompose_;
75 
76  // Private member functions
77 
78  //- construct and return mesh surface
79  const meshSurfaceEngine& meshSurface() const;
80 
81  //- delete mesh surface
82  void clearMeshSurface();
83 
84  //- replace boundary
85  void replaceBoundary();
86 
87  //- decompose corrected cells
89 
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
94 
95  //- decompose cells with faces at concave boundary edges
96  void decomposeConcaveFaces();
97 
98  //- perform decompose remaining faces having more than one feature edge
99  void patchCorrection();
100 
101  //- Disallow default bitwise copy construct
103 
104  //- Disallow default bitwise assignment
106 
107 public:
108 
109  // Constructors
110 
111  //- Construct from mesh data
113 
114  // Destructor
115 
117 
118  // Member Functions
119 };
120 
121 
122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 
124 } // End namespace Foam
125 
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 
128 #endif
129 
130 // ************************************************************************* //
Foam::correctEdgesBetweenPatches::decomposeProblematicFaces
void decomposeProblematicFaces()
Definition: correctEdgesBetweenPatchesDistributeFaces.C:53
Foam::correctEdgesBetweenPatches::newBoundaryFaces_
VRWGraph newBoundaryFaces_
Definition: correctEdgesBetweenPatches.H:67
boolList.H
meshSurfaceEngine
Calculates surface of the mesh.
Foam::correctEdgesBetweenPatches::msePtr_
const meshSurfaceEngine * msePtr_
pointer to surface engine
Definition: correctEdgesBetweenPatches.H:62
polyMeshGenModifier.H
Foam::polyMeshGen
Definition: polyMeshGen.H:46
Foam::correctEdgesBetweenPatches::newBoundaryPatches_
labelLongList newBoundaryPatches_
Definition: correctEdgesBetweenPatches.H:69
Foam::correctEdgesBetweenPatches::operator=
void operator=(const correctEdgesBetweenPatches &)
Disallow default bitwise assignment.
Foam::correctEdgesBetweenPatches::decomposeCell_
boolList decomposeCell_
holds data which cells have to be decomposed
Definition: correctEdgesBetweenPatches.H:72
Foam::correctEdgesBetweenPatches::decompose_
bool decompose_
Definition: correctEdgesBetweenPatches.H:73
Foam::correctEdgesBetweenPatches::correctEdgesBetweenPatches
correctEdgesBetweenPatches(const correctEdgesBetweenPatches &)
Disallow default bitwise copy construct.
Foam::LongList< label >
Foam::correctEdgesBetweenPatches
Definition: correctEdgesBetweenPatches.H:55
Foam::correctEdgesBetweenPatches::decomposeCorrectedCells
void decomposeCorrectedCells()
decompose corrected cells
Definition: correctEdgesBetweenPatches.C:69
Foam::correctEdgesBetweenPatches::clearMeshSurface
void clearMeshSurface()
delete mesh surface
Definition: correctEdgesBetweenPatches.C:51
Foam::correctEdgesBetweenPatches::decomposeConcaveFaces
void decomposeConcaveFaces()
decompose cells with faces at concave boundary edges
Definition: correctEdgesBetweenPatchesDistributeFaces.C:267
Foam::correctEdgesBetweenPatches::mesh_
polyMeshGen & mesh_
mesh
Definition: correctEdgesBetweenPatches.H:59
Foam::correctEdgesBetweenPatches::patchNames_
wordList patchNames_
boundary data
Definition: correctEdgesBetweenPatches.H:65
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:18
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::correctEdgesBetweenPatches::~correctEdgesBetweenPatches
~correctEdgesBetweenPatches()
Definition: correctEdgesBetweenPatches.C:113
Foam::correctEdgesBetweenPatches::meshSurface
const meshSurfaceEngine & meshSurface() const
construct and return mesh surface
Definition: correctEdgesBetweenPatches.C:42
Foam::correctEdgesBetweenPatches::replaceBoundary
void replaceBoundary()
replace boundary
Definition: correctEdgesBetweenPatches.C:56
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::correctEdgesBetweenPatches::patchTypes_
wordList patchTypes_
Definition: correctEdgesBetweenPatches.H:66
Foam::correctEdgesBetweenPatches::newBoundaryOwners_
labelLongList newBoundaryOwners_
Definition: correctEdgesBetweenPatches.H:68
labelLongList.H
meshOctree
Octree for mesh generation.
Foam::VRWGraph
Definition: VRWGraph.H:101
Foam::correctEdgesBetweenPatches::patchCorrection
void patchCorrection()
perform decompose remaining faces having more than one feature edge
Definition: correctEdgesBetweenPatchesDistributeFaces.C:439
Foam::meshSurfaceEngine
Definition: meshSurfaceEngine.H:54