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 | Copyright (C) 2011-2015 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 proceedures, 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 
50 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 
52 namespace Foam
53 {
54 
55 // Forward declaration of classes
56 
57 class objectRegistry;
58 class dictionary;
59 class fvPatchFieldMapper;
60 class volMesh;
61 
62 
63 // Forward declaration of friend functions and operators
64 
65 template<class Type>
66 class fvPatchField;
67 
68 template<class Type>
69 class fvMatrix;
70 
71 template<class Type>
73 
74 
75 /*---------------------------------------------------------------------------*\
76  Class fvPatchField Declaration
77 \*---------------------------------------------------------------------------*/
78 
79 template<class Type>
80 class fvPatchField
81 :
82  public Field<Type>
83 {
84  // Private data
85 
86  //- Reference to patch
87  const fvPatch& patch_;
88 
89  //- Reference to internal field
91 
92  //- Update index used so that updateCoeffs is called only once during
93  // the construction of the matrix
94  bool updated_;
95 
96  //- Update index used so that manipulateMatrix is called only once
97  // during the construction of the matrix
98  bool manipulatedMatrix_;
99 
100  //- Optional patch type, used to allow specified boundary conditions
101  // to be applied to constraint patches by providing the constraint
102  // patch type as 'patchType'
104 
105 
106 public:
107 
108  typedef fvPatch Patch;
109 
110 
111  //- Runtime type information
112  TypeName("fvPatchField");
113 
114  //- Debug switch to disallow the use of genericFvPatchField
115  static int disallowGenericFvPatchField;
116 
117 
118  // Declare run-time constructor selection tables
119 
121  (
122  tmp,
123  fvPatchField,
124  patch,
125  (
126  const fvPatch& p,
128  ),
129  (p, iF)
130  );
131 
133  (
134  tmp,
135  fvPatchField,
136  patchMapper,
137  (
138  const fvPatchField<Type>& ptf,
139  const fvPatch& p,
141  const fvPatchFieldMapper& m
142  ),
143  (dynamic_cast<const fvPatchFieldType&>(ptf), p, iF, m)
144  );
145 
147  (
148  tmp,
149  fvPatchField,
150  dictionary,
151  (
152  const fvPatch& p,
154  const dictionary& dict
155  ),
156  (p, iF, dict)
157  );
158 
159 
160  // Constructors
161 
162  //- Construct from patch and internal field
164  (
165  const fvPatch&,
167  );
168 
169  //- Construct from patch and internal field and patch type
171  (
172  const fvPatch&,
174  const word& patchType
175  );
176 
177  //- Construct from patch and internal field and patch field
179  (
180  const fvPatch&,
182  const Field<Type>&
183  );
184 
185  //- Construct from patch, internal field and dictionary
187  (
188  const fvPatch&,
190  const dictionary&,
191  const bool valueRequired=false
192  );
193 
194  //- Construct by mapping the given fvPatchField onto a new patch
196  (
197  const fvPatchField<Type>&,
198  const fvPatch&,
200  const fvPatchFieldMapper&
201  );
202 
203  //- Construct as copy
205 
206  //- Construct and return a clone
207  virtual tmp<fvPatchField<Type> > clone() const
208  {
209  return tmp<fvPatchField<Type> >(new fvPatchField<Type>(*this));
210  }
211 
212  //- Construct as copy setting internal field reference
214  (
215  const fvPatchField<Type>&,
217  );
218 
219  //- Construct and return a clone setting internal field reference
221  (
223  ) const
224  {
225  return tmp<fvPatchField<Type> >(new fvPatchField<Type>(*this, iF));
226  }
227 
228 
229  // Selectors
230 
231  //- Return a pointer to a new patchField created on freestore given
232  // patch and internal field
233  // (does not set the patch field values)
234  static tmp<fvPatchField<Type> > New
235  (
236  const word&,
237  const fvPatch&,
239  );
240 
241  //- Return a pointer to a new patchField created on freestore given
242  // patch and internal field
243  // (does not set the patch field values).
244  // Allows override of constraint type
245  static tmp<fvPatchField<Type> > New
246  (
247  const word&,
248  const word& actualPatchType,
249  const fvPatch&,
251  );
252 
253  //- Return a pointer to a new patchField created on freestore from
254  // a given fvPatchField mapped onto a new patch
255  static tmp<fvPatchField<Type> > New
256  (
257  const fvPatchField<Type>&,
258  const fvPatch&,
260  const fvPatchFieldMapper&
261  );
262 
263  //- Return a pointer to a new patchField created on freestore
264  // from dictionary
265  static tmp<fvPatchField<Type> > New
266  (
267  const fvPatch&,
269  const dictionary&
270  );
271 
272  //- Return a pointer to a new calculatedFvPatchField created on
273  // freestore without setting patchField values
275  (
276  const fvPatch&
277  );
278 
279  //- Return a pointer to a new calculatedFvPatchField created on
280  // freestore without setting patchField values
281  template<class Type2>
283  (
284  const fvPatchField<Type2>&
285  );
286 
287 
288  //- Destructor
289  virtual ~fvPatchField<Type>()
290  {}
291 
292 
293  // Member functions
294 
295  // Access
296 
297  //- Return local objectRegistry
298  const objectRegistry& db() const;
299 
300  //- Return patch
301  const fvPatch& patch() const
302  {
303  return patch_;
304  }
305 
306  //- Return dimensioned internal field reference
309  {
310  return internalField_;
311  }
312 
313  //- Return internal field reference
314  const Field<Type>& internalField() const
315  {
316  return internalField_;
317  }
318 
319  //- Optional patch type
320  const word& patchType() const
321  {
322  return patchType_;
323  }
324 
325  //- Optional patch type
326  word& patchType()
327  {
328  return patchType_;
329  }
330 
331  //- Return the type of the calculated for of fvPatchField
332  static const word& calculatedType();
333 
334  //- Return true if this patch field fixes a value.
335  // Needed to check if a level has to be specified while solving
336  // Poissons equations.
337  virtual bool fixesValue() const
338  {
339  return false;
340  }
341 
342  //- Return true if this patch field is coupled
343  virtual bool coupled() const
344  {
345  return false;
346  }
347 
348  //- Return true if the boundary condition has already been updated
349  bool updated() const
350  {
351  return updated_;
352  }
353 
354  //- Return true if the matrix has already been manipulated
355  bool manipulatedMatrix() const
356  {
357  return manipulatedMatrix_;
358  }
359 
360 
361  // Mapping functions
362 
363  //- Map (and resize as needed) from self given a mapping object
364  virtual void autoMap
365  (
366  const fvPatchFieldMapper&
367  );
368 
369  //- Reverse map the given fvPatchField onto this fvPatchField
370  virtual void rmap
371  (
372  const fvPatchField<Type>&,
373  const labelList&
374  );
375 
376 
377  // Evaluation functions
378 
379  //- Return patch-normal gradient
380  virtual tmp<Field<Type> > snGrad() const;
381 
382  //- Return patch-normal gradient for coupled-patches
383  // using the deltaCoeffs provided
385  (
386  const scalarField& deltaCoeffs
387  ) const
388  {
390  return *this;
391  }
392 
393  //- Update the coefficients associated with the patch field
394  // Sets Updated to true
395  virtual void updateCoeffs();
396 
397  //- Update the coefficients associated with the patch field
398  // and apply weight field
399  // Sets Updated to true
400  virtual void updateCoeffs(const scalarField& weights);
401 
402  //- Return internal field next to patch as patch field
403  virtual tmp<Field<Type> > patchInternalField() const;
404 
405  //- Return internal field next to patch as patch field
406  virtual void patchInternalField(Field<Type>&) const;
407 
408  //- Return patchField on the opposite patch of a coupled patch
409  virtual tmp<Field<Type> > patchNeighbourField() const
410  {
412  return *this;
413  }
414 
415  //- Initialise the evaluation of the patch field
416  virtual void initEvaluate
417  (
418  const Pstream::commsTypes commsType=Pstream::blocking
419  )
420  {}
421 
422  //- Evaluate the patch field, sets Updated to false
423  virtual void evaluate
424  (
425  const Pstream::commsTypes commsType=Pstream::blocking
426  );
427 
428 
429  //- Return the matrix diagonal coefficients corresponding to the
430  // evaluation of the value of this patchField with given weights
432  (
433  const tmp<Field<scalar> >&
434  ) const
435  {
437  return *this;
438  }
439 
440  //- Return the matrix source coefficients corresponding to the
441  // evaluation of the value of this patchField with given weights
443  (
444  const tmp<Field<scalar> >&
445  ) const
446  {
448  return *this;
449  }
450 
451  //- Return the matrix diagonal coefficients corresponding to the
452  // evaluation of the gradient of this patchField
453  virtual tmp<Field<Type> > gradientInternalCoeffs() const
454  {
456  return *this;
457  }
458 
459  //- Return the matrix diagonal coefficients corresponding to the
460  // evaluation of the gradient of this coupled patchField
461  // using the deltaCoeffs provided
463  (
464  const scalarField& deltaCoeffs
465  ) const
466  {
468  return *this;
469  }
470 
471  //- Return the matrix source coefficients corresponding to the
472  // evaluation of the gradient of this patchField
473  virtual tmp<Field<Type> > gradientBoundaryCoeffs() const
474  {
476  return *this;
477  }
478 
479  //- Return the matrix source coefficients corresponding to the
480  // evaluation of the gradient of this coupled patchField
481  // using the deltaCoeffs provided
483  (
484  const scalarField& deltaCoeffs
485  ) const
486  {
488  return *this;
489  }
490 
491 
492  //- Manipulate matrix
493  virtual void manipulateMatrix(fvMatrix<Type>& matrix);
494 
495  //- Manipulate matrix with given weights
496  virtual void manipulateMatrix
497  (
498  fvMatrix<Type>& matrix,
499  const scalarField& weights
500  );
501 
502 
503  // I-O
504 
505  //- Write
506  virtual void write(Ostream&) const;
507 
508  //- Helper function to write the keyword and entry only if the
509  // values are not equal. The value is then output as value2
510  template<class EntryType>
512  (
513  Ostream& os,
514  const word& entryName,
515  const EntryType& value1,
516  const EntryType& value2
517  ) const;
518 
519 
520  // Check
521 
522  //- Check fvPatchField<Type> against given fvPatchField<Type>
523  void check(const fvPatchField<Type>&) const;
524 
525 
526  // Member operators
527 
528  virtual void operator=(const UList<Type>&);
529 
530  virtual void operator=(const fvPatchField<Type>&);
531  virtual void operator+=(const fvPatchField<Type>&);
532  virtual void operator-=(const fvPatchField<Type>&);
533  virtual void operator*=(const fvPatchField<scalar>&);
534  virtual void operator/=(const fvPatchField<scalar>&);
535 
536  virtual void operator+=(const Field<Type>&);
537  virtual void operator-=(const Field<Type>&);
538 
539  virtual void operator*=(const Field<scalar>&);
540  virtual void operator/=(const Field<scalar>&);
541 
542  virtual void operator=(const Type&);
543  virtual void operator+=(const Type&);
544  virtual void operator-=(const Type&);
545  virtual void operator*=(const scalar);
546  virtual void operator/=(const scalar);
547 
548 
549  // Force an assignment irrespective of form of patch
550 
551  virtual void operator==(const fvPatchField<Type>&);
552  virtual void operator==(const Field<Type>&);
553  virtual void operator==(const Type&);
554 
555 
556  // Ostream operator
557 
558  friend Ostream& operator<< <Type>(Ostream&, const fvPatchField<Type>&);
559 };
560 
561 
562 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
563 
564 } // End namespace Foam
565 
566 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
567 
568 #ifdef NoRepository
569 # include "fvPatchField.C"
570 # include "calculatedFvPatchField.H"
571 #endif
572 
573 
574 #define makeFvPatchField(fvPatchTypeField) \
575  \
576 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
577 template<> \
578 int fvPatchTypeField::disallowGenericFvPatchField \
579 ( \
580  debug::debugSwitch("disallowGenericFvPatchField", 0) \
581 ); \
582 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
583 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
584 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
585 
586 
587 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
588  addToRunTimeSelectionTable \
589  ( \
590  PatchTypeField, \
591  typePatchTypeField, \
592  patch \
593  ); \
594  addToRunTimeSelectionTable \
595  ( \
596  PatchTypeField, \
597  typePatchTypeField, \
598  patchMapper \
599  ); \
600  addToRunTimeSelectionTable \
601  ( \
602  PatchTypeField, \
603  typePatchTypeField, \
604  dictionary \
605  );
606 
607 
608 // use with caution
609 #define addRemovableToPatchFieldRunTimeSelection\
610 (PatchTypeField, typePatchTypeField) \
611  \
612  addRemovableToRunTimeSelectionTable \
613  ( \
614  PatchTypeField, \
615  typePatchTypeField, \
616  patch \
617  ); \
618  addRemovableToRunTimeSelectionTable \
619  ( \
620  PatchTypeField, \
621  typePatchTypeField, \
622  patchMapper \
623  ); \
624  addRemovableToRunTimeSelectionTable \
625  ( \
626  PatchTypeField, \
627  typePatchTypeField, \
628  dictionary \
629  );
630 
631 
632 // for non-templated patch fields
633 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
634  defineTypeNameAndDebug(typePatchTypeField, 0); \
635  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
636 
637 // for non-templated patch fields - use with caution
638 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
639  defineTypeNameAndDebug(typePatchTypeField, 0); \
640  addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
641 
642 
643 // for templated patch fields
644 #define makeTemplatePatchTypeField(PatchTypeField, typePatchTypeField) \
645  defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
646  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
647 
648 
649 #define makePatchFields(type) \
650  makeTemplatePatchTypeField \
651  ( \
652  fvPatchScalarField, \
653  type##FvPatchScalarField \
654  ); \
655  makeTemplatePatchTypeField \
656  ( \
657  fvPatchVectorField, \
658  type##FvPatchVectorField \
659  ); \
660  makeTemplatePatchTypeField \
661  ( \
662  fvPatchSphericalTensorField, \
663  type##FvPatchSphericalTensorField \
664  ); \
665  makeTemplatePatchTypeField \
666  ( \
667  fvPatchSymmTensorField, \
668  type##FvPatchSymmTensorField \
669  ); \
670  makeTemplatePatchTypeField \
671  ( \
672  fvPatchTensorField, \
673  type##FvPatchTensorField \
674  );
675 
676 
677 #define makePatchFieldsTypeName(type) \
678  defineNamedTemplateTypeNameAndDebug(type##FvPatchScalarField, 0); \
679  defineNamedTemplateTypeNameAndDebug(type##FvPatchVectorField, 0); \
680  defineNamedTemplateTypeNameAndDebug(type##FvPatchSphericalTensorField, 0);\
681  defineNamedTemplateTypeNameAndDebug(type##FvPatchSymmTensorField, 0); \
682  defineNamedTemplateTypeNameAndDebug(type##FvPatchTensorField, 0)
683 
684 
685 #define makePatchTypeFieldTypedefs(type) \
686  typedef type##FvPatchField<scalar> type##FvPatchScalarField; \
687  typedef type##FvPatchField<vector> type##FvPatchVectorField; \
688  typedef type##FvPatchField<sphericalTensor> \
689  type##FvPatchSphericalTensorField; \
690  typedef type##FvPatchField<symmTensor> type##FvPatchSymmTensorField; \
691  typedef type##FvPatchField<tensor> type##FvPatchTensorField;
692 
693 
694 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
695 
696 #endif
697 
698 // ************************************************************************* //
Foam::fvPatchField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:65
Foam::fvPatchField::write
virtual void write(Ostream &) const
Write.
Definition: fvPatchField.C:349
Foam::fvPatchField::operator=
virtual void operator=(const UList< Type > &)
Foam::fvPatchField::operator==
virtual void operator==(const fvPatchField< Type > &)
Foam::fvPatchField::snGrad
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Definition: fvPatchField.C:200
Foam::fvPatchField::evaluate
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::blocking)
Evaluate the patch field, sets Updated to false.
Definition: fvPatchField.C:318
Foam::fvPatchField::declareRunTimeSelectionTable
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
Foam::fvPatchField::operator*=
virtual void operator*=(const fvPatchField< scalar > &)
Foam::fvPatchField::internalField_
const DimensionedField< Type, volMesh > & internalField_
Reference to internal field.
Definition: fvPatchField.H:89
p
p
Definition: pEqn.H:62
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::fvPatchField::updated_
bool updated_
Update index used so that updateCoeffs is called only once during.
Definition: fvPatchField.H:93
Foam::fvPatchField::operator/=
virtual void operator/=(const fvPatchField< scalar > &)
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:118
DimensionedField.H
Foam::fvPatchField::dimensionedInternalField
const DimensionedField< Type, volMesh > & dimensionedInternalField() const
Return dimensioned internal field reference.
Definition: fvPatchField.H:307
Foam::fvPatchField::initEvaluate
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::blocking)
Initialise the evaluation of the patch field.
Definition: fvPatchField.H:416
calculatedFvPatchField.H
Foam::fvPatchField::fixesValue
virtual bool fixesValue() const
Return true if this patch field fixes a value.
Definition: fvPatchField.H:336
Foam::fvPatchField::calculatedType
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
Definition: calculatedFvPatchField.C:32
Foam::fvPatchField::updated
bool updated() const
Return true if the boundary condition has already been updated.
Definition: fvPatchField.H:348
Foam::fvPatchField::Patch
fvPatch Patch
Definition: fvPatchField.H:107
Foam::fvPatchField::manipulatedMatrix
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
Definition: fvPatchField.H:354
Foam::fvPatchField::writeEntryIfDifferent
void writeEntryIfDifferent(Ostream &os, const word &entryName, const EntryType &value1, const EntryType &value2) const
Helper function to write the keyword and entry only if the.
Definition: fvPatchField.C:364
Foam::objectRegistry
Registry of regIOobjects.
Definition: objectRegistry.H:50
Foam::UPstream::blocking
@ blocking
Definition: UPstream.H:66
NotImplemented
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:365
Foam::fvPatchField::coupled
virtual bool coupled() const
Return true if this patch field is coupled.
Definition: fvPatchField.H:342
Foam::fvPatchField::patchType_
word patchType_
Optional patch type, used to allow specified boundary conditions.
Definition: fvPatchField.H:102
Foam::fvPatchField::manipulatedMatrix_
bool manipulatedMatrix_
Update index used so that manipulateMatrix is called only once.
Definition: fvPatchField.H:97
Foam::fvPatchField::TypeName
TypeName("fvPatchField")
Runtime type information.
Foam::Field
Pre-declare SubField and related Field type.
Definition: Field.H:57
Foam::fvPatchField::gradientInternalCoeffs
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:452
Foam::fvPatchField::NewCalculatedType
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
Foam::fvPatchField::patchInternalField
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
Definition: fvPatchField.C:208
Foam::operator<<
Ostream & operator<<(Ostream &, const edgeMesh &)
Definition: edgeMeshIO.C:130
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:286
Foam::fvPatchField::valueInternalCoeffs
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar > > &) const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:431
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::fvPatchField::patch_
const fvPatch & patch_
Reference to patch.
Definition: fvPatchField.H:86
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::fvPatchField::manipulateMatrix
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
Definition: fvPatchField.C:331
fvPatchField.C
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.
Foam::fvPatchField::updateCoeffs
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:296
Foam::fvPatchField::operator+=
virtual void operator+=(const fvPatchField< Type > &)
Foam::fvPatchField::patchNeighbourField
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
Definition: fvPatchField.H:408
Foam::UPstream::commsTypes
commsTypes
Types of communications.
Definition: UPstream.H:64
Foam::fvPatchField::check
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
Definition: fvPatchField.C:188
Foam::fvPatchField::gradientBoundaryCoeffs
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:472
Foam::fvPatchField::db
const objectRegistry & db() const
Return local objectRegistry.
Definition: fvPatchField.C:181
Foam::fvPatchField::patchType
const word & patchType() const
Optional patch type.
Definition: fvPatchField.H:319
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::UList< Type >
Foam::fvPatchField::clone
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Definition: fvPatchField.H:206
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:325
Foam::fvPatchField::valueBoundaryCoeffs
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar > > &) const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:442
Foam::fvPatchField::fvPatchField
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Foam::fvPatchFieldMapper
Foam::fvPatchFieldMapper.
Definition: fvPatchFieldMapper.H:45
fvPatch.H
Foam::fvPatchField::patch
const fvPatch & patch() const
Return patch.
Definition: fvPatchField.H:300
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:53
Foam::fvPatchField::operator-=
virtual void operator-=(const fvPatchField< Type > &)
Foam::fvPatchField::internalField
const Field< Type > & internalField() const
Return internal field reference.
Definition: fvPatchField.H:313
Foam::fvPatchField::autoMap
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Definition: fvPatchField.C:223
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:51
Foam::fvPatchField::disallowGenericFvPatchField
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
Definition: fvPatchField.H:114