BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / lagrangian / intermediate / submodels / Kinematic / CollisionModel / PairCollision / WallSiteData / WallSiteData.H
blob4cf4979c186070dbc7cf4fc1b3ca7dad2aa43379
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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
19     for more details.
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/>.
24 Class
25     Foam::WallSiteData
27 Description
28     Stores the patch ID and templated data to represent a collision
29     with a wall to be passed to the wall model.
31 SourceFiles
32     WallSiteDataI.H
33     WallSiteData.C
34     WallSiteDataIO.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef WallSiteData_H
39 #define WallSiteData_H
41 #include "label.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 // Forward declaration of friend functions and operators
50 template<class Type>
51 class WallSiteData;
53 template<class Type>
54 Istream& operator>>(Istream&, WallSiteData<Type>&);
56 template<class Type>
57 Ostream& operator<<(Ostream&, const WallSiteData<Type>&);
60 /*---------------------------------------------------------------------------*\
61                          Class WallSiteData Declaration
62 \*---------------------------------------------------------------------------*/
64 template<class Type>
65 class WallSiteData
67     // Private data
69         //- Index of originating patch
70         label patchI_;
72         //- Wall data
73         Type wallData_;
76 public:
78     // Constructors
80         //- Construct null
81         WallSiteData();
83         //- Construct from components
84         WallSiteData
85         (
86             label patchI,
87             const Type& wallData
88         );
91     //- Destructor
92     ~WallSiteData();
95     // Member Functions
97             //- Return access to the patch index
98             inline label patchIndex() const;
100             //- Return non-const access to the patch index
101             inline label& patchIndex();
103             //- Return access to wall data
104             inline const Type& wallData() const;
106             //- Return non-const access to wall data
107             inline Type& wallData();
110     // Member Operators
112         bool operator==(const WallSiteData<Type>&) const;
113         bool operator!=(const WallSiteData<Type>&) const;
116     // IOstream Operators
118         friend Istream& operator>> <Type>
119         (Istream&, WallSiteData<Type>&);
121         friend Ostream& operator<< <Type>
122         (Ostream&, const WallSiteData<Type>&);
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 } // End namespace Foam
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 #include "WallSiteDataI.H"
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 #ifdef NoRepository
137 #   include "WallSiteData.C"
138 #endif
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 #endif
144 // ************************************************************************* //