00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software: you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. 00023 00024 Class 00025 Foam::tetMatcher 00026 00027 Description 00028 A cellMatcher for tet cells 00029 00030 See Also 00031 cellMatcher 00032 00033 SourceFiles 00034 tetMatcher.C 00035 00036 \*---------------------------------------------------------------------------*/ 00037 00038 #ifndef tetMatcher_H 00039 #define tetMatcher_H 00040 00041 #include <OpenFOAM/cellMatcher.H> 00042 00043 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00044 00045 namespace Foam 00046 { 00047 00048 /*---------------------------------------------------------------------------*\ 00049 Class tetMatcher Declaration 00050 \*---------------------------------------------------------------------------*/ 00051 00052 class tetMatcher 00053 : 00054 public cellMatcher 00055 { 00056 // Static data members 00057 00058 //- constants for this shape 00059 static const label vertPerCell; 00060 static const label facePerCell; 00061 static const label maxVertPerFace; 00062 00063 00064 // Private Member Functions 00065 00066 //- Disallow default bitwise copy construct 00067 tetMatcher(const tetMatcher&); 00068 00069 //- Disallow default bitwise assignment 00070 void operator=(const tetMatcher&); 00071 00072 00073 public: 00074 00075 // Constructors 00076 00077 //- Construct null 00078 tetMatcher(); 00079 00080 // Destructor 00081 00082 ~tetMatcher(); 00083 00084 00085 // Member Functions 00086 00087 virtual label nVertPerCell() const 00088 { 00089 return vertPerCell; 00090 } 00091 00092 virtual label nFacePerCell() const 00093 { 00094 return facePerCell; 00095 } 00096 00097 virtual label nMaxVertPerFace() const 00098 { 00099 return maxVertPerFace; 00100 } 00101 00102 virtual label faceHashValue() const; 00103 00104 virtual bool faceSizeMatch(const faceList&, const labelList&) const; 00105 00106 virtual bool matchShape 00107 ( 00108 const bool checkOnly, 00109 const faceList& faces, 00110 const labelList& faceOwner, 00111 const label cellI, 00112 const labelList& myFaces 00113 ); 00114 00115 virtual bool isA(const primitiveMesh& mesh, const label cellI); 00116 00117 virtual bool isA(const faceList&); 00118 00119 virtual bool matches 00120 ( 00121 const primitiveMesh& mesh, 00122 const label cellI, 00123 cellShape& shape 00124 ); 00125 }; 00126 00127 00128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00129 00130 } // End namespace Foam 00131 00132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00133 00134 #endif 00135 00136 // ************************ vim: set sw=4 sts=4 et: ************************ //