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: ************************ //