Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / OpenFOAM / meshes / meshShapes / cellMatcher / tetMatcher.H
blob32f3b825389f81da4283d101174add288024e61c
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::tetMatcher
27 Description
28     A cellMatcher for tet cells
30 See Also
31     cellMatcher
33 SourceFiles
34     tetMatcher.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef tetMatcher_H
39 #define tetMatcher_H
41 #include "cellMatcher.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                            Class tetMatcher Declaration
50 \*---------------------------------------------------------------------------*/
52 class tetMatcher
54     public cellMatcher
56     // Static data members
58         //- constants for this shape
59         static const label vertPerCell;
60         static const label facePerCell;
61         static const label maxVertPerFace;
64     // Private Member Functions
66         //- Disallow default bitwise copy construct
67         tetMatcher(const tetMatcher&);
69         //- Disallow default bitwise assignment
70         void operator=(const tetMatcher&);
73 public:
75     // Constructors
77         //- Construct null
78         tetMatcher();
80     //- Destructor
81     ~tetMatcher();
84     // Member Functions
86         virtual label nVertPerCell() const
87         {
88             return vertPerCell;
89         }
91         virtual label nFacePerCell() const
92         {
93             return facePerCell;
94         }
96         virtual label nMaxVertPerFace() const
97         {
98             return maxVertPerFace;
99         }
101         virtual label faceHashValue() const;
103         virtual bool faceSizeMatch(const faceList&, const labelList&) const;
105         virtual bool matchShape
106         (
107             const bool checkOnly,
108             const faceList& faces,
109             const labelList& faceOwner,
110             const label cellI,
111             const labelList& myFaces
112         );
114         virtual bool isA(const primitiveMesh& mesh, const label cellI);
116         virtual bool isA(const faceList&);
118         virtual bool matches
119         (
120             const primitiveMesh& mesh,
121             const label cellI,
122             cellShape& shape
123         );
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 } // End namespace Foam
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 #endif
135 // ************************************************************************* //