fvPatchField.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-2023 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::fvPatchField
26 
27 Description
28  Abstract base class with a fat-interface to all derived classes
29  covering all possible ways in which they might be used.
30 
31  The first level of derivation is to basic patchFields which cover
32  zero-gradient, fixed-gradient, fixed-value and mixed conditions.
33 
34  The next level of derivation covers all the specialised types with
35  specific evaluation procedures, particularly with respect to specific
36  fields.
37 
38 SourceFiles
39  fvPatchField.C
40  fvPatchFieldNew.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef fvPatchField_H
45 #define fvPatchField_H
46 
47 #include "fvPatch.H"
48 #include "DimensionedField.H"
49 #include "fileNameList.H"
50 #include "fieldTypes.H"
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 
57 // Forward declaration of classes
58 
59 class objectRegistry;
60 class dictionary;
61 class fvPatchFieldMapper;
62 class volMesh;
63 
64 
65 // Forward declaration of friend functions and operators
66 
67 template<class Type>
68 class fvPatchField;
69 
70 template<class Type>
71 class calculatedFvPatchField;
72 
73 template<class Type>
74 class fvMatrix;
75 
76 template<class Type>
78 
79 
80 /*---------------------------------------------------------------------------*\
81  Class fvPatchField Declaration
82 \*---------------------------------------------------------------------------*/
83 
84 template<class Type>
85 class fvPatchField
86 :
87  public Field<Type>
88 {
89  // Private Data
90 
91  //- Optional list of libraries required for this boundary condition
92  fileNameList libs_;
93 
94  //- Reference to patch
95  const fvPatch& patch_;
96 
97  //- Reference to internal field
98  const DimensionedField<Type, volMesh>& internalField_;
99 
100  //- Update index used so that updateCoeffs is called only once during
101  // the construction of the matrix
102  bool updated_;
103 
104  //- Update index used so that manipulateMatrix is called only once
105  // during the construction of the matrix
106  bool manipulatedMatrix_;
107 
108 
109 public:
110 
111  typedef fvPatch Patch;
113 
114 
115  //- Runtime type information
116  TypeName("fvPatchField");
117 
118  //- Debug switch to disallow the use of genericFvPatchField
119  static int disallowGenericFvPatchField;
120 
121 
122  // Declare run-time constructor selection tables
123 
125  (
126  tmp,
127  fvPatchField,
128  patch,
129  (
130  const fvPatch& p,
132  ),
133  (p, iF)
134  );
135 
137  (
138  tmp,
139  fvPatchField,
140  patchMapper,
141  (
142  const fvPatchField<Type>& ptf,
143  const fvPatch& p,
145  const fvPatchFieldMapper& m
146  ),
147  (dynamic_cast<const fvPatchFieldType&>(ptf), p, iF, m)
148  );
149 
151  (
152  tmp,
153  fvPatchField,
154  dictionary,
155  (
156  const fvPatch& p,
158  const dictionary& dict
159  ),
160  (p, iF, dict)
161  );
162 
163 
164  // Constructors
165 
166  //- Construct from patch and internal field
168  (
169  const fvPatch&,
171  );
172 
173  //- Construct from patch and internal field and patch field
175  (
176  const fvPatch&,
178  const Field<Type>&
179  );
180 
181  //- Construct from patch, internal field and dictionary
183  (
184  const fvPatch&,
186  const dictionary&,
187  const bool valueRequired=true
188  );
189 
190  //- Construct by mapping the given fvPatchField onto a new patch
192  (
193  const fvPatchField<Type>&,
194  const fvPatch&,
196  const fvPatchFieldMapper&,
197  const bool mappingRequired=true
198  );
199 
200  //- Disallow copy without setting internal field reference
201  fvPatchField(const fvPatchField<Type>&) = delete;
202 
203  //- Disallow clone without setting internal field reference
205  {
207  return tmp<fvPatchField<Type>>(nullptr);
208  }
209 
210  //- Copy constructor setting internal field reference
212  (
213  const fvPatchField<Type>&,
215  );
216 
217  //- Construct and return a clone setting internal field reference
219  (
221  ) const
222  {
223  return tmp<fvPatchField<Type>>(new fvPatchField<Type>(*this, iF));
224  }
225 
226  //- Construct and return a clone onto a new patch
227  // setting internal field reference
229  (
230  const fvPatch& patch,
232  ) const
233  {
234  return tmp<fvPatchField<Type>>
235  (
236  new fvPatchField<Type>(patch, iF, *this)
237  );
238  }
239 
240 
241  // Selectors
242 
243  //- Return a pointer to a new patchField created on freestore given
244  // patch and internal field
245  // (does not set the patch field values)
247  (
248  const word&,
249  const fvPatch&,
251  );
252 
253  //- Return a pointer to a new patchField created on freestore given
254  // patch and internal field
255  // (does not set the patch field values).
256  // Allows override of constraint type
258  (
259  const word&,
260  const word& actualPatchType,
261  const fvPatch&,
263  );
264 
265  //- Return a pointer to a new patchField created on freestore from
266  // a given fvPatchField mapped onto a new patch
268  (
269  const fvPatchField<Type>&,
270  const fvPatch&,
272  const fvPatchFieldMapper&
273  );
274 
275  //- Return a pointer to a new patchField created on freestore
276  // from dictionary
278  (
279  const fvPatch&,
281  const dictionary&
282  );
283 
284  //- Return a pointer to a new calculatedFvPatchField created on
285  // freestore without setting patchField values
287  (
288  const fvPatch&
289  );
290 
291  //- Return a pointer to a new calculatedFvPatchField created on
292  // freestore without setting patchField values
293  template<class Type2>
295  (
296  const fvPatchField<Type2>&
297  );
298 
299 
300  //- Destructor
301  virtual ~fvPatchField<Type>()
302  {}
303 
304 
305  // Member Functions
306 
307  // Attributes
308 
309  //- Return the type of the calculated for of fvPatchField
310  static const word& calculatedType();
311 
312  //- Return true if this patch field fixes a value.
313  // Needed to check if a level has to be specified while solving
314  // Poissons equations.
315  virtual bool fixesValue() const
316  {
317  return false;
318  }
319 
320  //- Return true if the value of the patch field
321  // is altered by assignment (the default)
322  virtual bool assignable() const
323  {
324  return true;
325  }
326 
327  //- Return true if this patch field is coupled
328  virtual bool coupled() const
329  {
330  return false;
331  }
332 
333  //- Return true if this overrides the underlying constraint type
334  bool overridesConstraint() const
335  {
336  if (type() == patch_.type())
337  {
338  return false;
339  }
340 
341  typename patchConstructorTable::iterator patchTypeCstrIter
342  = patchConstructorTablePtr_->find(patch_.type());
343 
344  return
345  patchTypeCstrIter
346  != patchConstructorTablePtr_->end();
347  }
348 
349 
350  // Access
351 
352  //- Return local objectRegistry
353  const objectRegistry& db() const;
354 
355  //- Return patch
356  const fvPatch& patch() const
357  {
358  return patch_;
359  }
360 
361  //- Return dimensioned internal field reference
363  {
364  return internalField_;
365  }
366 
367  //- Return internal field reference
368  const Field<Type>& primitiveField() const
369  {
370  return internalField_;
371  }
372 
373  //- Return true if the boundary condition has already been updated
374  bool updated() const
375  {
376  return updated_;
377  }
378 
379  //- Return true if the matrix has already been manipulated
380  bool manipulatedMatrix() const
381  {
382  return manipulatedMatrix_;
383  }
384 
385 
386  // Mapping functions
387 
388  //- Map the given fvPatchField onto this fvPatchField
389  virtual void map
390  (
391  const fvPatchField<Type>&,
392  const fvPatchFieldMapper&
393  );
394 
395  //- Reset the fvPatchField to the given fvPatchField
396  // Used for mesh to mesh mapping
397  virtual void reset(const fvPatchField<Type>&);
398 
399 
400  // Evaluation functions
401 
402  //- Return patch-normal gradient
403  virtual tmp<Field<Type>> snGrad() const;
404 
405  //- Return patch-normal gradient for coupled-patches
406  // using the deltaCoeffs provided
407  virtual tmp<Field<Type>> snGrad
408  (
409  const scalarField& deltaCoeffs
410  ) const
411  {
413  return *this;
414  }
415 
416  //- Update the coefficients associated with the patch field
417  // Sets Updated to true
418  virtual void updateCoeffs();
419 
420  //- Return internal field next to patch as patch field
421  virtual tmp<Field<Type>> patchInternalField() const;
422 
423  //- Return internal field next to patch as patch field
424  virtual void patchInternalField(Field<Type>&) const;
425 
426  //- Initialise return of the patchField on the opposite patch of a
427  // coupled patch
428  virtual void initPatchNeighbourField
429  (
430  const Pstream::commsTypes commsType =
432  ) const
433  {}
434 
435  //- Return patchField on the opposite patch of a coupled patch
437  (
438  const Pstream::commsTypes commsType =
440  ) const
441  {
443  return *this;
444  }
445 
446  //- Initialise the evaluation of the patch field
447  virtual void initEvaluate
448  (
449  const Pstream::commsTypes commsType =
451  )
452  {}
453 
454  //- Evaluate the patch field, sets Updated to false
455  virtual void evaluate
456  (
457  const Pstream::commsTypes commsType =
459  );
460 
461 
462  //- Return the matrix diagonal coefficients corresponding to the
463  // evaluation of the value of this patchField with given weights
465  (
466  const tmp<Field<scalar>>&
467  ) const
468  {
470  return *this;
471  }
472 
473  //- Return the matrix source coefficients corresponding to the
474  // evaluation of the value of this patchField with given weights
476  (
477  const tmp<Field<scalar>>&
478  ) const
479  {
481  return *this;
482  }
483 
484  //- Return the matrix diagonal coefficients corresponding to the
485  // evaluation of the gradient of this patchField
486  virtual tmp<Field<Type>> gradientInternalCoeffs() const
487  {
489  return *this;
490  }
491 
492  //- Return the matrix diagonal coefficients corresponding to the
493  // evaluation of the gradient of this coupled patchField
494  // using the deltaCoeffs provided
496  (
497  const scalarField& deltaCoeffs
498  ) const
499  {
501  return *this;
502  }
503 
504  //- Return the matrix source coefficients corresponding to the
505  // evaluation of the gradient of this patchField
506  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const
507  {
509  return *this;
510  }
511 
512  //- Return the matrix source coefficients corresponding to the
513  // evaluation of the gradient of this coupled patchField
514  // using the deltaCoeffs provided
516  (
517  const scalarField& deltaCoeffs
518  ) const
519  {
521  return *this;
522  }
523 
524  //- Manipulate matrix
525  virtual void manipulateMatrix(fvMatrix<Type>& matrix);
526 
527 
528  // I-O
529 
530  //- Write
531  virtual void write(Ostream&) const;
532 
533 
534  // Check
535 
536  //- Check fvPatchField<Type> against given fvPatchField<Type>
537  void check(const fvPatchField<Type>&) const;
538 
539 
540  // Member Operators
541 
542  virtual void operator=(const UList<Type>&);
543 
544  virtual void operator=(const fvPatchField<Type>&);
545  virtual void operator+=(const fvPatchField<Type>&);
546  virtual void operator-=(const fvPatchField<Type>&);
547  virtual void operator*=(const fvPatchField<scalar>&);
548  virtual void operator/=(const fvPatchField<scalar>&);
549 
550  virtual void operator+=(const Field<Type>&);
551  virtual void operator-=(const Field<Type>&);
552 
553  virtual void operator*=(const Field<scalar>&);
554  virtual void operator/=(const Field<scalar>&);
555 
556  virtual void operator=(const Type&);
557  virtual void operator+=(const Type&);
558  virtual void operator-=(const Type&);
559  virtual void operator*=(const scalar);
560  virtual void operator/=(const scalar);
561 
562 
563  // Force an assignment irrespective of form of patch
564 
565  virtual void operator==(const fvPatchField<Type>&);
566  virtual void operator==(const Field<Type>&);
567  virtual void operator==(const Type&);
568 
569 
570  // Ostream operator
571 
572  friend Ostream& operator<< <Type>(Ostream&, const fvPatchField<Type>&);
573 };
574 
575 
576 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
577 
578 } // End namespace Foam
579 
580 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
581 
582 #ifdef NoRepository
583  #include "fvPatchField.C"
584  #include "calculatedFvPatchField.H"
585 #endif
586 
587 
588 #define makeFvPatchField(fvPatchTypeField) \
589  defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
590  template<> \
591  int fvPatchTypeField::disallowGenericFvPatchField \
592  ( \
593  debug::debugSwitch("disallowGenericFvPatchField", 0) \
594  ); \
595  defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
596  defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
597  defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
598 
599 
600 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
601  addToRunTimeSelectionTable \
602  ( \
603  PatchTypeField, \
604  typePatchTypeField, \
605  patchMapper \
606  ); \
607  addToRunTimeSelectionTable \
608  ( \
609  PatchTypeField, \
610  typePatchTypeField, \
611  dictionary \
612  );
613 
614 
615 #define addToNullConstructablePatchFieldRunTimeSelection( \
616  PatchTypeField, typePatchTypeField) \
617  \
618  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
619  \
620  addToRunTimeSelectionTable \
621  ( \
622  PatchTypeField, \
623  typePatchTypeField, \
624  patch \
625  );
626 
627 
628 // Use with caution
629 #define addRemovableToPatchFieldRunTimeSelection( \
630  PatchTypeField, typePatchTypeField) \
631  \
632  addRemovableToRunTimeSelectionTable \
633  ( \
634  PatchTypeField, \
635  typePatchTypeField, \
636  patchMapper \
637  ); \
638  addRemovableToRunTimeSelectionTable \
639  ( \
640  PatchTypeField, \
641  typePatchTypeField, \
642  dictionary \
643  );
644 
645 
646 // For non-templated patch fields
647 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
648  defineTypeNameAndDebug(typePatchTypeField, 0); \
649  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
650 
651 
652 // For null-constructable non-templated patch fields
653 #define makeNullConstructablePatchTypeField(PatchTypeField, typePatchTypeField)\
654  defineTypeNameAndDebug(typePatchTypeField, 0); \
655  addToNullConstructablePatchFieldRunTimeSelection \
656  ( \
657  PatchTypeField, \
658  typePatchTypeField \
659  )
660 
661 
662 // For non-templated patch fields - use with caution
663 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
664  defineTypeNameAndDebug(typePatchTypeField, 0); \
665  addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
666 
667 
668 // For templated patch fields
669 #define makeTemplatePatchTypeField(fieldType, type) \
670  defineNamedTemplateTypeNameAndDebug \
671  ( \
672  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
673  0 \
674  ); \
675  addToPatchFieldRunTimeSelection \
676  ( \
677  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
678  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
679  )
680 
681 
682 // For null-constructable templated patch fields
683 #define makeNullConstructableTemplatePatchTypeField(fieldType, type) \
684  defineNamedTemplateTypeNameAndDebug \
685  ( \
686  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
687  0 \
688  ); \
689  addToNullConstructablePatchFieldRunTimeSelection \
690  ( \
691  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
692  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
693  )
694 
695 
696 #define makePatchFields(type) \
697  FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
698 
699 
700 #define makeNullConstructablePatchFields(type) \
701  FOR_ALL_FIELD_TYPES(makeNullConstructableTemplatePatchTypeField, type)
702 
703 
704 #define makePatchFieldTypeName(fieldType, type) \
705  defineNamedTemplateTypeNameAndDebug \
706  ( \
707  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
708  0 \
709  );
710 
711 
712 #define makePatchFieldTypeNames(type) \
713  FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
714 
715 
716 #define makePatchTypeFieldTypedef(fieldType, type) \
717  typedef type##FvPatchField<fieldType> \
718  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
719 
720 
721 #define makePatchTypeFieldTypedefs(type) \
722  FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type)
723 
724 
725 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
726 
727 #endif
728 
729 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Pre-declare SubField and related Field type.
Definition: Field.H:82
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
commsTypes
Types of communications.
Definition: UPstream.H:65
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvMatrix.H:118
Foam::fvPatchFieldMapper.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:87
virtual void initPatchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Initialise return of the patchField on the opposite patch of a.
Definition: fvPatchField.H:428
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
Definition: fvPatchField.H:447
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
Definition: fvPatchField.H:379
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:505
virtual bool fixesValue() const
Return true if this patch field fixes a value.
Definition: fvPatchField.H:314
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
Definition: fvPatchField.H:361
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
Definition: fvPatchField.C:211
virtual void write(Ostream &) const
Write.
Definition: fvPatchField.C:231
virtual void operator==(const fvPatchField< Type > &)
Definition: fvPatchField.C:417
virtual bool coupled() const
Return true if this patch field is coupled.
Definition: fvPatchField.H:327
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
Definition: fvPatchField.C:172
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:475
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Definition: fvPatchField.C:164
virtual void operator-=(const fvPatchField< Type > &)
Definition: fvPatchField.C:283
const Field< Type > & primitiveField() const
Return internal field reference.
Definition: fvPatchField.H:367
const objectRegistry & db() const
Return local objectRegistry.
Definition: fvPatchField.C:145
virtual void operator=(const UList< Type > &)
Definition: fvPatchField.C:251
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:204
virtual tmp< Field< Type > > patchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Return patchField on the opposite patch of a coupled patch.
Definition: fvPatchField.H:436
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
Definition: fvPatchField.C:197
TypeName("fvPatchField")
Runtime type information.
calculatedFvPatchField< Type > Calculated
Definition: fvPatchField.H:111
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
Definition: fvPatchField.C:224
virtual void map(const fvPatchField< Type > &, const fvPatchFieldMapper &)
Map the given fvPatchField onto this fvPatchField.
Definition: fvPatchField.C:187
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual void operator*=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:294
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
Definition: fvPatchField.H:118
virtual void operator+=(const fvPatchField< Type > &)
Definition: fvPatchField.C:272
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:485
bool overridesConstraint() const
Return true if this overrides the underlying constraint type.
Definition: fvPatchField.H:333
const fvPatch & patch() const
Return patch.
Definition: fvPatchField.H:355
virtual bool assignable() const
Return true if the value of the patch field.
Definition: fvPatchField.H:321
virtual void operator/=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:311
bool updated() const
Return true if the boundary condition has already been updated.
Definition: fvPatchField.H:373
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:464
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
Definition: fvPatchField.C:152
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Definition: fvPatchField.C:36
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:203
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
Registry of regIOobjects.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:353
Include the header files for all the primitive types that Fields are instantiated for.
Namespace for OpenFOAM.
Ostream & operator<<(Ostream &, const ensightPart &)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
dictionary dict
volScalarField & p