MomentumCloud.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2024 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::MomentumCloud
26 
27 Description
28  Templated base class for momentum cloud
29 
30  - cloud function objects
31 
32  - particle forces, e.g.
33  - buoyancy
34  - drag
35  - pressure gradient
36  - ...
37 
38  - sub-models:
39  - dispersion model
40  - injection model
41  - patch interaction model
42  - stochastic collision model
43  - surface film model
44 
45 SourceFiles
46  MomentumCloudI.H
47  MomentumCloud.C
48 
49 \*---------------------------------------------------------------------------*/
50 
51 #ifndef MomentumCloud_H
52 #define MomentumCloud_H
53 
54 #include "particle.H"
55 #include "Cloud.H"
56 #include "timeIOdictionary.H"
57 #include "autoPtr.H"
58 #include "randomGenerator.H"
59 #include "standardNormal.H"
60 #include "fvMesh.H"
61 #include "volFields.H"
62 #include "fvMatrices.H"
63 #include "cloudSolution.H"
64 #include "fluidThermo.H"
65 
66 #include "ParticleForceList.H"
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 namespace Foam
72 {
73 
74 // Forward declaration of classes
75 
76 class integrationScheme;
77 
78 template<class CloudType>
79 class InjectionModelList;
80 
81 template<class CloudType>
82 class DispersionModel;
83 
84 template<class CloudType>
85 class PatchInteractionModel;
86 
87 template<class CloudType>
88 class SurfaceFilmModel;
89 
90 template<class CloudType>
91 class StochasticCollisionModel;
92 
93 
94 /*---------------------------------------------------------------------------*\
95  Class MomentumCloudName Declaration
96 \*---------------------------------------------------------------------------*/
97 
99 
100 
101 /*---------------------------------------------------------------------------*\
102  Class MomentumCloud Declaration
103 \*---------------------------------------------------------------------------*/
104 
105 template<class CloudType>
106 class MomentumCloud
107 :
108  public CloudType,
109  public MomentumCloudName
110 {
111 public:
112 
113  // Public Typedefs
114 
115  //- Type of cloud this cloud was instantiated for
116  typedef CloudType cloudType;
117 
118  //- Type of parcel the cloud was instantiated for
119  typedef typename CloudType::particleType parcelType;
120 
121  //- Convenience typedef for this cloud type
123 
124  //- Force models type
126 
127  //- Function object type
129  functionType;
130 
131 
132 private:
133 
134  // Private Data
135 
136  //- Cloud copy pointer
137  autoPtr<MomentumCloud<CloudType>> cloudCopyPtr_;
138 
139 
140 protected:
141 
142  // Protected data
143 
144  //- Dictionary of particle properties
146 
147  //- Dictionary of output properties
149 
150  //- Solution properties
152 
153  //- Parcel constant properties
154  typename parcelType::constantProperties constProps_;
155 
156  //- Sub-models dictionary
158 
159  //- Switch to enable per-cell CPU load caching for load-balancing
160  bool cpuLoad_;
161 
162  //- Random number generator - used by some injection routines
163  mutable randomGenerator rndGen_;
164 
165  //- Standard normal distribution
167 
168  //- Cell occupancy information for each parcel, (demand driven)
170 
171  //- Cell length scale
173 
174 
175  // References to the carrier gas fields
176 
177  //- Density [kg/m^3]
178  const volScalarField& rho_;
179 
180  //- Velocity [m/s]
181  const volVectorField& U_;
182 
183  //- Dynamic viscosity [Pa.s]
184  const volScalarField& mu_;
185 
186 
187  // Environmental properties
188 
189  //- Gravity
190  const dimensionedVector& g_;
191 
192  //- Averaged ambient domain pressure
193  scalar pAmbient_;
194 
195 
196  //- Optional particle forces
198 
199  //- Optional cloud function objects
201 
202 
203  // References to the cloud sub-models
204 
205  //- Injector models
207 
208  //- Dispersion model
211 
212  //- Patch interaction model
215 
216  //- Stochastic collision model
219 
220  //- Optional film model
222 
223 
224  // Reference to the particle integration schemes
225 
226  //- Velocity integration
228 
229 
230  // Sources
231 
232  //- Momentum
234 
235  //- Coefficient for carrier phase U equation
237 
238 
239  // Initialisation
240 
241  //- Set cloud sub-models
242  void setModels();
243 
244 
245  // Cloud evolution functions
246 
247  //- Solve the cloud - calls all evolution functions
248  template<class TrackCloudType>
249  void solve
250  (
251  TrackCloudType& cloud,
252  typename parcelType::trackingData& td
253  );
254 
255  //- Build the cellOccupancy
256  void buildCellOccupancy();
257 
258  //- Update (i.e. build) the cellOccupancy if it has
259  // already been used
260  void updateCellOccupancy();
261 
262  //- Post-evolve
263  void postEvolve();
264 
265  //- Reset state of cloud
267 
268 
269 public:
270 
271  // Constructors
272 
273  //- Construct given carrier fields
275  (
276  const word& cloudName,
277  const volScalarField& rho,
278  const volVectorField& U,
279  const volScalarField& mu,
280  const dimensionedVector& g,
281  const bool readFields = true
282  );
283 
284  //- Construct given carrier fields and thermo
286  (
287  const word& cloudName,
288  const volScalarField& rho,
289  const volVectorField& U,
290  const dimensionedVector& g,
291  const fluidThermo& carrierThermo,
292  const bool readFields = true
293  );
294 
295  //- Copy constructor with new name
297  (
299  const word& name
300  );
301 
302  //- Copy constructor with new name - creates bare cloud
304  (
305  const fvMesh& mesh,
306  const word& name,
308  );
309 
310  //- Disallow default bitwise copy construction
311  MomentumCloud(const MomentumCloud&) = delete;
312 
313  //- Construct and return clone based on (this) with new name
314  virtual autoPtr<Cloud<parcelType>> clone(const word& name)
315  {
317  (
318  new MomentumCloud(*this, name)
319  );
320  }
321 
322  //- Construct and return bare clone based on (this) with new name
323  virtual autoPtr<Cloud<parcelType>> cloneBare(const word& name) const
324  {
326  (
327  new MomentumCloud(this->mesh(), name, *this)
328  );
329  }
330 
331 
332  //- Destructor
333  virtual ~MomentumCloud();
334 
335 
336  // Member Functions
337 
338  // Access
339 
340  //- Return a reference to the cloud copy
341  inline const MomentumCloud& cloudCopy() const;
342 
343 
344  // References to the mesh and databases
345 
346  //- Return particle properties dictionary
347  inline const IOdictionary& particleProperties() const;
348 
349  //- Return output properties dictionary
350  inline const IOdictionary& outputProperties() const;
351 
352  //- Return non-const access to the output properties dictionary
353  inline IOdictionary& outputProperties();
354 
355  //- Return const access to the solution properties
356  inline const cloudSolution& solution() const;
357 
358  //- Return access to the solution properties
359  inline cloudSolution& solution();
360 
361  //- Return the constant properties
362  inline const typename parcelType::constantProperties&
363  constProps() const;
364 
365  //- Return access to the constant properties
366  inline typename parcelType::constantProperties& constProps();
367 
368  //- Return reference to the sub-models dictionary
369  inline const dictionary& subModelProperties() const;
370 
371 
372  // Cloud data
373 
374  //- Return reference to the random generator
375  inline randomGenerator& rndGen() const;
376 
377  //- Return reference to the standard normal distribution
379 
380  //- Return the cell occupancy information for each
381  // parcel, non-const access, the caller is
382  // responsible for updating it for its own purposes
383  // if particles are removed or created.
385 
386  //- Return the cell length scale
387  inline const scalarField& cellLengthScale() const;
388 
389 
390  // References to the carrier gas fields
391 
392  //- Return carrier gas velocity
393  inline const volVectorField& U() const;
394 
395  //- Return carrier gas density
396  inline const volScalarField& rho() const;
397 
398  //- Return carrier gas dynamic viscosity
399  inline const volScalarField& mu() const;
400 
401 
402  // Environmental properties
403 
404  //- Gravity
405  inline const dimensionedVector& g() const;
406 
407  //- Return const-access to the ambient pressure
408  inline scalar pAmbient() const;
409 
410  //- Return reference to the ambient pressure
411  inline scalar& pAmbient();
412 
413 
414  //- Optional particle forces
415  inline const forceType& forces() const;
416 
417  //- Return the optional particle forces
418  inline forceType& forces();
419 
420  //- Optional cloud function objects
421  inline functionType& functions();
422 
423 
424  // Sub-models
425 
426  //- Return const access to the injection model
428  injectors() const;
429 
430  //- Return reference to the injection model
432  injectors();
433 
434  //- Return const-access to the dispersion model
436  dispersion() const;
437 
438  //- Return reference to the dispersion model
440  dispersion();
441 
442  //- Return const-access to the patch interaction model
444  patchInteraction() const;
445 
446  //- Return reference to the patch interaction model
449 
450  //- Return const-access to the stochastic collision model
451  inline const
453  stochasticCollision() const;
454 
455  //- Return reference to the stochastic collision model
458 
459  //- Return const-access to the surface film model
461  surfaceFilm() const;
462 
463  //- Return reference to the surface film model
465  surfaceFilm();
466 
467 
468  // Integration schemes
469 
470  //-Return reference to velocity integration
471  inline const integrationScheme& UIntegrator() const;
472 
473 
474  // Sources
475 
476  // Momentum
477 
478  //- Return momentum source
479  inline tmp<volVectorField::Internal> UTrans() const;
480 
481  //- Access momentum source
483 
484  //- Return coefficient for carrier phase U equation
485  inline tmp<volScalarField::Internal> UCoeff() const;
486 
487  //- Access coefficient for carrier phase U equation
489 
490  //- Return tmp momentum source term
491  inline tmp<fvVectorMatrix> SU
492  (
493  const volVectorField& U
494  ) const;
495 
496 
497  // Check
498 
499  //- Total number of parcels
500  inline label nParcels() const;
501 
502  //- Total mass in system
503  inline scalar massInSystem() const;
504 
505  //- Total linear momentum of the system
506  inline vector linearMomentumOfSystem() const;
507 
508  //- Total linear kinetic energy in the system
509  inline scalar linearKineticEnergyOfSystem() const;
510 
511  //- Total rotational kinetic energy in the system
512  inline scalar rotationalKineticEnergyOfSystem() const;
513 
514  //- Mean diameter Dij
515  inline scalar Dij(const label i, const label j) const;
516 
517  //- Min diameter
518  inline scalar Dmin() const;
519 
520  //- Max diameter
521  inline scalar Dmax() const;
522 
523 
524  // Fields
525 
526  //- Volume swept rate of parcels per cell
527  inline const tmp<volScalarField> vDotSweep() const;
528 
529  //- Return the particle volume fraction field
530  // Note: for particles belonging to this cloud only
531  inline const tmp<volScalarField> alpha() const;
532 
533  //- Return the particle mass fraction field
534  // Note: for particles belonging to this cloud only
535  inline const tmp<volScalarField> Y() const;
536 
537  //- Return the particle effective density field
538  // Note: for particles belonging to this cloud only
539  inline const tmp<volScalarField> rhoEff() const;
540 
541 
542  // Cloud evolution functions
543 
544  //- Return true to cache per-cell CPU load
545  bool cpuLoad() const
546  {
547  return cpuLoad_;
548  }
549 
550  //- Set parcel thermo properties
552 
553  //- Check parcel properties
555  (
556  parcelType& parcel,
557  const label injectori
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 MomentumCloud<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 topology using the given map
620  virtual void topoChange(const polyTopoChangeMap&);
621 
622  //- Update from another mesh using the given map
623  virtual void mapMesh(const polyMeshMap&);
624 
625  //- Redistribute or update using the given distribution map
626  virtual void distribute(const polyDistributionMap&);
627 
628 
629  // I-O
630 
631  //- Print cloud information
632  void info();
633 
634 
635  // Member Operators
636 
637  //- Disallow default bitwise assignment
638  void operator=(const MomentumCloud&) = delete;
639 };
640 
641 
642 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
643 
644 } // End namespace Foam
645 
646 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
647 
648 #include "MomentumCloudI.H"
649 
650 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
651 
652 #ifdef NoRepository
653  #include "MomentumCloud.C"
654 #endif
655 
656 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
657 
658 #endif
659 
660 // ************************************************************************* //
List of cloud function objects.
ParcelType particleType
Definition: Cloud.H:128
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:80
const word & cloudName() const
Return the cloud type.
Definition: DSMCCloudI.H:34
const fvMesh & mesh() const
Return references to the mesh.
Definition: DSMCCloudI.H:41
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricField class.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:57
autoPtr< IOobject > clone() const
Clone.
Definition: IOobject.H:283
const word & name() const
Return name.
Definition: IOobject.H:310
List of injection models.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: List.H:91
Templated base class for momentum cloud.
volScalarField::Internal & UCoeffRef()
Access coefficient for carrier phase U equation.
const parcelType::constantProperties & constProps() const
Return the constant properties.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
void postEvolve()
Post-evolve.
functionType & functions()
Optional cloud function objects.
cloudSolution solution_
Solution properties.
const InjectionModelList< MomentumCloud< CloudType > > & injectors() const
Return const access to the injection model.
autoPtr< volVectorField::Internal > UTrans_
Momentum.
void setModels()
Set cloud sub-models.
Definition: MomentumCloud.C:40
scalar massInSystem() const
Total mass in system.
const DispersionModel< MomentumCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
const PatchInteractionModel< MomentumCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
void operator=(const MomentumCloud &)=delete
Disallow default bitwise assignment.
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
forceType forces_
Optional particle forces.
virtual ~MomentumCloud()
Destructor.
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
void storeState()
Store the current cloud state.
MomentumCloud< CloudType > momentumCloudType
Convenience typedef for this cloud type.
const tmp< volScalarField > alpha() const
Return the particle volume fraction field.
bool cpuLoad() const
Return true to cache per-cell CPU load.
void patchData(const parcelType &p, const polyPatch &pp, vector &normal, vector &Up) const
Calculate the patch normal and velocity to interact with,.
CloudFunctionObjectList< MomentumCloud< CloudType > > functionType
Function object type.
const scalarField & cellLengthScale() const
Return the cell length scale.
autoPtr< SurfaceFilmModel< MomentumCloud< CloudType > > > filmModel_
Optional film model.
scalar pAmbient_
Averaged ambient domain pressure.
scalarField cellLengthScale_
Cell length scale.
tmp< volVectorField::Internal > UTrans() const
Return momentum source.
InjectionModelList< MomentumCloud< CloudType > > injectors_
Injector models.
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
ParticleForceList< MomentumCloud< CloudType > > forceType
Force models type.
const volVectorField & U() const
Return carrier gas velocity.
scalar pAmbient() const
Return const-access to the ambient pressure.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
const SurfaceFilmModel< MomentumCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
const volScalarField & rho() const
Return carrier gas density.
virtual void topoChange(const polyTopoChangeMap &)
Update topology using the given map.
void scaleSources()
Apply scaling to (transient) cloud sources.
virtual void distribute(const polyDistributionMap &)
Redistribute or update using the given distribution map.
MomentumCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const volScalarField &mu, const dimensionedVector &g, const bool readFields=true)
Construct given carrier fields.
distributions::standardNormal & stdNormal() const
Return reference to the standard normal distribution.
const volVectorField & U_
Velocity [m/s].
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
tmp< volScalarField::Internal > UCoeff() const
Return coefficient for carrier phase U equation.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
const volScalarField & mu_
Dynamic viscosity [Pa.s].
label nParcels() const
Total number of parcels.
const dimensionedVector & g_
Gravity.
timeIOdictionary outputProperties_
Dictionary of output properties.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
const cloudSolution & solution() const
Return const access to the solution properties.
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
scalar Dmin() const
Min diameter.
const dictionary subModelProperties_
Sub-models dictionary.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
CloudType cloudType
Type of cloud this cloud was instantiated for.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
const StochasticCollisionModel< MomentumCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
autoPtr< DispersionModel< MomentumCloud< CloudType > > > dispersionModel_
Dispersion model.
void evolve()
Evolve the cloud.
volVectorField::Internal & UTransRef()
Access momentum source.
functionType functions_
Optional cloud function objects.
const forceType & forces() const
Optional particle forces.
parcelType::constantProperties constProps_
Parcel constant properties.
const MomentumCloud & cloudCopy() const
Return a reference to the cloud copy.
scalar Dmax() const
Max diameter.
const tmp< volScalarField > Y() const
Return the particle mass fraction field.
bool cpuLoad_
Switch to enable per-cell CPU load caching for load-balancing.
autoPtr< PatchInteractionModel< MomentumCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
distributions::standardNormal stdNormal_
Standard normal distribution.
const volScalarField & rho_
Density [kg/m^3].
scalar Dij(const label i, const label j) const
Mean diameter Dij.
IOdictionary particleProperties_
Dictionary of particle properties.
void cloudReset(MomentumCloud< CloudType > &c)
Reset state of cloud.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
const dimensionedVector & g() const
Gravity.
void checkParcelProperties(parcelType &parcel, const label injectori)
Check parcel properties.
void preEvolve()
Pre-evolve.
void resetSourceTerms()
Reset the cloud source terms.
tmp< fvVectorMatrix > SU(const volVectorField &U) const
Return tmp momentum source term.
const IOdictionary & outputProperties() const
Return output properties dictionary.
void buildCellOccupancy()
Build the cellOccupancy.
autoPtr< volScalarField::Internal > UCoeff_
Coefficient for carrier phase U equation.
randomGenerator rndGen_
Random number generator - used by some injection routines.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
randomGenerator & rndGen() const
Return reference to the random generator.
autoPtr< StochasticCollisionModel< MomentumCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
void setParcelThermoProperties(parcelType &parcel)
Set parcel thermo properties.
void relaxSources(const MomentumCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
Solve the cloud - calls all evolution functions.
Definition: MomentumCloud.C:92
List of particle forces.
Templated patch interaction model class.
Templated stochastic collision model class.
Templated wall surface film model class.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Stores all relevant solution info for cloud.
Definition: cloudSolution.H:52
A cloud is a collection of lagrangian particles.
Definition: cloud.H:55
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
Standard normal distribution. Not selectable.
Base-class for fluid thermodynamic properties.
Definition: fluidThermo.H:57
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:99
Base for a set of schemes which integrate simple ODEs which arise from semi-implicit rate expressions...
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
Definition: polyMeshMap.H:51
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:70
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Random number generator.
timeIOdictionary derived from IOdictionary with globalFile set false to enable writing to processor t...
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
A special matrix type and solver, designed for finite volume solutions of scalar equations.
const dimensionedScalar c
Speed of light in a vacuum.
Namespace for OpenFOAM.
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:59
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the specified type.
Definition: ReadFields.C:244
TemplateName(FvFaceCellWave)
volScalarField & p