FreeFOAM The Cross-Platform CFD Toolkit
hexMatcher.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::hexMatcher
26 
27 Description
28  A cellMatcher for hex cells
29 
30 See Also
31  cellMatcher
32 
33 SourceFiles
34  hexMatcher.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef hexMatcher_H
39 #define hexMatcher_H
40 
41 #include <OpenFOAM/cellMatcher.H>
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 /*---------------------------------------------------------------------------*\
49  Class hexMatcher Declaration
50 \*---------------------------------------------------------------------------*/
51 
53 :
54  public cellMatcher
55 {
56  // Static data members
57 
58  //- constants for this shape
59  static const label vertPerCell;
60  static const label facePerCell;
61  static const label maxVertPerFace;
62 
63 
64  // Private Member Functions
65 
66  //- Disallow default bitwise copy construct
67  hexMatcher(const hexMatcher&);
68 
69  //- Disallow default bitwise assignment
70  void operator=(const hexMatcher&);
71 
72 
73 public:
74 
75  // Constructors
76 
77  //- Construct null
78  hexMatcher();
79 
80  // Destructor
81 
82  ~hexMatcher();
83 
84 
85  // Member Functions
86 
87  virtual label nVertPerCell() const
88  {
89  return vertPerCell;
90  }
91 
92  virtual label nFacePerCell() const
93  {
94  return facePerCell;
95  }
96 
97  virtual label nMaxVertPerFace() const
98  {
99  return maxVertPerFace;
100  }
101 
102  virtual label faceHashValue() const;
103 
104  virtual bool faceSizeMatch(const faceList&, const labelList&) const;
105 
106  virtual bool matchShape
107  (
108  const bool checkOnly,
109  const faceList& faces,
110  const labelList& faceOwner,
111  const label cellI,
112  const labelList& myFaces
113  );
114 
115  virtual bool isA(const primitiveMesh& mesh, const label cellI);
116 
117  virtual bool isA(const faceList&);
118 
119  virtual bool matches
120  (
121  const primitiveMesh& mesh,
122  const label cellI,
123  cellShape& shape
124  );
125 };
126 
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 } // End namespace Foam
131 
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 
134 #endif
135 
136 // ************************ vim: set sw=4 sts=4 et: ************************ //