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
315  {
317  (
318  new MomentumCloud(*this, name)
319  );
320  }
321 
322  //- Construct and return bare clone based on (this) with new name
324  (
325  const word& name
326  ) const
327  {
329  (
330  new MomentumCloud(this->mesh(), name, *this)
331  );
332  }
333 
334 
335  //- Destructor
336  virtual ~MomentumCloud();
337 
338 
339  // Member Functions
340 
341  // Access
342 
343  //- Return a reference to the cloud copy
344  inline const MomentumCloud& cloudCopy() const;
345 
346 
347  // References to the mesh and databases
348 
349  //- Return particle properties dictionary
350  inline const IOdictionary& particleProperties() const;
351 
352  //- Return output properties dictionary
353  inline const IOdictionary& outputProperties() const;
354 
355  //- Return non-const access to the output properties dictionary
356  inline IOdictionary& outputProperties();
357 
358  //- Return const access to the solution properties
359  inline const cloudSolution& solution() const;
360 
361  //- Return access to the solution properties
362  inline cloudSolution& solution();
363 
364  //- Return the constant properties
365  inline const typename parcelType::constantProperties&
366  constProps() const;
367 
368  //- Return access to the constant properties
369  inline typename parcelType::constantProperties& constProps();
370 
371  //- Return reference to the sub-models dictionary
372  inline const dictionary& subModelProperties() const;
373 
374 
375  // Cloud data
376 
377  //- Return reference to the random generator
378  inline randomGenerator& rndGen() const;
379 
380  //- Return reference to the standard normal distribution
382 
383  //- Return the cell occupancy information for each
384  // parcel, non-const access, the caller is
385  // responsible for updating it for its own purposes
386  // if particles are removed or created.
388 
389  //- Return the cell length scale
390  inline const scalarField& cellLengthScale() const;
391 
392 
393  // References to the carrier gas fields
394 
395  //- Return carrier gas velocity
396  inline const volVectorField& U() const;
397 
398  //- Return carrier gas density
399  inline const volScalarField& rho() const;
400 
401  //- Return carrier gas dynamic viscosity
402  inline const volScalarField& mu() const;
403 
404 
405  // Environmental properties
406 
407  //- Gravity
408  inline const dimensionedVector& g() const;
409 
410  //- Return const-access to the ambient pressure
411  inline scalar pAmbient() const;
412 
413  //- Return reference to the ambient pressure
414  inline scalar& pAmbient();
415 
416 
417  //- Optional particle forces
418  inline const forceType& forces() const;
419 
420  //- Return the optional particle forces
421  inline forceType& forces();
422 
423  //- Optional cloud function objects
424  inline functionType& functions();
425 
426 
427  // Sub-models
428 
429  //- Return const access to the injection model
431  injectors() const;
432 
433  //- Return reference to the injection model
435  injectors();
436 
437  //- Return const-access to the dispersion model
439  dispersion() const;
440 
441  //- Return reference to the dispersion model
443  dispersion();
444 
445  //- Return const-access to the patch interaction model
447  patchInteraction() const;
448 
449  //- Return reference to the patch interaction model
452 
453  //- Return const-access to the stochastic collision model
454  inline const
456  stochasticCollision() const;
457 
458  //- Return reference to the stochastic collision model
461 
462  //- Return const-access to the surface film model
464  surfaceFilm() const;
465 
466  //- Return reference to the surface film model
468  surfaceFilm();
469 
470 
471  // Integration schemes
472 
473  //-Return reference to velocity integration
474  inline const integrationScheme& UIntegrator() const;
475 
476 
477  // Sources
478 
479  // Momentum
480 
481  //- Return momentum source
482  inline tmp<volVectorField::Internal> UTrans() const;
483 
484  //- Access momentum source
486 
487  //- Return coefficient for carrier phase U equation
488  inline tmp<volScalarField::Internal> UCoeff() const;
489 
490  //- Access coefficient for carrier phase U equation
492 
493  //- Return tmp momentum source term
494  inline tmp<fvVectorMatrix> SU
495  (
496  const volVectorField& U
497  ) const;
498 
499 
500  // Check
501 
502  //- Total number of parcels
503  inline label nParcels() const;
504 
505  //- Total mass in system
506  inline scalar massInSystem() const;
507 
508  //- Total linear momentum of the system
509  inline vector linearMomentumOfSystem() const;
510 
511  //- Total linear kinetic energy in the system
512  inline scalar linearKineticEnergyOfSystem() const;
513 
514  //- Total rotational kinetic energy in the system
515  inline scalar rotationalKineticEnergyOfSystem() const;
516 
517  //- Mean diameter Dij
518  inline scalar Dij(const label i, const label j) const;
519 
520  //- Min diameter
521  inline scalar Dmin() const;
522 
523  //- Max diameter
524  inline scalar Dmax() const;
525 
526 
527  // Fields
528 
529  //- Volume swept rate of parcels per cell
530  inline const tmp<volScalarField> vDotSweep() const;
531 
532  //- Return the particle volume fraction field
533  // Note: for particles belonging to this cloud only
534  inline const tmp<volScalarField> alpha() const;
535 
536  //- Return the particle mass fraction field
537  // Note: for particles belonging to this cloud only
538  inline const tmp<volScalarField> Y() const;
539 
540  //- Return the particle effective density field
541  // Note: for particles belonging to this cloud only
542  inline const tmp<volScalarField> rhoEff() const;
543 
544 
545  // Cloud evolution functions
546 
547  //- Return true to cache per-cell CPU load
548  bool cpuLoad() const
549  {
550  return cpuLoad_;
551  }
552 
553  //- Set parcel thermo properties
555 
556  //- Check parcel properties
558  (
559  parcelType& parcel,
560  const label injectori
561  );
562 
563  //- Store the current cloud state
564  void storeState();
565 
566  //- Reset the current cloud to the previously stored state
567  void restoreState();
568 
569  //- Reset the cloud source terms
570  void resetSourceTerms();
571 
572  //- Relax field
573  template<class Type>
574  void relax
575  (
577  const DimensionedField<Type, volMesh>& field0,
578  const word& name
579  ) const;
580 
581  //- Scale field
582  template<class Type>
583  void scale
584  (
586  const word& name
587  ) const;
588 
589  //- Apply relaxation to (steady state) cloud sources
590  void relaxSources(const MomentumCloud<CloudType>& cloudOldTime);
591 
592  //- Apply scaling to (transient) cloud sources
593  void scaleSources();
594 
595  //- Pre-evolve
596  void preEvolve();
597 
598  //- Evolve the cloud
599  void evolve();
600 
601  //- Particle motion
602  template<class TrackCloudType>
603  void motion
604  (
605  TrackCloudType& cloud,
606  typename parcelType::trackingData& td
607  );
608 
609  //- Calculate the patch normal and velocity to interact with,
610  // accounting for patch motion if required.
611  void patchData
612  (
613  const parcelType& p,
614  const polyPatch& pp,
615  vector& normal,
616  vector& Up
617  ) const;
618 
619 
620  // Mapping
621 
622  //- Update topology using the given map
623  virtual void topoChange(const polyTopoChangeMap&);
624 
625  //- Update from another mesh using the given map
626  virtual void mapMesh(const polyMeshMap&);
627 
628  //- Redistribute or update using the given distribution map
629  virtual void distribute(const polyDistributionMap&);
630 
631 
632  // I-O
633 
634  //- Print cloud information
635  void info();
636 
637 
638  // Member Operators
639 
640  //- Disallow default bitwise assignment
641  void operator=(const MomentumCloud&) = delete;
642 };
643 
644 
645 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
646 
647 } // End namespace Foam
648 
649 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
650 
651 #include "MomentumCloudI.H"
652 
653 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
654 
655 #ifdef NoRepository
656  #include "MomentumCloud.C"
657 #endif
658 
659 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
660 
661 #endif
662 
663 // ************************************************************************* //
List of cloud function objects.
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:280
const word & name() const
Return name.
Definition: IOobject.H:307
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.
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.
virtual autoPtr< lagrangian::Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
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
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
Definition: cloud.H:63
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Standard normal distribution. Not selectable.
Base-class for fluid thermodynamic properties.
Definition: fluidThermo.H:56
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:96
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