FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

kinematicParcelInjectionData.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 2010-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::kinematicParcelInjectionData
00026 
00027 Description
00028     Container class to provide injection data for kinematic parcels
00029 
00030 SourceFiles
00031     kinematicParcelInjectionData.C
00032 
00033 \*---------------------------------------------------------------------------*/
00034 
00035 #ifndef kinematicParcelInjectionData_H
00036 #define kinematicParcelInjectionData_H
00037 
00038 #include <OpenFOAM/dictionary.H>
00039 #include <OpenFOAM/vector.H>
00040 #include <OpenFOAM/point.H>
00041 
00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00043 
00044 namespace Foam
00045 {
00046 
00047 // Forward declaration of classes
00048 class kinematicParcelInjectionData;
00049 
00050 // Forward declaration of friend functions
00051 
00052 Ostream& operator<<
00053 (
00054     Ostream&,
00055     const kinematicParcelInjectionData&
00056 );
00057 
00058 Istream& operator>>
00059 (
00060     Istream&,
00061     kinematicParcelInjectionData&
00062 );
00063 
00064 /*---------------------------------------------------------------------------*\
00065                Class kinematicParcelInjectionData Declaration
00066 \*---------------------------------------------------------------------------*/
00067 
00068 class kinematicParcelInjectionData
00069 {
00070 protected:
00071 
00072     // Parcel properties
00073 
00074         //- Position [m]
00075         point x_;
00076 
00077         //- Velocity [m/s]
00078         vector U_;
00079 
00080         //- Diameter [m]
00081         scalar d_;
00082 
00083         //- Density [kg/m3]
00084         scalar rho_;
00085 
00086         //- Mass flow rate [kg/s]
00087         scalar mDot_;
00088 
00089 
00090 public:
00091 
00092     //- Runtime type information
00093     TypeName("kinematicParcelInjectionData");
00094 
00095     // Constructors
00096 
00097         //- Null constructor
00098         kinematicParcelInjectionData();
00099 
00100         //- Construct from dictionary
00101         kinematicParcelInjectionData(const dictionary& dict);
00102 
00103         //- Construct from Istream
00104         kinematicParcelInjectionData(Istream& is);
00105 
00106 
00107     //-Destructor
00108     virtual ~kinematicParcelInjectionData();
00109 
00110 
00111     // Access
00112 
00113         //- Return const access to the position
00114         inline const point& x() const;
00115 
00116         //- Return const access to the velocity
00117         inline const vector& U() const;
00118 
00119         //- Return const access to the diameter
00120         inline scalar d() const;
00121 
00122         //- Return const access to the density
00123         inline scalar rho() const;
00124 
00125         //- Return const access to the mass flow rate
00126         inline scalar mDot() const;
00127 
00128 
00129     // Edit
00130 
00131         //- Return access to the position
00132         inline point& x();
00133 
00134         //- Return access to the velocity
00135         inline vector& U();
00136 
00137         //- Return access to the diameter
00138         inline scalar& d();
00139 
00140         //- Return access to the density
00141         inline scalar& rho();
00142 
00143         //- Return access to the mass flow rate
00144         inline scalar& mDot();
00145 
00146 
00147     // I-O
00148 
00149         // Friend Operators
00150 
00151             friend bool operator==
00152             (
00153                 const kinematicParcelInjectionData& a,
00154                 const kinematicParcelInjectionData& b
00155             )
00156             {
00157                 notImplemented
00158                 (
00159                     "operator=="
00160                     "("
00161                         "const kinematicParcelInjectionData&, "
00162                         "const kinematicParcelInjectionData&"
00163                     ")"
00164                 );
00165 
00166                 return false;
00167             }
00168 
00169             friend bool operator!=
00170             (
00171                 const kinematicParcelInjectionData& a,
00172                 const kinematicParcelInjectionData& b
00173             )
00174             {
00175                 notImplemented
00176                 (
00177                     "operator=="
00178                     "("
00179                         "const kinematicParcelInjectionData&, "
00180                         "const kinematicParcelInjectionData&"
00181                     ")"
00182                 );
00183 
00184                 return false;
00185             }
00186 
00187             //- Ostream operator
00188             friend Ostream& operator<<
00189             (
00190                 Ostream& os,
00191                 const kinematicParcelInjectionData& data
00192             );
00193 
00194             //- Istream operator
00195             friend Istream& operator>>
00196             (
00197                 Istream& is,
00198                 kinematicParcelInjectionData& data
00199             );
00200 };
00201 
00202 
00203 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00204 
00205 } // End namespace Foam
00206 
00207 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00208 
00209 #include "kinematicParcelInjectionDataI.H"
00210 
00211 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00212 
00213 #endif
00214 
00215 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines