1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright held by original author
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM 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 2 of the License, or (at your
14 option) any later version.
16 OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 tetPolyPatchCellDecomp
29 Basic tetPolyPatch represents a set of points from the mesh.
32 tetPolyPatchCellDecomp.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef tetPolyPatchCellDecomp_H
37 #define tetPolyPatchCellDecomp_H
39 #include "labelList.H"
40 #include "vectorField.H"
41 #include "triFaceList.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Class forward declarations
49 class tetPolyMeshCellDecomp;
50 class tetPolyBoundaryMeshCellDecomp;
52 /*---------------------------------------------------------------------------*\
53 Class tetPolyPatchCellDecomp Declaration
54 \*---------------------------------------------------------------------------*/
56 class tetPolyPatchCellDecomp
60 //- Reference to boundary mesh
61 const tetPolyBoundaryMeshCellDecomp& boundaryMesh_;
64 // Private Member Functions
66 //- Disallow default bitwise copy construct
67 tetPolyPatchCellDecomp(const tetPolyPatchCellDecomp&);
69 //- Disallow default bitwise assignment
70 void operator=(const tetPolyPatchCellDecomp&);
75 typedef tetPolyMeshCellDecomp Mesh;
78 //- Runtime type information
79 TypeName("basePatch");
84 tetPolyPatchCellDecomp
86 const tetPolyBoundaryMeshCellDecomp& bm
95 virtual ~tetPolyPatchCellDecomp()
102 virtual const word& name() const = 0;
105 virtual label size() const = 0;
107 //- Return number of faces
108 virtual label nFaces() const = 0;
110 //- Return the index of this patch in the tetPolyBoundaryMeshCellDecomp
111 virtual label index() const = 0;
113 //- Return boundaryMesh reference
114 const tetPolyBoundaryMeshCellDecomp& boundaryMesh() const
116 return boundaryMesh_;
119 //- Return mesh points
120 virtual const labelList& meshPoints() const = 0;
122 //- Return mesh points
123 virtual const vectorField& localPoints() const = 0;
125 //- Return point normals
126 virtual const vectorField& pointNormals() const = 0;
128 //- Face decomposition into triangle
129 // Used for implementation of FEM boundary conditions
130 virtual triFaceList faceTriangles(const label faceID) const = 0;
132 //- Return complete list of faces. All are triangles
133 virtual faceList triFaces() const = 0;
136 virtual void updateMesh()
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 } // End namespace Foam
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 // ************************************************************************* //