1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
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
29 Holds information regarding type of cell. Used in inside/outside
30 determination in cellClassification.
36 \*---------------------------------------------------------------------------*/
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 /*---------------------------------------------------------------------------*\
53 Class cellInfo Declaration
54 \*---------------------------------------------------------------------------*/
62 // Private Member Functions
64 //- Update current cell/face type with neighbouring
65 // type. Return true if information needs to propagate,
70 const label thisFaceI,
71 const label thisCellI,
72 const label neighbourFaceI,
73 const label neighbourCellI
83 //- Construct from cType
84 inline cellInfo(const label);
87 inline cellInfo(const cellInfo&);
94 inline label type() const
100 // Needed by meshWave
102 //- Check whether origin has been changed at all or
103 // still contains original (invalid) value.
104 inline bool valid() const;
106 //- Check for identical geometrical data. Used for cyclics checking.
107 inline bool sameGeometry
114 //- Convert any absolute coordinates into relative to (patch)face
116 inline void leaveDomain
119 const polyPatch& patch,
120 const label patchFaceI,
121 const point& faceCentre
124 //- Reverse of leaveDomain
125 inline void enterDomain
128 const polyPatch& patch,
129 const label patchFaceI,
130 const point& faceCentre
133 //- Apply rotation matrix to any coordinates
134 inline void transform
137 const tensor& rotTensor
140 //- Influence of neighbouring face.
141 inline bool updateCell
144 const label thisCellI,
145 const label neighbourFaceI,
146 const cellInfo& neighbourInfo,
150 //- Influence of neighbouring cell.
151 inline bool updateFace
154 const label thisFaceI,
155 const label neighbourCellI,
156 const cellInfo& neighbourInfo,
160 //- Influence of different value on same face.
161 inline bool updateFace
164 const label thisFaceI,
165 const cellInfo& neighbourInfo,
171 //Note: Used to determine whether to call update.
172 inline bool operator==(const cellInfo&) const;
174 inline bool operator!=(const cellInfo&) const;
177 // IOstream Operators
179 friend Ostream& operator<<(Ostream&, const cellInfo&);
180 friend Istream& operator>>(Istream&, cellInfo&);
184 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 } // End namespace Foam
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190 #include "cellInfoI.H"
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
196 // ************************************************************************* //