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 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 declaration of classes
61 
62 class objectRegistry;
63 class dictionary;
64 class fvPatchFieldMapper;
65 class volMesh;
66 
67 
68 // Forward declaration of friend functions and operators
69 
70 template<class Type>
71 class fvPatchField;
72 
73 template<class Type>
74 class calculatedFvPatchField;
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  //- 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  //- Optional patch type, used to allow specified boundary conditions
109  // to be applied to constraint patches by providing the constraint
110  // patch type as 'patchType'
111  word patchType_;
112 
113 
114 public:
115 
116  typedef fvPatch Patch;
118 
119 
120  //- Runtime type information
121  TypeName("fvPatchField");
122 
123  //- Debug switch to disallow the use of genericFvPatchField
124  static int disallowGenericFvPatchField;
125 
126 
127  // Declare run-time constructor selection tables
128 
130  (
131  tmp,
132  fvPatchField,
133  patch,
134  (
135  const fvPatch& p,
137  ),
138  (p, iF)
139  );
140 
142  (
143  tmp,
144  fvPatchField,
145  patchMapper,
146  (
147  const fvPatchField<Type>& ptf,
148  const fvPatch& p,
150  const fvPatchFieldMapper& m
151  ),
152  (dynamic_cast<const fvPatchFieldType&>(ptf), p, iF, m)
153  );
154 
156  (
157  tmp,
158  fvPatchField,
159  dictionary,
160  (
161  const fvPatch& p,
163  const dictionary& dict
164  ),
165  (p, iF, dict)
166  );
167 
168 
169  // Constructors
170 
171  //- Construct from patch and internal field
173  (
174  const fvPatch&,
176  );
177 
178  //- Construct from patch, internal field and value
180  (
181  const fvPatch&,
183  const Type& value
184  );
185 
186  //- Construct from patch and internal field and patch type
188  (
189  const fvPatch&,
191  const word& patchType
192  );
193 
194  //- Construct from patch and internal field and patch field
196  (
197  const fvPatch&,
199  const Field<Type>&
200  );
201 
202  //- Construct from patch, internal field and dictionary
204  (
205  const fvPatch&,
207  const dictionary&,
208  const bool valueRequired=true
209  );
210 
211  //- Construct by mapping the given fvPatchField onto a new patch
213  (
214  const fvPatchField<Type>&,
215  const fvPatch&,
217  const fvPatchFieldMapper&
218  );
219 
220  //- Construct as copy
222 
223  //- Construct and return a clone
224  virtual tmp<fvPatchField<Type>> clone() const
225  {
226  return tmp<fvPatchField<Type>>::New(*this);
227  }
228 
229  //- Construct as copy setting internal field reference
231  (
232  const fvPatchField<Type>&,
234  );
235 
236  //- Construct and return a clone setting internal field reference
238  (
240  ) const
241  {
242  return tmp<fvPatchField<Type>>::New(*this, iF);
243  }
244 
245 
246  // Selectors
247 
248  //- Return a pointer to a new patchField created on freestore given
249  // patch and internal field
250  // (does not set the patch field values)
252  (
253  const word&,
254  const fvPatch&,
256  );
257 
258  //- Return a pointer to a new patchField created on freestore given
259  // patch and internal field
260  // (does not set the patch field values).
261  // Allows override of constraint type
263  (
264  const word&,
265  const word& actualPatchType,
266  const fvPatch&,
268  );
269 
270  //- Return a pointer to a new patchField created on freestore from
271  // a given fvPatchField mapped onto a new patch
273  (
274  const fvPatchField<Type>&,
275  const fvPatch&,
277  const fvPatchFieldMapper&
278  );
279 
280  //- Return a pointer to a new patchField created on freestore
281  // from dictionary
283  (
284  const fvPatch&,
286  const dictionary&
287  );
288 
289  //- Return a pointer to a new calculatedFvPatchField created on
290  // freestore without setting patchField values
292  (
293  const fvPatch&
294  );
295 
296  //- Return a pointer to a new calculatedFvPatchField created on
297  // freestore without setting patchField values
298  template<class Type2>
300  (
301  const fvPatchField<Type2>&
302  );
303 
304 
305  //- Destructor
306  virtual ~fvPatchField<Type>() = default;
307 
308 
309  // Member functions
310 
311  // Attributes
312 
313  //- Return the type of the calculated for of fvPatchField
314  static const word& calculatedType();
315 
316  //- Return true if this patch field fixes a value.
317  // Needed to check if a level has to be specified while solving
318  // Poissons equations.
319  virtual bool fixesValue() const
320  {
321  return false;
322  }
323 
324  //- Return true if the value of the patch field
325  // is altered by assignment (the default)
326  virtual bool assignable() const
327  {
328  return true;
329  }
330 
331  //- Return true if this patch field is coupled
332  virtual bool coupled() const
333  {
334  return false;
335  }
336 
337 
338  // Access
339 
340  //- Return local objectRegistry
341  const objectRegistry& db() const;
342 
343  //- Return patch
344  const fvPatch& patch() const
345  {
346  return patch_;
347  }
348 
349  //- Return dimensioned internal field reference
351  {
352  return internalField_;
353  }
354 
355  //- Return internal field reference
356  const Field<Type>& primitiveField() const
357  {
358  return internalField_;
359  }
360 
361  //- Optional patch type
362  const word& patchType() const
363  {
364  return patchType_;
365  }
366 
367  //- Optional patch type
368  word& patchType()
369  {
370  return patchType_;
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 (and resize as needed) from self given a mapping object
389  virtual void autoMap
390  (
391  const fvPatchFieldMapper&
392  );
393 
394  //- Reverse map the given fvPatchField onto this fvPatchField
395  virtual void rmap
396  (
397  const fvPatchField<Type>&,
398  const labelList&
399  );
400 
401 
402  // Evaluation functions
403 
404  //- Return patch-normal gradient
405  virtual tmp<Field<Type>> snGrad() const;
406 
407  //- Return patch-normal gradient for coupled-patches
408  // using the deltaCoeffs provided
410  (
411  const scalarField& deltaCoeffs
412  ) const
413  {
415  return *this;
416  }
417 
418  //- Update the coefficients associated with the patch field
419  // Sets Updated to true
420  virtual void updateCoeffs();
421 
422  //- Update the coefficients associated with the patch field
423  // with a weight field (0..1). This weight field is usually
424  // provided as the amount of geometric overlap for 'duplicate'
425  // patches. Sets Updated to true
426  virtual void updateWeightedCoeffs(const scalarField& weights);
427 
428  //- Return internal field next to patch as patch field
429  virtual tmp<Field<Type>> patchInternalField() const;
430 
431  //- Return internal field next to patch as patch field
432  virtual void patchInternalField(Field<Type>&) const;
433 
434  //- Return patchField on the opposite patch of a coupled patch
435  virtual tmp<Field<Type>> patchNeighbourField() const
436  {
438  return *this;
439  }
440 
441  //- Initialise the evaluation of the patch field
442  virtual void initEvaluate
443  (
444  const Pstream::commsTypes commsType =
446  )
447  {}
448 
449  //- Evaluate the patch field, sets Updated to false
450  virtual void evaluate
451  (
452  const Pstream::commsTypes commsType =
454  );
455 
456 
457  //- Return the matrix diagonal coefficients corresponding to the
458  // evaluation of the value of this patchField with given weights
460  (
461  const tmp<Field<scalar>>&
462  ) const
463  {
465  return *this;
466  }
467 
468  //- Return the matrix source coefficients corresponding to the
469  // evaluation of the value of this patchField with given weights
471  (
472  const tmp<Field<scalar>>&
473  ) const
474  {
476  return *this;
477  }
478 
479  //- Return the matrix diagonal coefficients corresponding to the
480  // evaluation of the gradient of this patchField
481  virtual tmp<Field<Type>> gradientInternalCoeffs() const
482  {
484  return *this;
485  }
486 
487  //- Return the matrix diagonal coefficients corresponding to the
488  // evaluation of the gradient of this coupled patchField
489  // using the deltaCoeffs provided
491  (
492  const scalarField& deltaCoeffs
493  ) const
494  {
496  return *this;
497  }
498 
499  //- Return the matrix source coefficients corresponding to the
500  // evaluation of the gradient of this patchField
501  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const
502  {
504  return *this;
505  }
506 
507  //- Return the matrix source coefficients corresponding to the
508  // evaluation of the gradient of this coupled patchField
509  // using the deltaCoeffs provided
511  (
512  const scalarField& deltaCoeffs
513  ) const
514  {
516  return *this;
517  }
518 
519 
520  //- Manipulate matrix
521  virtual void manipulateMatrix(fvMatrix<Type>& matrix);
522 
523  //- Manipulate matrix with given weights
524  virtual void manipulateMatrix
525  (
526  fvMatrix<Type>& matrix,
527  const scalarField& weights
528  );
529 
530 
531  // I-O
532 
533  //- Write
534  virtual void write(Ostream&) const;
535 
536 
537  // Check
538 
539  //- Check fvPatchField<Type> against given fvPatchField<Type>
540  void check(const fvPatchField<Type>&) const;
541 
542 
543  // Member operators
544 
545  virtual void operator=(const UList<Type>&);
546 
547  virtual void operator=(const fvPatchField<Type>&);
548  virtual void operator+=(const fvPatchField<Type>&);
549  virtual void operator-=(const fvPatchField<Type>&);
550  virtual void operator*=(const fvPatchField<scalar>&);
551  virtual void operator/=(const fvPatchField<scalar>&);
552 
553  virtual void operator+=(const Field<Type>&);
554  virtual void operator-=(const Field<Type>&);
555 
556  virtual void operator*=(const Field<scalar>&);
557  virtual void operator/=(const Field<scalar>&);
558 
559  virtual void operator=(const Type&);
560  virtual void operator+=(const Type&);
561  virtual void operator-=(const Type&);
562  virtual void operator*=(const scalar);
563  virtual void operator/=(const scalar);
564 
565 
566  // Force an assignment irrespective of form of patch
567 
568  virtual void operator==(const fvPatchField<Type>&);
569  virtual void operator==(const Field<Type>&);
570  virtual void operator==(const Type&);
571 
572 
573  // Ostream operator
574 
575  friend Ostream& operator<< <Type>(Ostream&, const fvPatchField<Type>&);
576 };
577 
578 
579 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
580 
581 } // End namespace Foam
582 
583 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
584 
585 #ifdef NoRepository
586  #include "fvPatchField.C"
587  #include "calculatedFvPatchField.H"
588 #endif
589 
590 
591 #define makeFvPatchField(fvPatchTypeField) \
592  \
593 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
594 template<> \
595 int fvPatchTypeField::disallowGenericFvPatchField \
596 ( \
597  debug::debugSwitch("disallowGenericFvPatchField", 0) \
598 ); \
599 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
600 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
601 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
602 
603 
604 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
605  addToRunTimeSelectionTable \
606  ( \
607  PatchTypeField, \
608  typePatchTypeField, \
609  patch \
610  ); \
611  addToRunTimeSelectionTable \
612  ( \
613  PatchTypeField, \
614  typePatchTypeField, \
615  patchMapper \
616  ); \
617  addToRunTimeSelectionTable \
618  ( \
619  PatchTypeField, \
620  typePatchTypeField, \
621  dictionary \
622  );
623 
624 
625 // Use with caution
626 #define addRemovableToPatchFieldRunTimeSelection\
627 (PatchTypeField, typePatchTypeField) \
628  \
629  addRemovableToRunTimeSelectionTable \
630  ( \
631  PatchTypeField, \
632  typePatchTypeField, \
633  patch \
634  ); \
635  addRemovableToRunTimeSelectionTable \
636  ( \
637  PatchTypeField, \
638  typePatchTypeField, \
639  patchMapper \
640  ); \
641  addRemovableToRunTimeSelectionTable \
642  ( \
643  PatchTypeField, \
644  typePatchTypeField, \
645  dictionary \
646  );
647 
648 
649 // For non-templated patch fields
650 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
651  defineTypeNameAndDebug(typePatchTypeField, 0); \
652  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
653 
654 // For non-templated patch fields - use with caution
655 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
656  defineTypeNameAndDebug(typePatchTypeField, 0); \
657  addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
658 
659 // For templated patch fields
660 #define makeTemplatePatchTypeField(fieldType, type) \
661  defineNamedTemplateTypeNameAndDebug \
662  ( \
663  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
664  0 \
665  ); \
666  addToPatchFieldRunTimeSelection \
667  ( \
668  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
669  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
670  )
671 
672 #define makePatchFields(type) \
673  FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
674 
675 #define makePatchFieldTypeName(fieldType, type) \
676  defineNamedTemplateTypeNameAndDebug \
677  ( \
678  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
679  0 \
680  );
681 
682 #define makePatchFieldTypeNames(type) \
683  FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
684 
685 #define makePatchTypeFieldTypedef(fieldType, type) \
686  typedef type##FvPatchField<fieldType> \
687  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
688 
689 #define makePatchTypeFieldTypedefs(type) \
690  FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type)
691 
692 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
693 
694 #endif
695 
696 // ************************************************************************* //
Foam::fvPatchField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: volSurfaceMapping.H:50
Foam::fvPatchField::write
virtual void write(Ostream &) const
Write.
Definition: fvPatchField.C:364
Foam::UPstream::commsTypes::blocking
Foam::fvPatchField::internalField
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
Definition: fvPatchField.H:349
Foam::fvPatchField::snGrad
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Definition: fvPatchField.C:217
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:355
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
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:545
Foam::fvPatchField::operator/=
virtual void operator/=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:439
calculatedFvPatchField.H
Foam::fvPatchField::fixesValue
virtual bool fixesValue() const
Return true if this patch field fixes a value.
Definition: fvPatchField.H:318
Foam::fvPatchField::initEvaluate
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
Definition: fvPatchField.H:442
Foam::fvPatchField::calculatedType
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
Definition: calculatedFvPatchField.C:34
Foam::fvPatchField::updated
bool updated() const
Return true if the boundary condition has already been updated.
Definition: fvPatchField.H:373
Foam::fvPatchField::Patch
fvPatch Patch
Definition: fvPatchField.H:115
Foam::fvPatchField::manipulatedMatrix
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
Definition: fvPatchField.H:379
Foam::fvPatchField::operator-=
virtual void operator-=(const fvPatchField< Type > &)
Definition: fvPatchField.C:411
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:459
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:445
Foam::fvPatchField::coupled
virtual bool coupled() const
Return true if this patch field is coupled.
Definition: fvPatchField.H:331
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:470
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:325
Foam::fvPatchField::gradientInternalCoeffs
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:480
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:225
Foam::fvPatchField::evaluate
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
Definition: fvPatchField.C:333
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:303
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
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:346
fvPatchField.C
Foam::fvPatchField::updateCoeffs
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:313
Foam::fvPatchField::patchNeighbourField
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
Definition: fvPatchField.H:434
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:205
Foam::fvPatchField::gradientBoundaryCoeffs
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:500
Foam::fvPatchField::db
const objectRegistry & db() const
Return local objectRegistry.
Definition: fvPatchField.C:198
Foam::fvPatchField::patchType
const word & patchType() const
Optional patch type.
Definition: fvPatchField.H:361
Foam::fvPatchField::NewCalculatedType
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
Definition: calculatedFvPatchField.C:103
Foam::List< label >
Foam::UList< Type >
Foam::fvPatchField::clone
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Definition: fvPatchField.H:223
Foam::fvMatrix
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvPatchField.H:76
Foam::fvPatchField::patchType
word & patchType()
Optional patch type.
Definition: fvPatchField.H:367
Foam::fvPatchField::operator+=
virtual void operator+=(const fvPatchField< Type > &)
Definition: fvPatchField.C:400
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:343
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:422
Foam::fvPatchField::Calculated
calculatedFvPatchField< Type > Calculated
Definition: fvPatchField.H:116
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:320
Foam::fvPatchField::operator=
virtual void operator=(const UList< Type > &)
Definition: fvPatchField.C:379
Foam::fvPatchField::autoMap
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Definition: fvPatchField.C:240
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::fvPatchField::disallowGenericFvPatchField
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
Definition: fvPatchField.H:123