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-2020 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 template<class CloudType>
99 class PackingModel;
100 
101 template<class CloudType>
102 class DampingModel;
103 
104 template<class CloudType>
105 class IsotropyModel;
106 
107 
108 /*---------------------------------------------------------------------------*\
109  Class KinematicCloud Declaration
110 \*---------------------------------------------------------------------------*/
111 
112 template<class CloudType>
113 class KinematicCloud
114 :
115  public CloudType,
116  public kinematicCloud
117 {
118 public:
119 
120  // Public typedefs
121 
122  //- Type of cloud this cloud was instantiated for
123  typedef CloudType cloudType;
124 
125  //- Type of parcel the cloud was instantiated for
126  typedef typename CloudType::particleType parcelType;
127 
128  //- Convenience typedef for this cloud type
130 
131  //- Force models type
133 
134  //- Function object type
136  functionType;
137 
138 
139 private:
140 
141  // Private Data
142 
143  //- Cloud copy pointer
144  autoPtr<KinematicCloud<CloudType>> cloudCopyPtr_;
145 
146 
147  // Private Member Functions
148 
149  //- No copy construct
150  KinematicCloud(const KinematicCloud&) = delete;
151 
152  //- No copy assignment
153  void operator=(const KinematicCloud&) = delete;
154 
155 
156 protected:
157 
158  // Protected Data
159 
160  //- References to the mesh and time databases
161  const fvMesh& mesh_;
162 
163  //- Dictionary of particle properties
165 
166  //- Dictionary of output properties
168 
169  //- Solution properties
171 
172  //- Parcel constant properties
174 
175  //- Sub-models dictionary
177 
178  //- Random number generator - used by some injection routines
179  mutable Random rndGen_;
180 
181  //- Cell occupancy information for each parcel, (demand driven)
183 
184  //- Cell length scale
186 
187 
188  // References to the carrier gas fields
189 
190  //- Density [kg/m3]
191  const volScalarField& rho_;
192 
193  //- Velocity [m/s]
194  const volVectorField& U_;
195 
196  //- Dynamic viscosity [Pa.s]
197  const volScalarField& mu_;
198 
199 
200  // Environmental properties
201 
202  //- Gravity
203  const dimensionedVector& g_;
204 
205  //- Averaged ambient domain pressure
206  scalar pAmbient_;
207 
208 
209  //- Optional particle forces
211 
212  //- Optional cloud function objects
214 
215 
216  // References to the cloud sub-models
217 
218  //- Injector models
220 
221  //- Dispersion model
224 
225  //- Patch interaction model
228 
229  //- Stochastic collision model
232 
233  //- Surface film model
236 
237  //- Packing model
240 
241  //- Damping model
244 
245  //- Exchange model
248 
249 
250  // Reference to the particle integration schemes
251 
252  //- Velocity integration
254 
255 
256  // Sources
257 
258  //- Momentum
260 
261  //- Coefficient for carrier phase U equation
263 
264 
265  // Initialisation
266 
267  //- Set cloud sub-models
268  void setModels();
269 
270 
271  // Cloud evolution functions
272 
273  //- Solve the cloud - calls all evolution functions
274  template<class TrackCloudType>
275  void solve
276  (
277  TrackCloudType& cloud,
278  typename parcelType::trackingData& td
279  );
280 
281  //- Build the cellOccupancy
282  void buildCellOccupancy();
283 
284  //- Update (i.e. build) the cellOccupancy if it has
285  // already been used
286  void updateCellOccupancy();
287 
288  //- Evolve the cloud
289  template<class TrackCloudType>
290  void evolveCloud
291  (
292  TrackCloudType& cloud,
293  typename parcelType::trackingData& td
294  );
295 
296  //- Post-evolve
297  void postEvolve(const typename parcelType::trackingData& td);
298 
299  //- Reset state of cloud
301 
302 
303 public:
304 
305  // Constructors
306 
307  //- Construct given carrier gas fields
309  (
310  const word& cloudName,
311  const volScalarField& rho,
312  const volVectorField& U,
313  const volScalarField& mu,
314  const dimensionedVector& g,
315  bool readFields = true
316  );
317 
318  //- Copy constructor with new name
320  (
322  const word& name
323  );
324 
325  //- Copy constructor with new name - creates bare cloud
327  (
328  const fvMesh& mesh,
329  const word& name,
331  );
332 
333  //- Construct and return clone based on (this) with new name
334  virtual autoPtr<Cloud<parcelType>> clone(const word& name)
335  {
337  (
338  new KinematicCloud(*this, name)
339  );
340  }
341 
342  //- Construct and return bare clone based on (this) with new name
343  virtual autoPtr<Cloud<parcelType>> cloneBare(const word& name) const
344  {
346  (
347  new KinematicCloud(this->mesh(), name, *this)
348  );
349  }
350 
351 
352  //- Destructor
353  virtual ~KinematicCloud() = default;
354 
355 
356  // Member Functions
357 
358  // Access
359 
360  //- Return a reference to the cloud copy
361  inline const KinematicCloud& cloudCopy() const;
362 
363 
364  // References to the mesh and databases
365 
366  //- Return reference to the mesh
367  inline const fvMesh& mesh() const;
368 
369  //- Return particle properties dictionary
370  inline const IOdictionary& particleProperties() const;
371 
372  //- Return output properties dictionary
373  inline const IOdictionary& outputProperties() const;
374 
375  //- Return non-const access to the output properties dictionary
376  inline IOdictionary& outputProperties();
377 
378  //- Return const access to the solution properties
379  inline const cloudSolution& solution() const;
380 
381  //- Return access to the solution properties
382  inline cloudSolution& solution();
383 
384  //- Return the constant properties
385  inline const typename parcelType::constantProperties&
386  constProps() const;
387 
388  //- Return access to the constant properties
389  inline typename parcelType::constantProperties& constProps();
390 
391  //- Return reference to the sub-models dictionary
392  inline const dictionary& subModelProperties() const;
393 
394 
395  // Cloud data
396 
397  //- Return reference to the random object
398  inline Random& rndGen() const;
399 
400  //- Return the cell occupancy information for each
401  // parcel, non-const access, the caller is
402  // responsible for updating it for its own purposes
403  // if particles are removed or created.
405 
406  //- Return the cell length scale
407  inline const scalarField& cellLengthScale() const;
408 
409 
410  // References to the carrier gas fields
411 
412  //- Return carrier gas velocity
413  inline const volVectorField& U() const;
414 
415  //- Return carrier gas density
416  inline const volScalarField& rho() const;
417 
418  //- Return carrier gas dynamic viscosity
419  inline const volScalarField& mu() const;
420 
421 
422  // Environmental properties
423 
424  //- Gravity
425  inline const dimensionedVector& g() const;
426 
427  //- Return const-access to the ambient pressure
428  inline scalar pAmbient() const;
429 
430  //- Return reference to the ambient pressure
431  inline scalar& pAmbient();
432 
433 
434  //- Optional particle forces
435  inline const forceType& forces() const;
436 
437  //- Return the optional particle forces
438  inline forceType& forces();
439 
440  //- Optional cloud function objects
441  inline functionType& functions();
442 
443 
444  // Sub-models
445 
446  //- Return const access to the injection model
448  injectors() const;
449 
450  //- Return reference to the injection model
452  injectors();
453 
454  //- Return const-access to the dispersion model
456  dispersion() const;
457 
458  //- Return reference to the dispersion model
460  dispersion();
461 
462  //- Return const-access to the patch interaction model
464  patchInteraction() const;
465 
466  //- Return reference to the patch interaction model
469 
470  //- Return const-access to the stochastic collision model
471  inline const
473  stochasticCollision() const;
474 
475  //- Return reference to the stochastic collision model
478 
479  //- Return const-access to the surface film model
481  surfaceFilm() const;
482 
483  //- Return reference to the surface film model
485  surfaceFilm();
486 
487 
488  //- Return const access to the packing model
490  packingModel() const;
491 
492  //- Return a reference to the packing model
494  packingModel();
495 
496  //- Return const access to the damping model
498  dampingModel() const;
499 
500  //- Return a reference to the damping model
502  dampingModel();
503 
504  //- Return const access to the isotropy model
506  isotropyModel() const;
507 
508  //- Return a reference to the isotropy model
510  isotropyModel();
511 
512 
513  // Integration schemes
514 
515  //-Return reference to velocity integration
516  inline const integrationScheme& UIntegrator() const;
517 
518 
519  // Sources
520 
521  // Momentum
522 
523  //- Return reference to momentum source
525 
526  //- Return const reference to momentum source
527  inline const volVectorField::Internal&
528  UTrans() const;
529 
530  //- Return coefficient for carrier phase U equation
532 
533  //- Return const coefficient for carrier phase U equation
534  inline const volScalarField::Internal&
535  UCoeff() const;
536 
537  //- Return tmp momentum source term (compressible)
538  inline tmp<fvVectorMatrix> SU
539  (
540  volVectorField& U,
541  bool incompressible = false
542  ) const;
543 
544 
545  // Check
546 
547  //- Total number of parcels
548  virtual label nParcels() const
549  {
550  return CloudType::nParcels();
551  }
552 
553  //- Total mass in system
554  inline scalar massInSystem() const;
555 
556  //- Total linear momentum of the system
557  inline vector linearMomentumOfSystem() const;
558 
559  //- Average particle per parcel
560  inline scalar totalParticlePerParcel() const;
561 
562  //- Total linear kinetic energy in the system
563  inline scalar linearKineticEnergyOfSystem() const;
564 
565  //- Total rotational kinetic energy in the system
566  inline scalar rotationalKineticEnergyOfSystem() const;
567 
568  //- Mean diameter Dij
569  inline scalar Dij(const label i, const label j) const;
570 
571  //- Max diameter
572  inline scalar Dmax() const;
573 
574 
575  // Fields
576 
577  //- Volume swept rate of parcels per cell
578  inline const tmp<volScalarField> vDotSweep() const;
579 
580  //- Return the particle volume fraction field
581  // Note: for particles belonging to this cloud only
582  inline const tmp<volScalarField> theta() const;
583 
584  //- Return the particle mass fraction field
585  // Note: for particles belonging to this cloud only
586  inline const tmp<volScalarField> alpha() const;
587 
588  //- Return the particle effective density field
589  // Note: for particles belonging to this cloud only
590  inline const tmp<volScalarField> rhoEff() const;
591 
592 
593  // Cloud evolution functions
594 
595  //- Set parcel thermo properties
597  (
598  parcelType& parcel,
599  const scalar lagrangianDt
600  );
601 
602  //- Check parcel properties
604  (
605  parcelType& parcel,
606  const scalar lagrangianDt,
607  const bool fullyDescribed
608  );
609 
610  //- Store the current cloud state
611  void storeState();
612 
613  //- Reset the current cloud to the previously stored state
614  void restoreState();
615 
616  //- Reset the cloud source terms
617  void resetSourceTerms();
618 
619  //- Relax field
620  template<class Type>
621  void relax
622  (
624  const DimensionedField<Type, volMesh>& field0,
625  const word& name
626  ) const;
627 
628  //- Scale field
629  template<class Type>
630  void scale
631  (
633  const word& name
634  ) const;
635 
636  //- Apply relaxation to (steady state) cloud sources
637  void relaxSources(const KinematicCloud<CloudType>& cloudOldTime);
638 
639  //- Apply scaling to (transient) cloud sources
640  void scaleSources();
641 
642  //- Pre-evolve
643  void preEvolve
644  (
645  const typename parcelType::trackingData& td
646  );
647 
648  //- Evolve the cloud
649  void evolve();
650 
651  //- Particle motion
652  template<class TrackCloudType>
653  void motion
654  (
655  TrackCloudType& cloud,
656  typename parcelType::trackingData& td
657  );
658 
659  //- Calculate the patch normal and velocity to interact with,
660  // accounting for patch motion if required.
661  void patchData
662  (
663  const parcelType& p,
664  const polyPatch& pp,
665  vector& normal,
666  vector& Up
667  ) const;
668 
669 
670  // Mapping
671 
672  //- Update mesh
673  void updateMesh();
674 
675  //- Remap the cells of particles corresponding to the
676  // mesh topology change with a default tracking data object
677  virtual void autoMap(const mapPolyMesh&);
678 
679 
680  // I-O
681 
682  //- Print cloud information
683  void info();
684 
685  //- Read particle fields from objects in the obr registry
686  virtual void readObjects(const objectRegistry& obr);
687 
688  //- Write particle fields as objects into the obr registry
689  virtual void writeObjects(objectRegistry& obr) const;
690 };
691 
692 
693 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
694 
695 } // End namespace Foam
696 
697 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
698 
699 #include "KinematicCloudI.H"
700 
701 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
702 
703 #ifdef NoRepository
704  #include "KinematicCloud.C"
705 #endif
706 
707 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
708 
709 #endif
710 
711 // ************************************************************************* //
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:808
volFields.H
Foam::IOdictionary
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:54
Foam::KinematicCloud::SU
tmp< fvVectorMatrix > SU(volVectorField &U, bool incompressible=false) const
Return tmp momentum source term (compressible)
Definition: KinematicCloudI.H:471
Foam::KinematicCloud::dispersion
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
Definition: KinematicCloudI.H:195
Foam::Random
Random number generator.
Definition: Random.H:59
Foam::KinematicCloud::UIntegrator
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
Definition: KinematicCloudI.H:307
Foam::KinematicCloud::scaleSources
void scaleSources()
Apply scaling to (transient) cloud sources.
Definition: KinematicCloud.C:729
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::KinematicCloud::surfaceFilmModel_
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
Surface film model.
Definition: KinematicCloud.H:234
Foam::KinematicCloud::outputProperties
const IOdictionary & outputProperties() const
Return output properties dictionary.
Definition: KinematicCloudI.H:58
Foam::KinematicCloud::writeObjects
virtual void writeObjects(objectRegistry &obr) const
Write particle fields as objects into the obr registry.
Definition: KinematicCloud.C:949
Foam::KinematicCloud::g_
const dimensionedVector & g_
Gravity.
Definition: KinematicCloud.H:202
Foam::KinematicCloud::clone
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
Definition: KinematicCloud.H:333
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::KinematicCloud::functions
functionType & functions()
Optional cloud function objects.
Definition: KinematicCloudI.H:171
Foam::KinematicCloud::setModels
void setModels()
Set cloud sub-models.
Definition: KinematicCloud.C:50
kinematicCloud.H
Foam::KinematicCloud::motion
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
Definition: KinematicCloud.C:788
Foam::KinematicCloud::isotropyModel_
autoPtr< IsotropyModel< KinematicCloud< CloudType > > > isotropyModel_
Exchange model.
Definition: KinematicCloud.H:246
Foam::KinematicCloud::pAmbient
scalar pAmbient() const
Return const-access to the ambient pressure.
Definition: KinematicCloudI.H:139
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::KinematicCloud::stochasticCollisionModel_
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
Definition: KinematicCloud.H:230
Foam::DispersionModel
Base class for dispersion modelling.
Definition: KinematicCloud.H:86
Foam::KinematicCloud::U_
const volVectorField & U_
Velocity [m/s].
Definition: KinematicCloud.H:193
Foam::KinematicCloud::patchInteractionModel_
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
Definition: KinematicCloud.H:226
Foam::KinematicCloud::totalParticlePerParcel
scalar totalParticlePerParcel() const
Average particle per parcel.
Definition: KinematicCloudI.H:343
Foam::KinematicCloud::mesh
const fvMesh & mesh() const
Return reference to the mesh.
Definition: KinematicCloudI.H:42
Foam::KinematicCloud::mu
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
Definition: KinematicCloudI.H:125
Foam::KinematicCloud::relaxSources
void relaxSources(const KinematicCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
Definition: KinematicCloud.C:719
Foam::KinematicCloud::massInSystem
scalar massInSystem() const
Total mass in system.
Definition: KinematicCloudI.H:314
Foam::KinematicCloud::rhoEff
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
Definition: KinematicCloudI.H:631
Foam::KinematicCloud::dampingModel
const DampingModel< KinematicCloud< CloudType > > & dampingModel() const
Return const access to the damping model.
Definition: KinematicCloudI.H:275
Foam::Cloud::nParcels
virtual label nParcels() const
Return the number of particles in the cloud.
Definition: Cloud.H:164
Foam::KinematicCloud::UCoeff
volScalarField::Internal & UCoeff()
Return coefficient for carrier phase U equation.
Definition: KinematicCloudI.H:455
Cloud.H
Foam::KinematicCloud::cloudCopy
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
Definition: KinematicCloudI.H:35
Foam::KinematicCloud::UTrans_
autoPtr< volVectorField::Internal > UTrans_
Momentum.
Definition: KinematicCloud.H:258
Foam::KinematicCloud::storeState
void storeState()
Store the current cloud state.
Definition: KinematicCloud.C:662
Foam::KinematicCloud::UTrans
volVectorField::Internal & UTrans()
Return reference to momentum source.
Definition: KinematicCloudI.H:439
Foam::DampingModel
Base class for collisional damping models.
Definition: KinematicCloud.H:101
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:205
Foam::KinematicCloud::nParcels
virtual label nParcels() const
Total number of parcels.
Definition: KinematicCloud.H:547
Foam::KinematicCloud::forces
const forceType & forces() const
Optional particle forces.
Definition: KinematicCloudI.H:155
Foam::KinematicCloud::stochasticCollision
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
Definition: KinematicCloudI.H:227
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:942
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:88
Foam::KinematicCloud::vDotSweep
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
Definition: KinematicCloudI.H:519
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:775
Foam::KinematicCloud
Templated base class for kinematic cloud.
Definition: KinematicCloud.H:112
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:218
Foam::StochasticCollisionModel
Templated stochastic collision model class.
Definition: KinematicCloud.H:95
Foam::Field< scalar >
CloudFunctionObjectList.H
Foam::KinematicCloud::cellOccupancy
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
Definition: KinematicCloudI.H:418
Foam::KinematicCloud::checkParcelProperties
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
Definition: KinematicCloud.C:637
Foam::SurfaceFilmModel
Templated wall surface film model class.
Definition: KinematicCloud.H:92
Foam::KinematicCloud::packingModel_
autoPtr< PackingModel< KinematicCloud< CloudType > > > packingModel_
Packing model.
Definition: KinematicCloud.H:238
Foam::polyPatch
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:68
Foam::KinematicCloud::dampingModel_
autoPtr< DampingModel< KinematicCloud< CloudType > > > dampingModel_
Damping model.
Definition: KinematicCloud.H:242
ParticleForceList.H
Foam::KinematicCloud::UIntegrator_
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
Definition: KinematicCloud.H:252
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:178
Foam::KinematicCloud::kinematicCloudType
KinematicCloud< CloudType > kinematicCloudType
Convenience typedef for this cloud type.
Definition: KinematicCloud.H:128
field
rDeltaTY field()
Foam::KinematicCloud::cellOccupancyPtr_
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
Definition: KinematicCloud.H:181
Foam::KinematicCloud::packingModel
const PackingModel< KinematicCloud< CloudType > > & packingModel() const
Return const access to the packing model.
Definition: KinematicCloudI.H:259
Foam::KinematicCloud::particleProperties_
IOdictionary particleProperties_
Dictionary of particle properties.
Definition: KinematicCloud.H:163
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:71
Foam::PackingModel
Base class for packing models.
Definition: KinematicCloud.H:98
Foam::KinematicCloud::UCoeff_
autoPtr< volScalarField::Internal > UCoeff_
Coefficient for carrier phase U equation.
Definition: KinematicCloud.H:261
Foam::KinematicCloud::mu_
const volScalarField & mu_
Dynamic viscosity [Pa.s].
Definition: KinematicCloud.H:196
Foam::KinematicCloud::preEvolve
void preEvolve(const typename parcelType::trackingData &td)
Pre-evolve.
Definition: KinematicCloud.C:738
Foam::KinematicCloud::functionType
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
Function object type.
Definition: KinematicCloud.H:135
Foam::KinematicCloud::solution
const cloudSolution & solution() const
Return const access to the solution properties.
Definition: KinematicCloudI.H:73
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::KinematicCloud::mesh_
const fvMesh & mesh_
References to the mesh and time databases.
Definition: KinematicCloud.H:160
Foam::dimensioned< vector >
KinematicCloudI.H
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
fvMesh.H
Foam::Cloud::particleType
ParticleType particleType
Definition: Cloud.H:114
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:858
Foam::KinematicCloud::setParcelThermoProperties
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
Definition: KinematicCloud.C:622
Foam::KinematicCloud::particleProperties
const IOdictionary & particleProperties() const
Return particle properties dictionary.
Definition: KinematicCloudI.H:50
Random.H
Foam::CloudFunctionObjectList
List of cloud function objects.
Definition: CloudFunctionObjectList.H:54
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:683
KinematicCloud.C
Foam::KinematicCloud::rndGen
Random & rndGen() const
Return reference to the random object.
Definition: KinematicCloudI.H:410
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::isotropyModel
const IsotropyModel< KinematicCloud< CloudType > > & isotropyModel() const
Return const access to the isotropy model.
Definition: KinematicCloudI.H:291
Foam::KinematicCloud::solve
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
Solve the cloud - calls all evolution functions.
Definition: KinematicCloud.C:129
Foam::KinematicCloud::functions_
functionType functions_
Optional cloud function objects.
Definition: KinematicCloud.H:212
Foam::KinematicCloud::patchInteraction
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
Definition: KinematicCloudI.H:211
cloudSolution.H
Foam::KinematicCloud::subModelProperties_
const dictionary subModelProperties_
Sub-models dictionary.
Definition: KinematicCloud.H:175
Foam::Vector< scalar >
Foam::KinematicCloud::cloudReset
void cloudReset(KinematicCloud< CloudType > &c)
Reset state of cloud.
Definition: KinematicCloud.C:312
Foam::KinematicCloud::constProps_
parcelType::constantProperties constProps_
Parcel constant properties.
Definition: KinematicCloud.H:172
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:63
Foam::KinematicCloud::g
const dimensionedVector & g() const
Gravity.
Definition: KinematicCloudI.H:132
Foam::KinematicCloud::updateMesh
void updateMesh()
Update mesh.
Definition: KinematicCloud.C:849
Foam::KinematicCloud::solution_
cloudSolution solution_
Solution properties.
Definition: KinematicCloud.H:169
Foam::KinematicCloud::theta
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
Definition: KinematicCloudI.H:557
Foam::KinematicCloud::parcelType
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
Definition: KinematicCloud.H:125
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:209
Foam::KinematicCloud::relax
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
Definition: KinematicCloud.C:693
Foam::KinematicCloud::injectors
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
Definition: KinematicCloudI.H:179
Foam::KinematicCloud::cloudType
CloudType cloudType
Type of cloud this cloud was instantiated for.
Definition: KinematicCloud.H:122
particle.H
Foam::mapPolyMesh
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Definition: mapPolyMesh.H:161
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:373
Foam::name
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
Definition: exprTraits.C:59
Foam::KinematicCloud::restoreState
void restoreState()
Reset the current cloud to the previously stored state.
Definition: KinematicCloud.C:675
Foam::KinematicCloud::updateCellOccupancy
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
Definition: KinematicCloud.C:205
Foam::KinematicCloud::cellLengthScale_
scalarField cellLengthScale_
Cell length scale.
Definition: KinematicCloud.H:184
Foam::KinematicCloud::subModelProperties
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
Definition: KinematicCloudI.H:104
Foam::KinematicCloud::info
void info()
Print cloud information.
Definition: KinematicCloud.C:867
Foam::KinematicCloud::buildCellOccupancy
void buildCellOccupancy()
Build the cellOccupancy.
Definition: KinematicCloud.C:173
Foam::IsotropyModel
Base class for collisional return-to-isotropy models.
Definition: KinematicCloud.H:104
Foam::KinematicCloud::U
const volVectorField & U() const
Return carrier gas velocity.
Definition: KinematicCloudI.H:118
Foam::KinematicCloud::linearKineticEnergyOfSystem
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
Definition: KinematicCloudI.H:358
Foam::KinematicCloud::rho_
const volScalarField & rho_
Density [kg/m3].
Definition: KinematicCloud.H:190
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::KinematicCloud::linearMomentumOfSystem
vector linearMomentumOfSystem() const
Total linear momentum of the system.
Definition: KinematicCloudI.H:328
Foam::KinematicCloud::Dmax
scalar Dmax() const
Max diameter.
Definition: KinematicCloudI.H:395
Foam::KinematicCloud::evolveCloud
void evolveCloud(TrackCloudType &cloud, typename parcelType::trackingData &td)
Evolve the cloud.
Definition: KinematicCloud.C:220
Foam::KinematicCloud::dispersionModel_
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
Dispersion model.
Definition: KinematicCloud.H:222
Foam::KinematicCloud::forceType
ParticleForceList< KinematicCloud< CloudType > > forceType
Force models type.
Definition: KinematicCloud.H:131
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:342
Foam::KinematicCloud::surfaceFilm
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
Definition: KinematicCloudI.H:243
Foam::ParticleForceList
List of particle forces.
Definition: ParticleForceList.H:53
Foam::KinematicCloud::scale
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
Definition: KinematicCloud.C:707
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:595
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:111
Foam::KinematicCloud::cellLengthScale
const scalarField & cellLengthScale() const
Return the cell length scale.
Definition: KinematicCloudI.H:431
Foam::KinematicCloud::outputProperties_
IOdictionary outputProperties_
Dictionary of output properties.
Definition: KinematicCloud.H:166
Foam::KinematicCloud::postEvolve
void postEvolve(const typename parcelType::trackingData &td)
Post-evolve.
Definition: KinematicCloud.C:266
autoPtr.H