fvPatchField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
9  Copyright (C) 2019-2021 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::fvPatchField
29 
30 Description
31  Abstract base class with a fat-interface to all derived classes
32  covering all possible ways in which they might be used.
33 
34  The first level of derivation is to basic patchFields which cover
35  zero-gradient, fixed-gradient, fixed-value and mixed conditions.
36 
37  The next level of derivation covers all the specialised types with
38  specific evaluation procedures, particularly with respect to specific
39  fields.
40 
41 SourceFiles
42  fvPatchField.C
43  fvPatchFieldNew.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef fvPatchField_H
48 #define fvPatchField_H
49 
50 #include "fvPatch.H"
51 #include "DimensionedField.H"
52 #include "fieldTypes.H"
53 #include "scalarField.H"
54 
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 
57 namespace Foam
58 {
59 
60 // Forward Declarations
61 
62 class objectRegistry;
63 class dictionary;
64 class fvPatchFieldMapper;
65 class volMesh;
66 
67 template<class Type> class fvPatchField;
68 template<class Type> class calculatedFvPatchField;
69 template<class Type> class fvMatrix;
70 
71 
72 template<class Type>
74 
75 
76 /*---------------------------------------------------------------------------*\
77  Class fvPatchField Declaration
78 \*---------------------------------------------------------------------------*/
79 
80 template<class Type>
81 class fvPatchField
82 :
83  public Field<Type>
84 {
85  // Private Data
86 
87  //- Reference to patch
88  const fvPatch& patch_;
89 
90  //- Reference to internal field
91  const DimensionedField<Type, volMesh>& internalField_;
92 
93  //- Update index used so that updateCoeffs is called only once during
94  //- the construction of the matrix
95  bool updated_;
96 
97  //- Update index used so that manipulateMatrix is called only once
98  //- during the construction of the matrix
99  bool manipulatedMatrix_;
100 
101  //- Use implicit formulation
102  bool useImplicit_;
103 
104  //- Optional patch type, used to allow specified boundary conditions
105  // to be applied to constraint patches by providing the constraint
106  // patch type as 'patchType'
107  word patchType_;
108 
109 
110 public:
111 
112  typedef fvPatch Patch;
114 
115 
116  //- Runtime type information
117  TypeName("fvPatchField");
118 
119  //- Debug switch to disallow the use of genericFvPatchField
120  static int disallowGenericFvPatchField;
121 
122 
123  // Declare run-time constructor selection tables
124 
126  (
127  tmp,
128  fvPatchField,
129  patch,
130  (
131  const fvPatch& p,
133  ),
134  (p, iF)
135  );
136 
138  (
139  tmp,
140  fvPatchField,
141  patchMapper,
142  (
143  const fvPatchField<Type>& ptf,
144  const fvPatch& p,
146  const fvPatchFieldMapper& m
147  ),
148  (dynamic_cast<const fvPatchFieldType&>(ptf), p, iF, m)
149  );
150 
152  (
153  tmp,
154  fvPatchField,
155  dictionary,
156  (
157  const fvPatch& p,
159  const dictionary& dict
160  ),
161  (p, iF, dict)
162  );
163 
164 
165  // Constructors
166 
167  //- Construct from patch and internal field
169  (
170  const fvPatch&,
172  );
173 
174  //- Construct from patch, internal field and value
176  (
177  const fvPatch&,
179  const Type& value
180  );
181 
182  //- Construct from patch and internal field and patch type
184  (
185  const fvPatch&,
187  const word& patchType
188  );
189 
190  //- Construct from patch and internal field and patch field
192  (
193  const fvPatch&,
195  const Field<Type>&
196  );
197 
198  //- Construct from patch, internal field and dictionary
200  (
201  const fvPatch&,
203  const dictionary&,
204  const bool valueRequired=true
205  );
206 
207  //- Construct by mapping the given fvPatchField onto a new patch
209  (
210  const fvPatchField<Type>&,
211  const fvPatch&,
213  const fvPatchFieldMapper&
214  );
215 
216  //- Construct as copy
218 
219  //- Construct and return a clone
220  virtual tmp<fvPatchField<Type>> clone() const
221  {
222  return tmp<fvPatchField<Type>>::New(*this);
223  }
224 
225  //- Construct as copy setting internal field reference
227  (
228  const fvPatchField<Type>&,
230  );
231 
232  //- Construct and return a clone setting internal field reference
234  (
236  ) const
237  {
238  return tmp<fvPatchField<Type>>::New(*this, iF);
239  }
240 
241 
242  // Selectors
243 
244  //- Return a pointer to a new patchField created on freestore given
245  // patch and internal field
246  // (does not set the patch field values)
248  (
249  const word&,
250  const fvPatch&,
252  );
253 
254  //- Return a pointer to a new patchField created on freestore given
255  // patch and internal field
256  // (does not set the patch field values).
257  // Allows override of constraint type
259  (
260  const word&,
261  const word& actualPatchType,
262  const fvPatch&,
264  );
265 
266  //- Return a pointer to a new patchField created on freestore from
267  // a given fvPatchField mapped onto a new patch
269  (
270  const fvPatchField<Type>&,
271  const fvPatch&,
273  const fvPatchFieldMapper&
274  );
275 
276  //- Return a pointer to a new patchField created on freestore
277  // from dictionary
279  (
280  const fvPatch&,
282  const dictionary&
283  );
284 
285  //- Return a pointer to a new calculatedFvPatchField created on
286  // freestore without setting patchField values
288  (
289  const fvPatch&
290  );
291 
292  //- Return a pointer to a new calculatedFvPatchField created on
293  // freestore without setting patchField values
294  template<class Type2>
296  (
297  const fvPatchField<Type2>&
298  );
299 
300 
301  //- Destructor
302  virtual ~fvPatchField<Type>() = default;
303 
304 
305  // Member Functions
306 
307  // Implicit Functions
308 
309  //- Use implicit formulation for coupled patches only
310  bool useImplicit() const noexcept
311  {
312  return useImplicit_;
313  }
314 
315  //- Set useImplicit on/off
316  // \return old value
317  bool useImplicit(bool on) noexcept
318  {
319  bool old(useImplicit_);
320  useImplicit_ = on;
321  return old;
322  }
323 
324 
325  // Attributes
326 
327  //- Return the type of the calculated for of fvPatchField
328  static const word& calculatedType();
329 
330  //- Return true if this patch field fixes a value.
331  // Needed to check if a level has to be specified while solving
332  // Poissons equations.
333  virtual bool fixesValue() const
334  {
335  return false;
336  }
337 
338  //- Return true if the value of the patch field
339  // is altered by assignment (the default)
340  virtual bool assignable() const
341  {
342  return true;
343  }
344 
345  //- Return true if this patch field is coupled
346  virtual bool coupled() const
347  {
348  return false;
349  }
350 
351 
352  // Access
353 
354  //- Return local objectRegistry
355  const objectRegistry& db() const;
356 
357  //- Return patch
358  const fvPatch& patch() const
359  {
360  return patch_;
361  }
362 
363  //- Return dimensioned internal field reference
365  {
366  return internalField_;
367  }
368 
369  //- Return internal field reference
370  const Field<Type>& primitiveField() const
371  {
372  return internalField_;
373  }
374 
375  //- Optional patch type
376  const word& patchType() const
377  {
378  return patchType_;
379  }
380 
381  //- Optional patch type
382  word& patchType()
383  {
384  return patchType_;
385  }
386 
387  //- Return true if the boundary condition has already been updated
388  bool updated() const
389  {
390  return updated_;
391  }
392 
393  //- Return true if the matrix has already been manipulated
394  bool manipulatedMatrix() const
395  {
396  return manipulatedMatrix_;
397  }
398 
399 
400  // Mapping Functions
401 
402  //- Map (and resize as needed) from self given a mapping object
403  virtual void autoMap
404  (
405  const fvPatchFieldMapper&
406  );
407 
408  //- Reverse map the given fvPatchField onto this fvPatchField
409  virtual void rmap
410  (
411  const fvPatchField<Type>&,
412  const labelList&
413  );
414 
415 
416  // Evaluation Functions
417 
418  //- Return patch-normal gradient
419  virtual tmp<Field<Type>> snGrad() const;
420 
421  //- Return patch-normal gradient for coupled-patches
422  // using the deltaCoeffs provided
424  (
425  const scalarField& deltaCoeffs
426  ) const
427  {
429  return *this;
430  }
431 
432  //- Update the coefficients associated with the patch field
433  // Sets Updated to true
434  virtual void updateCoeffs();
435 
436  //- Update the coefficients associated with the patch field
437  // with a weight field (0..1). This weight field is usually
438  // provided as the amount of geometric overlap for 'duplicate'
439  // patches. Sets Updated to true
440  virtual void updateWeightedCoeffs(const scalarField& weights);
441 
442  //- Return internal field next to patch as patch field
443  virtual tmp<Field<Type>> patchInternalField() const;
444 
445  //- Return internal field next to patch as patch field
446  virtual void patchInternalField(Field<Type>&) const;
447 
448  //- Return patchField on the opposite patch of a coupled patch
449  virtual tmp<Field<Type>> patchNeighbourField() 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 
534  //- Manipulate matrix
535  virtual void manipulateMatrix(fvMatrix<Type>& matrix);
536 
537  //- Manipulate matrix with given weights
538  virtual void manipulateMatrix
539  (
540  fvMatrix<Type>& matrix,
541  const scalarField& weights
542  );
543 
544  //- Manipulate fvMatrix
545  virtual void manipulateMatrix
546  (
547  fvMatrix<Type>& matrix,
548  const label iMatrix,
549  const direction cmp
550  );
551 
552 
553  // I-O
554 
555  //- Write
556  virtual void write(Ostream&) const;
557 
558 
559  // Check
560 
561  //- Check fvPatchField<Type> against given fvPatchField<Type>
562  void check(const fvPatchField<Type>&) const;
563 
564 
565  // Member Operators
566 
567  virtual void operator=(const UList<Type>&);
568 
569  virtual void operator=(const fvPatchField<Type>&);
570  virtual void operator+=(const fvPatchField<Type>&);
571  virtual void operator-=(const fvPatchField<Type>&);
572  virtual void operator*=(const fvPatchField<scalar>&);
573  virtual void operator/=(const fvPatchField<scalar>&);
574 
575  virtual void operator+=(const Field<Type>&);
576  virtual void operator-=(const Field<Type>&);
577 
578  virtual void operator*=(const Field<scalar>&);
579  virtual void operator/=(const Field<scalar>&);
580 
581  virtual void operator=(const Type&);
582  virtual void operator+=(const Type&);
583  virtual void operator-=(const Type&);
584  virtual void operator*=(const scalar);
585  virtual void operator/=(const scalar);
586 
587 
588  // Force an assignment irrespective of form of patch
589 
590  virtual void operator==(const fvPatchField<Type>&);
591  virtual void operator==(const Field<Type>&);
592  virtual void operator==(const Type&);
593 
594 
595  // Ostream operator
596 
597  friend Ostream& operator<< <Type>(Ostream&, const fvPatchField<Type>&);
598 };
599 
600 
601 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
602 
603 } // End namespace Foam
604 
605 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
606 
607 #ifdef NoRepository
608  #include "fvPatchField.C"
609  #include "calculatedFvPatchField.H"
610 #endif
611 
612 
613 #define makeFvPatchField(fvPatchTypeField) \
614  \
615 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
616 template<> \
617 int fvPatchTypeField::disallowGenericFvPatchField \
618 ( \
619  debug::debugSwitch("disallowGenericFvPatchField", 0) \
620 ); \
621 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
622 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
623 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
624 
625 
626 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
627  addToRunTimeSelectionTable \
628  ( \
629  PatchTypeField, \
630  typePatchTypeField, \
631  patch \
632  ); \
633  addToRunTimeSelectionTable \
634  ( \
635  PatchTypeField, \
636  typePatchTypeField, \
637  patchMapper \
638  ); \
639  addToRunTimeSelectionTable \
640  ( \
641  PatchTypeField, \
642  typePatchTypeField, \
643  dictionary \
644  );
645 
646 
647 // Use with caution
648 #define addRemovableToPatchFieldRunTimeSelection\
649 (PatchTypeField, typePatchTypeField) \
650  \
651  addRemovableToRunTimeSelectionTable \
652  ( \
653  PatchTypeField, \
654  typePatchTypeField, \
655  patch \
656  ); \
657  addRemovableToRunTimeSelectionTable \
658  ( \
659  PatchTypeField, \
660  typePatchTypeField, \
661  patchMapper \
662  ); \
663  addRemovableToRunTimeSelectionTable \
664  ( \
665  PatchTypeField, \
666  typePatchTypeField, \
667  dictionary \
668  );
669 
670 
671 // For non-templated patch fields
672 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
673  defineTypeNameAndDebug(typePatchTypeField, 0); \
674  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
675 
676 // For non-templated patch fields - use with caution
677 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
678  defineTypeNameAndDebug(typePatchTypeField, 0); \
679  addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
680 
681 // For templated patch fields
682 #define makeTemplatePatchTypeField(fieldType, type) \
683  defineNamedTemplateTypeNameAndDebug \
684  ( \
685  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
686  0 \
687  ); \
688  addToPatchFieldRunTimeSelection \
689  ( \
690  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
691  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
692  )
693 
694 #define makePatchFields(type) \
695  FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
696 
697 #define makePatchFieldTypeName(fieldType, type) \
698  defineNamedTemplateTypeNameAndDebug \
699  ( \
700  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
701  0 \
702  );
703 
704 #define makePatchFieldTypeNames(type) \
705  FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
706 
707 #define makePatchTypeFieldTypedef(fieldType, type) \
708  typedef type##FvPatchField<fieldType> \
709  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
710 
711 #define makePatchTypeFieldTypedefs(type) \
712  FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type)
713 
714 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
715 
716 #endif
717 
718 // ************************************************************************* //
Foam::fvPatchField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: volSurfaceMapping.H:51
Foam::fvPatchField::write
virtual void write(Ostream &) const
Write.
Definition: fvPatchField.C:384
Foam::fvPatchField::internalField
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
Definition: fvPatchField.H:363
Foam::fvPatchField::snGrad
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Definition: fvPatchField.C:225
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::fvPatchField::declareRunTimeSelectionTable
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
Foam::fvPatchField::primitiveField
const Field< Type > & primitiveField() const
Return internal field reference.
Definition: fvPatchField.H:369
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
scalarField.H
DimensionedField.H
Foam::fvPatchField::operator==
virtual void operator==(const fvPatchField< Type > &)
Definition: fvPatchField.C:570
Foam::fvPatchField::useImplicit
bool useImplicit() const noexcept
Use implicit formulation for coupled patches only.
Definition: fvPatchField.H:309
Foam::fvPatchField::operator/=
virtual void operator/=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:464
calculatedFvPatchField.H
Foam::fvPatchField::fixesValue
virtual bool fixesValue() const
Return true if this patch field fixes a value.
Definition: fvPatchField.H:332
Foam::fvPatchField::initEvaluate
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
Definition: fvPatchField.H:456
Foam::fvPatchField::calculatedType
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
Definition: calculatedFvPatchField.C:35
Foam::fvPatchField::updated
bool updated() const
Return true if the boundary condition has already been updated.
Definition: fvPatchField.H:387
Foam::fvPatchField::Patch
fvPatch Patch
Definition: fvPatchField.H:111
Foam::fvPatchField::manipulatedMatrix
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
Definition: fvPatchField.H:393
Foam::fvPatchField::operator-=
virtual void operator-=(const fvPatchField< Type > &)
Definition: fvPatchField.C:436
Foam::objectRegistry
Registry of regIOobjects.
Definition: objectRegistry.H:60
Foam::fvPatchField::valueInternalCoeffs
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:473
Foam::operator<<
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
Definition: boundaryPatch.C:83
NotImplemented
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:517
Foam::fvPatchField::coupled
virtual bool coupled() const
Return true if this patch field is coupled.
Definition: fvPatchField.H:345
Foam::fvPatchField::TypeName
TypeName("fvPatchField")
Runtime type information.
Foam::fvPatchField::valueBoundaryCoeffs
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:484
Foam::Field
Generic templated field type.
Definition: Field.H:63
Foam::fvPatchField::assignable
virtual bool assignable() const
Return true if the value of the patch field.
Definition: fvPatchField.H:339
Foam::fvPatchField::gradientInternalCoeffs
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:494
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:65
Foam::fvPatchField::patchInternalField
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
Definition: fvPatchField.C:233
Foam::fvPatchField::evaluate
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
Definition: fvPatchField.C:341
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::fvPatchField::rmap
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
Definition: fvPatchField.C:311
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::calculatedFvPatchField
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
Definition: calculatedFvPatchField.H:66
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::fvPatchField::manipulateMatrix
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
Definition: fvPatchField.C:354
fvPatchField.C
Foam::fvPatchField::updateCoeffs
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:321
Foam::fvPatchField::patchNeighbourField
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
Definition: fvPatchField.H:448
Foam::fvPatchField::New
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
Definition: fvPatchFieldNew.C:88
Foam::UPstream::commsTypes
commsTypes
Types of communications.
Definition: UPstream.H:69
Foam::fvPatchField::check
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
Definition: fvPatchField.C:213
Foam::fvPatchField::gradientBoundaryCoeffs
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:514
Foam::fvPatchField::db
const objectRegistry & db() const
Return local objectRegistry.
Definition: fvPatchField.C:206
Foam::fvPatchField::patchType
const word & patchType() const
Optional patch type.
Definition: fvPatchField.H:375
Foam::fvPatchField::NewCalculatedType
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
Definition: calculatedFvPatchField.C:104
Foam::List< label >
Foam::UList< Type >
Foam::fvPatchField::clone
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Definition: fvPatchField.H:219
Foam::direction
uint8_t direction
Definition: direction.H:52
Foam::fvMatrix
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvPatchField.H:68
Foam::fvPatchField::patchType
word & patchType()
Optional patch type.
Definition: fvPatchField.H:381
Foam::fvPatchField::operator+=
virtual void operator+=(const fvPatchField< Type > &)
Definition: fvPatchField.C:425
Foam::fvPatchField::fvPatchField
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Definition: fvPatchField.C:39
Foam::fvPatchFieldMapper
Foam::fvPatchFieldMapper.
Definition: fvPatchFieldMapper.H:47
fvPatch.H
Foam::fvPatchField::patch
const fvPatch & patch() const
Return patch.
Definition: fvPatchField.H:357
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:56
Foam::fvPatchField::operator*=
virtual void operator*=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:447
Foam::fvPatchField::Calculated
calculatedFvPatchField< Type > Calculated
Definition: fvPatchField.H:112
fieldTypes.H
Header files for all the primitive types that Fields are instantiated for.
Foam::fvPatchField::updateWeightedCoeffs
virtual void updateWeightedCoeffs(const scalarField &weights)
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:328
Foam::fvPatchField::operator=
virtual void operator=(const UList< Type > &)
Definition: fvPatchField.C:404
Foam::fvPatchField::autoMap
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Definition: fvPatchField.C:248
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54
Foam::UPstream::commsTypes::blocking
Foam::fvPatchField::disallowGenericFvPatchField
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
Definition: fvPatchField.H:119