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