00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef parcel_H
00033 #define parcel_H
00034
00035 #include <lagrangian/Particle.H>
00036 #include <OpenFOAM/contiguous.H>
00037
00038
00039
00040 namespace Foam
00041 {
00042
00043 class spray;
00044
00045
00046
00047
00048
00049 class parcel
00050 :
00051 public Particle<parcel>
00052 {
00053
00054
00055
00056 List<word> liquidComponents_;
00057
00058
00059
00060
00061 scalar d_;
00062
00063
00064 scalar T_;
00065
00066
00067 scalar m_;
00068
00069
00070 scalar y_;
00071
00072
00073 scalar yDot_;
00074
00075
00076 scalar ct_;
00077
00078
00079 scalar ms_;
00080
00081
00082 scalar tTurb_;
00083
00084
00085 scalar liquidCore_;
00086
00087
00088
00089
00090 scalar injector_;
00091
00092
00093 vector U_;
00094
00095
00096 vector Uturb_;
00097
00098
00099
00100 vector n_;
00101
00102
00103 scalarField X_;
00104
00105
00106
00107
00108 scalar tMom_;
00109
00110
00111
00112
00113
00114 void setRelaxationTimes
00115 (
00116 label celli,
00117 scalar& tauMomentum,
00118 scalarField& tauEvaporation,
00119 scalar& tauHeatTransfer,
00120 scalarField& tauBoiling,
00121 const spray& sprayDatabase,
00122 const scalar rho,
00123 const vector& Up,
00124 const scalar temperature,
00125 const scalar pressure,
00126 const scalarField& Yf,
00127 const scalarField& m0,
00128 const scalar dt
00129 );
00130
00131
00132 void updateParcelProperties
00133 (
00134 const scalar dt,
00135 spray& sprayData,
00136 const label celli,
00137 const label facei
00138 );
00139
00140
00141 public:
00142
00143 friend class Cloud<parcel>;
00144
00145
00146
00147
00148
00149 parcel
00150 (
00151 const Cloud<parcel>& cloud,
00152 const vector& position,
00153 const label celli,
00154 const vector& n,
00155 const scalar d,
00156 const scalar T,
00157 const scalar m,
00158 const scalar y,
00159 const scalar yDot,
00160 const scalar ct,
00161 const scalar ms,
00162 const scalar tTurb,
00163 const scalar liquidCore,
00164 const scalar injector,
00165 const vector& U,
00166 const vector& Uturb,
00167 const scalarField& X,
00168 const List<word>& liquidNames
00169 );
00170
00171
00172 parcel
00173 (
00174 const Cloud<parcel>& cloud,
00175 Istream& is,
00176 bool readFields = true
00177 );
00178
00179
00180
00181
00182
00183
00184
00185 inline const List<word>& liquidNames() const;
00186
00187
00188 inline const List<word>& fuelNames() const;
00189
00190
00191 inline scalar d() const;
00192
00193
00194 inline scalar& d();
00195
00196
00197 inline scalar T() const;
00198
00199
00200 inline scalar& T();
00201
00202
00203 inline scalar m() const;
00204
00205
00206 inline scalar& m();
00207
00208
00209 inline scalar dev() const;
00210
00211
00212 inline scalar& dev();
00213
00214
00215
00216 inline scalar ddev() const;
00217
00218
00219
00220 inline scalar& ddev();
00221
00222
00223 inline scalar ct() const;
00224
00225
00226 inline scalar& ct();
00227
00228
00229 inline scalar& ms();
00230
00231
00232 inline scalar ms() const;
00233
00234
00235 inline scalar& tTurb();
00236
00237
00238 inline scalar tTurb() const;
00239
00240
00241 inline scalar& liquidCore();
00242
00243
00244 inline scalar liquidCore() const;
00245
00246
00247 inline scalar& injector();
00248
00249
00250 inline scalar injector() const;
00251
00252
00253 inline const vector& U() const;
00254
00255
00256 inline vector& U();
00257
00258
00259 inline const vector& Uturb() const;
00260
00261
00262 inline vector& Uturb();
00263
00264
00265 inline const vector& n() const;
00266
00267
00268 inline vector& n();
00269
00270
00271 inline const scalarField& X() const;
00272
00273
00274 inline scalarField& X();
00275
00276
00277 inline scalar& tMom();
00278
00279
00280 inline scalar tMom() const;
00281
00282
00283
00284
00285
00286 scalar N(const scalar rho) const;
00287
00288
00289 inline vector Urel(const vector&) const;
00290
00291
00292
00293
00294
00295 scalar Re
00296 (
00297 const scalar rho,
00298 const vector& U,
00299 const scalar mu
00300 ) const;
00301
00302
00303 scalar Re
00304 (
00305 const vector& U,
00306 const scalar nu
00307 ) const;
00308
00309
00310 scalar We
00311 (
00312 const vector& U,
00313 const scalar rho,
00314 const scalar sigma
00315 ) const;
00316
00317
00318 scalar Sc
00319 (
00320 const scalar mu,
00321 const scalar rho,
00322 const scalar massDiffusion
00323 ) const;
00324
00325
00326 scalar Sc
00327 (
00328 const scalar nu,
00329 const scalar massDiffusion
00330 ) const;
00331
00332
00333 scalar Pr
00334 (
00335 const scalar cp,
00336 const scalar mu,
00337 const scalar kappa
00338 ) const;
00339
00340
00341 scalar Vd() const;
00342
00343
00344 scalar V(const scalar rho) const;
00345
00346
00347
00348
00349 bool move(spray& sprayData);
00350
00351
00352
00353 void transformProperties(const tensor& T);
00354
00355
00356
00357 void transformProperties(const vector& separation);
00358
00359
00360
00361
00362 inline void correctNormal(const vector& sym);
00363
00364
00365
00366
00367 static void readFields(Cloud<parcel>& c);
00368
00369 static void writeFields(const Cloud<parcel>& c);
00370
00371
00372
00373
00374 friend Ostream& operator<<(Ostream&, const parcel&);
00375 };
00376
00377
00378 template<>
00379 inline bool contiguous<parcel>()
00380 {
00381 return true;
00382 }
00383
00384
00385
00386
00387 }
00388
00389
00390
00391 #include <dieselSpray/parcelI.H>
00392
00393
00394
00395 #endif
00396
00397