1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend 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 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
28 Sums data while walking across cells. Used in collapsing fields.
34 \*---------------------------------------------------------------------------*/
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class sumData Declaration
52 \*---------------------------------------------------------------------------*/
64 //- number of items summed
74 //- Construct from count
87 inline label oldFace() const
92 inline scalar sum() const
97 inline label count() const
103 // Needed by FaceCellWave
105 //- Check whether origin has been changed at all or
106 // still contains original (invalid) value.
107 inline bool valid() const;
109 //- Check for identical geometrical data. Used for cyclics checking.
110 inline bool sameGeometry
117 //- Convert any absolute coordinates into relative to (patch)face
119 inline void leaveDomain
123 const label patchFaceI,
124 const point& faceCentre
127 //- Reverse of leaveDomain
128 inline void enterDomain
132 const label patchFaceI,
133 const point& faceCentre
136 //- Apply rotation matrix to any coordinates
137 inline void transform
143 //- Influence of neighbouring face.
144 inline bool updateCell
147 const label thisCellI,
148 const label neighbourFaceI,
149 const sumData& neighbourInfo,
153 //- Influence of neighbouring cell.
154 inline bool updateFace
157 const label thisFaceI,
158 const label neighbourCellI,
159 const sumData& neighbourInfo,
163 //- Influence of different value on same face.
164 inline bool updateFace
167 const label thisFaceI,
168 const sumData& neighbourInfo,
174 // Needed for List IO
175 inline bool operator==(const sumData&) const;
177 inline bool operator!=(const sumData&) const;
180 // IOstream Operators
182 friend Ostream& operator<<(Ostream&, const sumData&);
183 friend Istream& operator>>(Istream&, sumData&);
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 } // End namespace Foam
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 #include "sumDataI.H"
195 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
199 // ************************************************************************* //