KinematicCloud.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
9  Copyright (C) 2016-2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::KinematicCloud
29 
30 Group
31  grpLagrangianIntermediateClouds
32 
33 Description
34  Templated base class for kinematic cloud
35 
36  - cloud function objects
37 
38  - particle forces, e.g.
39  - buoyancy
40  - drag
41  - pressure gradient
42  - ...
43 
44  - sub-models:
45  - dispersion model
46  - injection model
47  - patch interaction model
48  - stochastic collision model
49  - surface film model
50 
51 SourceFiles
52  KinematicCloudI.H
53  KinematicCloud.C
54 
55 \*---------------------------------------------------------------------------*/
56 
57 #ifndef KinematicCloud_H
58 #define KinematicCloud_H
59 
60 #include "particle.H"
61 #include "Cloud.H"
62 #include "kinematicCloud.H"
63 #include "IOdictionary.H"
64 #include "autoPtr.H"
65 #include "Random.H"
66 #include "fvMesh.H"
67 #include "volFields.H"
68 #include "fvMatrices.H"
69 #include "cloudSolution.H"
70 
71 #include "ParticleForceList.H"
73 
74 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
75 
76 namespace Foam
77 {
78 
79 // Forward declaration of classes
80 
81 class integrationScheme;
82 
83 template<class CloudType>
84 class InjectionModelList;
85 
86 template<class CloudType>
87 class DispersionModel;
88 
89 template<class CloudType>
91 
92 template<class CloudType>
93 class SurfaceFilmModel;
94 
95 template<class CloudType>
97 
98 
99 /*---------------------------------------------------------------------------*\
100  Class KinematicCloud Declaration
101 \*---------------------------------------------------------------------------*/
102 
103 template<class CloudType>
104 class KinematicCloud
105 :
106  public CloudType,
107  public kinematicCloud
108 {
109 public:
110 
111  // Public typedefs
112 
113  //- Type of cloud this cloud was instantiated for
114  typedef CloudType cloudType;
115 
116  //- Type of parcel the cloud was instantiated for
117  typedef typename CloudType::particleType parcelType;
118 
119  //- Convenience typedef for this cloud type
121 
122  //- Force models type
124 
125  //- Function object type
127  functionType;
128 
129 
130 private:
131 
132  // Private data
133 
134  //- Cloud copy pointer
135  autoPtr<KinematicCloud<CloudType>> cloudCopyPtr_;
136 
137 
138  // Private Member Functions
139 
140  //- No copy construct
141  KinematicCloud(const KinematicCloud&) = delete;
142 
143  //- No copy assignment
144  void operator=(const KinematicCloud&) = delete;
145 
146 
147 protected:
148 
149  // Protected data
150 
151  //- References to the mesh and time databases
152  const fvMesh& mesh_;
153 
154  //- Dictionary of particle properties
156 
157  //- Dictionary of output properties
159 
160  //- Solution properties
162 
163  //- Parcel constant properties
165 
166  //- Sub-models dictionary
168 
169  //- Random number generator - used by some injection routines
170  mutable Random rndGen_;
171 
172  //- Cell occupancy information for each parcel, (demand driven)
174 
175  //- Cell length scale
177 
178 
179  // References to the carrier gas fields
180 
181  //- Density [kg/m3]
182  const volScalarField& rho_;
183 
184  //- Velocity [m/s]
185  const volVectorField& U_;
186 
187  //- Dynamic viscosity [Pa.s]
188  const volScalarField& mu_;
189 
190 
191  // Environmental properties
192 
193  //- Gravity
194  const dimensionedVector& g_;
195 
196  //- Averaged ambient domain pressure
197  scalar pAmbient_;
198 
199 
200  //- Optional particle forces
202 
203  //- Optional cloud function objects
205 
206 
207  // References to the cloud sub-models
208 
209  //- Injector models
211 
212  //- Dispersion model
215 
216  //- Patch interaction model
219 
220  //- Stochastic collision model
223 
224  //- Surface film model
227 
228 
229  // Reference to the particle integration schemes
230 
231  //- Velocity integration
233 
234 
235  // Sources
236 
237  //- Momentum
239 
240  //- Coefficient for carrier phase U equation
242 
243 
244  // Initialisation
245 
246  //- Set cloud sub-models
247  void setModels();
248 
249 
250  // Cloud evolution functions
251 
252  //- Solve the cloud - calls all evolution functions
253  template<class TrackCloudType>
254  void solve
255  (
256  TrackCloudType& cloud,
257  typename parcelType::trackingData& td
258  );
259 
260  //- Build the cellOccupancy
261  void buildCellOccupancy();
262 
263  //- Update (i.e. build) the cellOccupancy if it has
264  // already been used
265  void updateCellOccupancy();
266 
267  //- Evolve the cloud
268  template<class TrackCloudType>
269  void evolveCloud
270  (
271  TrackCloudType& cloud,
272  typename parcelType::trackingData& td
273  );
274 
275  //- Post-evolve
276  void postEvolve();
277 
278  //- Reset state of cloud
280 
281 
282 public:
283 
284  // Constructors
285 
286  //- Construct given carrier gas fields
288  (
289  const word& cloudName,
290  const volScalarField& rho,
291  const volVectorField& U,
292  const volScalarField& mu,
293  const dimensionedVector& g,
294  bool readFields = true
295  );
296 
297  //- Copy constructor with new name
299  (
301  const word& name
302  );
303 
304  //- Copy constructor with new name - creates bare cloud
306  (
307  const fvMesh& mesh,
308  const word& name,
310  );
311 
312  //- Construct and return clone based on (this) with new name
313  virtual autoPtr<Cloud<parcelType>> clone(const word& name)
314  {
316  (
317  new KinematicCloud(*this, name)
318  );
319  }
320 
321  //- Construct and return bare clone based on (this) with new name
322  virtual autoPtr<Cloud<parcelType>> cloneBare(const word& name) const
323  {
325  (
326  new KinematicCloud(this->mesh(), name, *this)
327  );
328  }
329 
330 
331  //- Destructor
332  virtual ~KinematicCloud() = default;
333 
334 
335  // Member Functions
336 
337  // Access
338 
339  //- Return a reference to the cloud copy
340  inline const KinematicCloud& cloudCopy() const;
341 
342 
343  // References to the mesh and databases
344 
345  //- Return reference to the mesh
346  inline const fvMesh& mesh() const;
347 
348  //- Return particle properties dictionary
349  inline const IOdictionary& particleProperties() const;
350 
351  //- Return output properties dictionary
352  inline const IOdictionary& outputProperties() const;
353 
354  //- Return non-const access to the output properties dictionary
355  inline IOdictionary& outputProperties();
356 
357  //- Return const access to the solution properties
358  inline const cloudSolution& solution() const;
359 
360  //- Return access to the solution properties
361  inline cloudSolution& solution();
362 
363  //- Return the constant properties
364  inline const typename parcelType::constantProperties&
365  constProps() const;
366 
367  //- Return access to the constant properties
368  inline typename parcelType::constantProperties& constProps();
369 
370  //- Return reference to the sub-models dictionary
371  inline const dictionary& subModelProperties() const;
372 
373 
374  // Cloud data
375 
376  //- Return reference to the random object
377  inline Random& rndGen() const;
378 
379  //- Return the cell occupancy information for each
380  // parcel, non-const access, the caller is
381  // responsible for updating it for its own purposes
382  // if particles are removed or created.
384 
385  //- Return the cell length scale
386  inline const scalarField& cellLengthScale() const;
387 
388 
389  // References to the carrier gas fields
390 
391  //- Return carrier gas velocity
392  inline const volVectorField& U() const;
393 
394  //- Return carrier gas density
395  inline const volScalarField& rho() const;
396 
397  //- Return carrier gas dynamic viscosity
398  inline const volScalarField& mu() const;
399 
400 
401  // Environmental properties
402 
403  //- Gravity
404  inline const dimensionedVector& g() const;
405 
406  //- Return const-access to the ambient pressure
407  inline scalar pAmbient() const;
408 
409  //- Return reference to the ambient pressure
410  inline scalar& pAmbient();
411 
412 
413  //- Optional particle forces
414  inline const forceType& forces() const;
415 
416  //- Return the optional particle forces
417  inline forceType& forces();
418 
419  //- Optional cloud function objects
420  inline functionType& functions();
421 
422 
423  // Sub-models
424 
425  //- Return const access to the injection model
427  injectors() const;
428 
429  //- Return reference to the injection model
431  injectors();
432 
433  //- Return const-access to the dispersion model
435  dispersion() const;
436 
437  //- Return reference to the dispersion model
439  dispersion();
440 
441  //- Return const-access to the patch interaction model
443  patchInteraction() const;
444 
445  //- Return reference to the patch interaction model
448 
449  //- Return const-access to the stochastic collision model
450  inline const
452  stochasticCollision() const;
453 
454  //- Return reference to the stochastic collision model
457 
458  //- Return const-access to the surface film model
460  surfaceFilm() const;
461 
462  //- Return reference to the surface film model
464  surfaceFilm();
465 
466 
467  // Integration schemes
468 
469  //-Return reference to velocity integration
470  inline const integrationScheme& UIntegrator() const;
471 
472 
473  // Sources
474 
475  // Momentum
476 
477  //- Return reference to momentum source
479 
480  //- Return const reference to momentum source
481  inline const volVectorField::Internal&
482  UTrans() const;
483 
484  //- Return coefficient for carrier phase U equation
486 
487  //- Return const coefficient for carrier phase U equation
488  inline const volScalarField::Internal&
489  UCoeff() const;
490 
491  //- Return tmp momentum source term
492  inline tmp<fvVectorMatrix> SU(volVectorField& U) const;
493 
494 
495  // Check
496 
497  //- Total number of parcels
498  virtual label nParcels() const
499  {
500  return CloudType::nParcels();
501  }
502 
503  //- Total mass in system
504  inline scalar massInSystem() const;
505 
506  //- Total linear momentum of the system
507  inline vector linearMomentumOfSystem() const;
508 
509  //- Average particle per parcel
510  inline scalar totalParticlePerParcel() const;
511 
512  //- Total linear kinetic energy in the system
513  inline scalar linearKineticEnergyOfSystem() const;
514 
515  //- Total rotational kinetic energy in the system
516  inline scalar rotationalKineticEnergyOfSystem() const;
517 
518  //- Mean diameter Dij
519  inline scalar Dij(const label i, const label j) const;
520 
521  //- Max diameter
522  inline scalar Dmax() const;
523 
524 
525  // Fields
526 
527  //- Volume swept rate of parcels per cell
528  inline const tmp<volScalarField> vDotSweep() const;
529 
530  //- Return the particle volume fraction field
531  // Note: for particles belonging to this cloud only
532  inline const tmp<volScalarField> theta() const;
533 
534  //- Return the particle mass fraction field
535  // Note: for particles belonging to this cloud only
536  inline const tmp<volScalarField> alpha() const;
537 
538  //- Return the particle effective density field
539  // Note: for particles belonging to this cloud only
540  inline const tmp<volScalarField> rhoEff() const;
541 
542 
543  // Cloud evolution functions
544 
545  //- Set parcel thermo properties
547  (
548  parcelType& parcel,
549  const scalar lagrangianDt
550  );
551 
552  //- Check parcel properties
554  (
555  parcelType& parcel,
556  const scalar lagrangianDt,
557  const bool fullyDescribed
558  );
559 
560  //- Store the current cloud state
561  void storeState();
562 
563  //- Reset the current cloud to the previously stored state
564  void restoreState();
565 
566  //- Reset the cloud source terms
567  void resetSourceTerms();
568 
569  //- Relax field
570  template<class Type>
571  void relax
572  (
574  const DimensionedField<Type, volMesh>& field0,
575  const word& name
576  ) const;
577 
578  //- Scale field
579  template<class Type>
580  void scale
581  (
583  const word& name
584  ) const;
585 
586  //- Apply relaxation to (steady state) cloud sources
587  void relaxSources(const KinematicCloud<CloudType>& cloudOldTime);
588 
589  //- Apply scaling to (transient) cloud sources
590  void scaleSources();
591 
592  //- Pre-evolve
593  void preEvolve();
594 
595  //- Evolve the cloud
596  void evolve();
597 
598  //- Particle motion
599  template<class TrackCloudType>
600  void motion
601  (
602  TrackCloudType& cloud,
603  typename parcelType::trackingData& td
604  );
605 
606  //- Calculate the patch normal and velocity to interact with,
607  // accounting for patch motion if required.
608  void patchData
609  (
610  const parcelType& p,
611  const polyPatch& pp,
612  vector& normal,
613  vector& Up
614  ) const;
615 
616 
617  // Mapping
618 
619  //- Update mesh
620  void updateMesh();
621 
622  //- Remap the cells of particles corresponding to the
623  // mesh topology change with a default tracking data object
624  virtual void autoMap(const mapPolyMesh&);
625 
626 
627  // I-O
628 
629  //- Print cloud information
630  void info();
631 
632  //- Read particle fields from objects in the obr registry
633  virtual void readObjects(const objectRegistry& obr);
634 
635  //- Write particle fields as objects into the obr registry
636  virtual void writeObjects(objectRegistry& obr) const;
637 };
638 
639 
640 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
641 
642 } // End namespace Foam
643 
644 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
645 
646 #include "KinematicCloudI.H"
647 
648 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
649 
650 #ifdef NoRepository
651  #include "KinematicCloud.C"
652 #endif
653 
654 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
655 
656 #endif
657 
658 // ************************************************************************* //
Foam::KinematicCloud::patchData
void patchData(const parcelType &p, const polyPatch &pp, vector &normal, vector &Up) const
Calculate the patch normal and velocity to interact with,.
Definition: KinematicCloud.C:706
volFields.H
Foam::IOdictionary
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:54
Foam::KinematicCloud::dispersion
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
Definition: KinematicCloudI.H:196
Foam::Random
Random number generator.
Definition: Random.H:59
Foam::KinematicCloud::UIntegrator
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
Definition: KinematicCloudI.H:260
Foam::KinematicCloud::scaleSources
void scaleSources()
Apply scaling to (transient) cloud sources.
Definition: KinematicCloud.C:650
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::KinematicCloud::surfaceFilmModel_
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
Surface film model.
Definition: KinematicCloud.H:225
Foam::KinematicCloud::outputProperties
const IOdictionary & outputProperties() const
Return output properties dictionary.
Definition: KinematicCloudI.H:59
Foam::KinematicCloud::writeObjects
virtual void writeObjects(objectRegistry &obr) const
Write particle fields as objects into the obr registry.
Definition: KinematicCloud.C:805
Foam::KinematicCloud::g_
const dimensionedVector & g_
Gravity.
Definition: KinematicCloud.H:193
Foam::KinematicCloud::clone
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
Definition: KinematicCloud.H:312
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
Foam::KinematicCloud::functions
functionType & functions()
Optional cloud function objects.
Definition: KinematicCloudI.H:172
Foam::KinematicCloud::setModels
void setModels()
Set cloud sub-models.
Definition: KinematicCloud.C:44
kinematicCloud.H
Foam::KinematicCloud::motion
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
Definition: KinematicCloud.C:692
Foam::KinematicCloud::pAmbient
scalar pAmbient() const
Return const-access to the ambient pressure.
Definition: KinematicCloudI.H:140
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:59
Foam::KinematicCloud::stochasticCollisionModel_
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
Definition: KinematicCloud.H:221
Foam::DispersionModel
Base class for dispersion modelling.
Definition: KinematicCloud.H:86
Foam::KinematicCloud::U_
const volVectorField & U_
Velocity [m/s].
Definition: KinematicCloud.H:184
Foam::KinematicCloud::patchInteractionModel_
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
Definition: KinematicCloud.H:217
Foam::KinematicCloud::totalParticlePerParcel
scalar totalParticlePerParcel() const
Average particle per parcel.
Definition: KinematicCloudI.H:296
Foam::KinematicCloud::mesh
const fvMesh & mesh() const
Return reference to the mesh.
Definition: KinematicCloudI.H:43
Foam::KinematicCloud::SU
tmp< fvVectorMatrix > SU(volVectorField &U) const
Return tmp momentum source term.
Definition: KinematicCloudI.H:424
Foam::KinematicCloud::mu
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
Definition: KinematicCloudI.H:126
Foam::KinematicCloud::relaxSources
void relaxSources(const KinematicCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
Definition: KinematicCloud.C:640
Foam::KinematicCloud::massInSystem
scalar massInSystem() const
Total mass in system.
Definition: KinematicCloudI.H:267
Foam::KinematicCloud::rhoEff
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
Definition: KinematicCloudI.H:572
Foam::Cloud::nParcels
virtual label nParcels() const
Return the number of particles in the cloud.
Definition: Cloud.H:163
Foam::KinematicCloud::UCoeff
volScalarField::Internal & UCoeff()
Return coefficient for carrier phase U equation.
Definition: KinematicCloudI.H:408
Cloud.H
Foam::KinematicCloud::cloudCopy
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
Definition: KinematicCloudI.H:36
Foam::KinematicCloud::UTrans_
autoPtr< volVectorField::Internal > UTrans_
Momentum.
Definition: KinematicCloud.H:237
Foam::KinematicCloud::storeState
void storeState()
Store the current cloud state.
Definition: KinematicCloud.C:583
Foam::KinematicCloud::UTrans
volVectorField::Internal & UTrans()
Return reference to momentum source.
Definition: KinematicCloudI.H:392
Foam::integrationScheme
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.
Definition: integrationScheme.H:90
Foam::KinematicCloud::pAmbient_
scalar pAmbient_
Averaged ambient domain pressure.
Definition: KinematicCloud.H:196
Foam::KinematicCloud::nParcels
virtual label nParcels() const
Total number of parcels.
Definition: KinematicCloud.H:497
Foam::KinematicCloud::forces
const forceType & forces() const
Optional particle forces.
Definition: KinematicCloudI.H:156
Foam::KinematicCloud::stochasticCollision
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
Definition: KinematicCloudI.H:228
Foam::CollidingParcel::constantProperties
Class to hold thermo particle constant properties.
Definition: CollidingParcel.H:88
Foam::KinematicCloud::readObjects
virtual void readObjects(const objectRegistry &obr)
Read particle fields from objects in the obr registry.
Definition: KinematicCloud.C:798
fvMatrices.H
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Foam::objectRegistry
Registry of regIOobjects.
Definition: objectRegistry.H:60
Foam::KinematicCloud::constProps
const parcelType::constantProperties & constProps() const
Return the constant properties.
Definition: KinematicCloudI.H:89
Foam::KinematicCloud::vDotSweep
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
Definition: KinematicCloudI.H:460
Foam::KinematicCloud::rotationalKineticEnergyOfSystem
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
Foam::kinematicCloud
Virtual abstract base class for templated KinematicCloud.
Definition: kinematicCloud.H:52
Foam::KinematicCloud::evolve
void evolve()
Evolve the cloud.
Definition: KinematicCloud.C:678
Foam::KinematicCloud
Templated base class for kinematic cloud.
Definition: KinematicCloud.H:103
Foam::DSMCCloud::cloudName
const word & cloudName() const
Return the cloud type.
Definition: DSMCCloudI.H:37
Foam::PatchInteractionModel
Templated patch interaction model class.
Definition: KinematicCloud.H:89
Foam::KinematicCloud::~KinematicCloud
virtual ~KinematicCloud()=default
Destructor.
Foam::KinematicCloud::injectors_
InjectionModelList< KinematicCloud< CloudType > > injectors_
Injector models.
Definition: KinematicCloud.H:209
Foam::StochasticCollisionModel
Templated stochastic collision model class.
Definition: KinematicCloud.H:95
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:62
Foam::Field< scalar >
CloudFunctionObjectList.H
Foam::KinematicCloud::cellOccupancy
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
Definition: KinematicCloudI.H:371
Foam::KinematicCloud::checkParcelProperties
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
Definition: KinematicCloud.C:566
Foam::SurfaceFilmModel
Templated wall surface film model class.
Definition: KinematicCloud.H:92
Foam::polyPatch
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:66
Foam::name
word name(const complex &c)
Return string representation of complex.
Definition: complex.C:76
ParticleForceList.H
Foam::KinematicCloud::UIntegrator_
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
Definition: KinematicCloud.H:231
Foam::cloudSolution
Stores all relevant solution info for cloud.
Definition: cloudSolution.H:53
Foam::KinematicCloud::rndGen_
Random rndGen_
Random number generator - used by some injection routines.
Definition: KinematicCloud.H:169
Foam::KinematicCloud::kinematicCloudType
KinematicCloud< CloudType > kinematicCloudType
Convenience typedef for this cloud type.
Definition: KinematicCloud.H:119
field
rDeltaTY field()
Foam::KinematicCloud::cellOccupancyPtr_
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
Definition: KinematicCloud.H:172
Foam::KinematicCloud::particleProperties_
IOdictionary particleProperties_
Dictionary of particle properties.
Definition: KinematicCloud.H:154
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:71
Foam::KinematicCloud::UCoeff_
autoPtr< volScalarField::Internal > UCoeff_
Coefficient for carrier phase U equation.
Definition: KinematicCloud.H:240
Foam::KinematicCloud::mu_
const volScalarField & mu_
Dynamic viscosity [Pa.s].
Definition: KinematicCloud.H:187
Foam::KinematicCloud::functionType
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
Function object type.
Definition: KinematicCloud.H:126
Foam::KinematicCloud::solution
const cloudSolution & solution() const
Return const access to the solution properties.
Definition: KinematicCloudI.H:74
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
Foam::KinematicCloud::mesh_
const fvMesh & mesh_
References to the mesh and time databases.
Definition: KinematicCloud.H:151
Foam::dimensioned< vector >
KinematicCloudI.H
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:84
fvMesh.H
Foam::Cloud::particleType
ParticleType particleType
Definition: Cloud.H:113
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::KinematicCloud::autoMap
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
Definition: KinematicCloud.C:756
Foam::KinematicCloud::setParcelThermoProperties
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
Definition: KinematicCloud.C:555
Foam::KinematicCloud::particleProperties
const IOdictionary & particleProperties() const
Return particle properties dictionary.
Definition: KinematicCloudI.H:51
Random.H
Foam::CloudFunctionObjectList
List of cloud function objects.
Definition: CloudFunctionObjectList.H:53
Foam::readFields
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the templated type.
Definition: ReadFieldsTemplates.C:312
Foam::KinematicCloud::resetSourceTerms
void resetSourceTerms()
Reset the cloud source terms.
Definition: KinematicCloud.C:604
KinematicCloud.C
Foam::KinematicCloud::rndGen
Random & rndGen() const
Return reference to the random object.
Definition: KinematicCloudI.H:363
IOdictionary.H
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::cloud
A cloud is a registry collection of lagrangian particles.
Definition: cloud.H:57
Foam::KinematicCloud::solve
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
Solve the cloud - calls all evolution functions.
Definition: KinematicCloud.C:96
Foam::KinematicCloud::functions_
functionType functions_
Optional cloud function objects.
Definition: KinematicCloud.H:203
Foam::KinematicCloud::patchInteraction
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
Definition: KinematicCloudI.H:212
cloudSolution.H
Foam::KinematicCloud::subModelProperties_
const dictionary subModelProperties_
Sub-models dictionary.
Definition: KinematicCloud.H:166
Foam::Vector< scalar >
Foam::KinematicCloud::cloudReset
void cloudReset(KinematicCloud< CloudType > &c)
Reset state of cloud.
Definition: KinematicCloud.C:264
Foam::KinematicCloud::constProps_
parcelType::constantProperties constProps_
Parcel constant properties.
Definition: KinematicCloud.H:163
Foam::KinematicCloud::postEvolve
void postEvolve()
Post-evolve.
Definition: KinematicCloud.C:233
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:102
Foam::KinematicCloud::g
const dimensionedVector & g() const
Gravity.
Definition: KinematicCloudI.H:133
Foam::KinematicCloud::updateMesh
void updateMesh()
Update mesh.
Definition: KinematicCloud.C:747
Foam::KinematicCloud::solution_
cloudSolution solution_
Solution properties.
Definition: KinematicCloud.H:160
Foam::KinematicCloud::theta
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
Definition: KinematicCloudI.H:498
Foam::KinematicCloud::parcelType
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
Definition: KinematicCloud.H:116
Foam::CollidingParcel::trackingData
ParcelType::trackingData trackingData
Use base tracking data.
Definition: CollidingParcel.H:127
Foam::KinematicCloud::forces_
forceType forces_
Optional particle forces.
Definition: KinematicCloud.H:200
Foam::KinematicCloud::relax
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
Definition: KinematicCloud.C:614
Foam::KinematicCloud::injectors
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
Definition: KinematicCloudI.H:180
Foam::KinematicCloud::cloudType
CloudType cloudType
Type of cloud this cloud was instantiated for.
Definition: KinematicCloud.H:113
particle.H
Foam::mapPolyMesh
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Definition: mapPolyMesh.H:160
Foam::constant::universal::c
const dimensionedScalar c
Speed of light in a vacuum.
Foam::KinematicCloud::Dij
scalar Dij(const label i, const label j) const
Mean diameter Dij.
Definition: KinematicCloudI.H:326
Foam::KinematicCloud::restoreState
void restoreState()
Reset the current cloud to the previously stored state.
Definition: KinematicCloud.C:596
Foam::KinematicCloud::updateCellOccupancy
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
Definition: KinematicCloud.C:172
Foam::KinematicCloud::cellLengthScale_
scalarField cellLengthScale_
Cell length scale.
Definition: KinematicCloud.H:175
Foam::KinematicCloud::subModelProperties
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
Definition: KinematicCloudI.H:105
Foam::KinematicCloud::info
void info()
Print cloud information.
Definition: KinematicCloud.C:765
Foam::KinematicCloud::buildCellOccupancy
void buildCellOccupancy()
Build the cellOccupancy.
Definition: KinematicCloud.C:140
Foam::KinematicCloud::U
const volVectorField & U() const
Return carrier gas velocity.
Definition: KinematicCloudI.H:119
Foam::KinematicCloud::linearKineticEnergyOfSystem
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
Definition: KinematicCloudI.H:311
Foam::KinematicCloud::rho_
const volScalarField & rho_
Density [kg/m3].
Definition: KinematicCloud.H:181
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::KinematicCloud::linearMomentumOfSystem
vector linearMomentumOfSystem() const
Total linear momentum of the system.
Definition: KinematicCloudI.H:281
Foam::KinematicCloud::Dmax
scalar Dmax() const
Max diameter.
Definition: KinematicCloudI.H:348
Foam::KinematicCloud::evolveCloud
void evolveCloud(TrackCloudType &cloud, typename parcelType::trackingData &td)
Evolve the cloud.
Definition: KinematicCloud.C:187
Foam::KinematicCloud::dispersionModel_
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
Dispersion model.
Definition: KinematicCloud.H:213
Foam::KinematicCloud::forceType
ParticleForceList< KinematicCloud< CloudType > > forceType
Force models type.
Definition: KinematicCloud.H:122
Foam::KinematicCloud::cloneBare
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
Definition: KinematicCloud.H:321
Foam::KinematicCloud::surfaceFilm
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
Definition: KinematicCloudI.H:244
Foam::ParticleForceList
List of particle forces.
Definition: ParticleForceList.H:53
Foam::KinematicCloud::preEvolve
void preEvolve()
Pre-evolve.
Definition: KinematicCloud.C:658
Foam::KinematicCloud::scale
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
Definition: KinematicCloud.C:628
Foam::InjectionModelList
List of injection models.
Definition: KinematicCloud.H:83
Foam::KinematicCloud::alpha
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
Definition: KinematicCloudI.H:536
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54
Foam::KinematicCloud::rho
const volScalarField & rho() const
Return carrier gas density.
Definition: KinematicCloudI.H:112
Foam::KinematicCloud::cellLengthScale
const scalarField & cellLengthScale() const
Return the cell length scale.
Definition: KinematicCloudI.H:384
Foam::KinematicCloud::outputProperties_
IOdictionary outputProperties_
Dictionary of output properties.
Definition: KinematicCloud.H:157
autoPtr.H