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