Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / lagrangian / intermediate / submodels / Kinematic / InjectionModel / KinematicLookupTableInjection / kinematicParcelInjectionData.H
blob19bc27ce50e71b1cb3ba4d5fcfaf85bab69c1b63
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2010-2010 OpenCFD Ltd.
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::kinematicParcelInjectionData
27 Description
28     Container class to provide injection data for kinematic parcels
30 SourceFiles
31     kinematicParcelInjectionData.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef kinematicParcelInjectionData_H
36 #define kinematicParcelInjectionData_H
38 #include "dictionary.H"
39 #include "vector.H"
40 #include "point.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
47 // Forward declaration of classes
48 class kinematicParcelInjectionData;
50 // Forward declaration of friend functions
52 Ostream& operator<<
54     Ostream&,
55     const kinematicParcelInjectionData&
58 Istream& operator>>
60     Istream&,
61     kinematicParcelInjectionData&
64 /*---------------------------------------------------------------------------*\
65                Class kinematicParcelInjectionData Declaration
66 \*---------------------------------------------------------------------------*/
68 class kinematicParcelInjectionData
70 protected:
72     // Parcel properties
74         //- Position [m]
75         point x_;
77         //- Velocity [m/s]
78         vector U_;
80         //- Diameter [m]
81         scalar d_;
83         //- Density [kg/m3]
84         scalar rho_;
86         //- Mass flow rate [kg/s]
87         scalar mDot_;
90 public:
92     //- Runtime type information
93     TypeName("kinematicParcelInjectionData");
95     // Constructors
97         //- Null constructor
98         kinematicParcelInjectionData();
100         //- Construct from dictionary
101         kinematicParcelInjectionData(const dictionary& dict);
103         //- Construct from Istream
104         kinematicParcelInjectionData(Istream& is);
107     //-Destructor
108     virtual ~kinematicParcelInjectionData();
111     // Access
113         //- Return const access to the position
114         inline const point& x() const;
116         //- Return const access to the velocity
117         inline const vector& U() const;
119         //- Return const access to the diameter
120         inline scalar d() const;
122         //- Return const access to the density
123         inline scalar rho() const;
125         //- Return const access to the mass flow rate
126         inline scalar mDot() const;
129     // Edit
131         //- Return access to the position
132         inline point& x();
134         //- Return access to the velocity
135         inline vector& U();
137         //- Return access to the diameter
138         inline scalar& d();
140         //- Return access to the density
141         inline scalar& rho();
143         //- Return access to the mass flow rate
144         inline scalar& mDot();
147     // I-O
149         // Friend Operators
151             friend bool operator==
152             (
153                 const kinematicParcelInjectionData& a,
154                 const kinematicParcelInjectionData& b
155             )
156             {
157                 notImplemented
158                 (
159                     "operator=="
160                     "("
161                         "const kinematicParcelInjectionData&, "
162                         "const kinematicParcelInjectionData&"
163                     ")"
164                 );
166                 return false;
167             }
169             friend bool operator!=
170             (
171                 const kinematicParcelInjectionData& a,
172                 const kinematicParcelInjectionData& b
173             )
174             {
175                 notImplemented
176                 (
177                     "operator=="
178                     "("
179                         "const kinematicParcelInjectionData&, "
180                         "const kinematicParcelInjectionData&"
181                     ")"
182                 );
184                 return false;
185             }
187             //- Ostream operator
188             friend Ostream& operator<<
189             (
190                 Ostream& os,
191                 const kinematicParcelInjectionData& data
192             );
194             //- Istream operator
195             friend Istream& operator>>
196             (
197                 Istream& is,
198                 kinematicParcelInjectionData& data
199             );
203 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
205 } // End namespace Foam
207 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 #include "kinematicParcelInjectionDataI.H"
211 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 #endif
215 // ************************************************************************* //