/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD \\ / O peration | \\ / A nd | For copyright notice see file Copyright \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of foam-extend. foam-extend is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. foam-extend is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with foam-extend. If not, see . Class Foam::sumData Description Sums data while walking across cells. Used in collapsing fields. SourceFiles sumDataI.H sumData.C \*---------------------------------------------------------------------------*/ #ifndef sumData_H #define sumData_H #include "point.H" #include "tensor.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { class polyPatch; class polyMesh; /*---------------------------------------------------------------------------*\ Class sumData Declaration \*---------------------------------------------------------------------------*/ class sumData { // Private data //- Previous face label oldFace_; //- summed data scalar sum_; //- number of items summed label count_; public: // Constructors //- Construct null inline sumData(); //- Construct from count inline sumData ( const label oldFace, const scalar sum, const label count ); // Member Functions // Access inline label oldFace() const { return oldFace_; } inline scalar sum() const { return sum_; } inline label count() const { return count_; } // Needed by FaceCellWave //- Check whether origin has been changed at all or // still contains original (invalid) value. inline bool valid() const; //- Check for identical geometrical data. Used for cyclics checking. inline bool sameGeometry ( const polyMesh&, const sumData&, const scalar ) const; //- Convert any absolute coordinates into relative to (patch)face // centre inline void leaveDomain ( const polyMesh&, const polyPatch&, const label patchFaceI, const point& faceCentre ); //- Reverse of leaveDomain inline void enterDomain ( const polyMesh&, const polyPatch&, const label patchFaceI, const point& faceCentre ); //- Apply rotation matrix to any coordinates inline void transform ( const polyMesh&, const tensor& ); //- Influence of neighbouring face. inline bool updateCell ( const polyMesh&, const label thisCellI, const label neighbourFaceI, const sumData& neighbourInfo, const scalar tol ); //- Influence of neighbouring cell. inline bool updateFace ( const polyMesh&, const label thisFaceI, const label neighbourCellI, const sumData& neighbourInfo, const scalar tol ); //- Influence of different value on same face. inline bool updateFace ( const polyMesh&, const label thisFaceI, const sumData& neighbourInfo, const scalar tol ); // Member Operators // Needed for List IO inline bool operator==(const sumData&) const; inline bool operator!=(const sumData&) const; // IOstream Operators friend Ostream& operator<<(Ostream&, const sumData&); friend Istream& operator>>(Istream&, sumData&); }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "sumDataI.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //