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