fvPatchField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2024 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::fvPatchField
26 
27 Description
28  Abstract base class with a fat-interface to all derived classes
29  covering all possible ways in which they might be used.
30 
31  The first level of derivation is to basic patchFields which cover
32  zero-gradient, fixed-gradient, fixed-value and mixed conditions.
33 
34  The next level of derivation covers all the specialised types with
35  specific evaluation procedures, particularly with respect to specific
36  fields.
37 
38 SourceFiles
39  fvPatchField.C
40  fvPatchFieldNew.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef fvPatchField_H
45 #define fvPatchField_H
46 
47 #include "fvPatch.H"
48 #include "DimensionedField.H"
49 #include "fvPatchFieldMapperFwd.H"
50 #include "fileNameList.H"
51 #include "fieldTypes.H"
52 
53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 
55 namespace Foam
56 {
57 
58 // Forward declaration of classes
59 
60 class objectRegistry;
61 class dictionary;
62 class fieldMapper;
63 class volMesh;
64 
65 
66 // Forward declaration of friend functions and operators
67 
68 template<class Type>
69 class fvPatchField;
70 
71 template<class Type>
72 class calculatedFvPatchField;
73 
74 template<class Type>
75 class fvMatrix;
76 
77 template<class Type>
79 
80 
81 /*---------------------------------------------------------------------------*\
82  Class fvPatchField Declaration
83 \*---------------------------------------------------------------------------*/
84 
85 template<class Type>
86 class fvPatchField
87 :
88  public Field<Type>
89 {
90  // Private Data
91 
92  //- Optional list of libraries required for this boundary condition
93  fileNameList libs_;
94 
95  //- Reference to patch
96  const fvPatch& patch_;
97 
98  //- Reference to internal field
99  const DimensionedField<Type, volMesh>& internalField_;
100 
101  //- Update index used so that updateCoeffs is called only once during
102  // the construction of the matrix
103  bool updated_;
104 
105  //- Update index used so that manipulateMatrix is called only once
106  // during the construction of the matrix
107  bool manipulatedMatrix_;
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 fieldMapper& 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 and internal field and patch field
176  (
177  const fvPatch&,
179  const Field<Type>&
180  );
181 
182  //- Construct from patch, internal field and dictionary
184  (
185  const fvPatch&,
187  const dictionary&,
188  const bool valueRequired=true
189  );
190 
191  //- Construct by mapping the given fvPatchField onto a new patch
193  (
194  const fvPatchField<Type>&,
195  const fvPatch&,
197  const fieldMapper&,
198  const bool mappingRequired=true
199  );
200 
201  //- Disallow copy without setting internal field reference
202  fvPatchField(const fvPatchField<Type>&) = delete;
203 
204  //- Disallow clone without setting internal field reference
206  {
208  return tmp<fvPatchField<Type>>(nullptr);
209  }
210 
211  //- Copy constructor setting internal field reference
213  (
214  const fvPatchField<Type>&,
216  );
217 
218  //- Construct and return a clone setting internal field reference
220  (
222  ) const
223  {
224  return tmp<fvPatchField<Type>>(new fvPatchField<Type>(*this, iF));
225  }
226 
227  //- Construct and return a clone onto a new patch
228  // setting internal field reference
230  (
231  const fvPatch& patch,
233  ) const
234  {
235  return tmp<fvPatchField<Type>>
236  (
237  new fvPatchField<Type>(patch, iF, *this)
238  );
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 fieldMapper&
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()
303  {}
304 
305 
306  // Member Functions
307 
308  // Attributes
309 
310  //- Return the type of the calculated for of fvPatchField
311  static const word& calculatedType();
312 
313  //- Return true if this patch field fixes a value.
314  // Needed to check if a level has to be specified while solving
315  // Poissons equations.
316  virtual bool fixesValue() const
317  {
318  return false;
319  }
320 
321  //- Return true if the value of the patch field
322  // is altered by assignment (the default)
323  virtual bool assignable() const
324  {
325  return true;
326  }
327 
328  //- Return true if this patch field is coupled
329  virtual bool coupled() const
330  {
331  return false;
332  }
333 
334  //- Return true if this overrides the underlying constraint type
335  bool overridesConstraint() const
336  {
337  if (type() == patch_.type())
338  {
339  return false;
340  }
341 
342  typename patchConstructorTable::iterator patchTypeCstrIter
343  = patchConstructorTablePtr_->find(patch_.type());
344 
345  return
346  patchTypeCstrIter
347  != patchConstructorTablePtr_->end();
348  }
349 
350 
351  // Access
352 
353  //- Return local objectRegistry
354  const objectRegistry& db() const;
355 
356  //- Return patch
357  const fvPatch& patch() const
358  {
359  return patch_;
360  }
361 
362  //- Return dimensioned internal field reference
364  {
365  return internalField_;
366  }
367 
368  //- Return internal field reference
369  const Field<Type>& primitiveField() const
370  {
371  return internalField_;
372  }
373 
374  //- Return true if the boundary condition has already been updated
375  bool updated() const
376  {
377  return updated_;
378  }
379 
380  //- Return true if the matrix has already been manipulated
381  bool manipulatedMatrix() const
382  {
383  return manipulatedMatrix_;
384  }
385 
386 
387  // Mapping functions
388 
389  //- Map the given fvPatchField onto this fvPatchField
390  virtual void map(const fvPatchField<Type>&, const fieldMapper&);
391 
392  //- Reset the fvPatchField to the given fvPatchField
393  // Used for mesh to mesh mapping
394  virtual void reset(const fvPatchField<Type>&);
395 
396 
397  // Evaluation functions
398 
399  //- Return patch-normal gradient
400  virtual tmp<Field<Type>> snGrad() const;
401 
402  //- Return patch-normal gradient for coupled-patches
403  // using the deltaCoeffs provided
404  virtual tmp<Field<Type>> snGrad
405  (
406  const scalarField& deltaCoeffs
407  ) const
408  {
410  return *this;
411  }
412 
413  //- Update the coefficients associated with the patch field
414  // Sets Updated to true
415  virtual void updateCoeffs();
416 
417  //- Return internal field next to patch as patch field
418  virtual tmp<Field<Type>> patchInternalField() const;
419 
420  //- Return internal field next to patch as patch field
421  virtual void patchInternalField(Field<Type>&) const;
422 
423  //- Initialise return of the patchField on the opposite patch of a
424  // coupled patch
425  virtual void initPatchNeighbourField
426  (
427  const Pstream::commsTypes commsType =
429  ) const
430  {}
431 
432  //- Return patchField on the opposite patch of a coupled patch
434  (
435  const Pstream::commsTypes commsType =
437  ) const
438  {
440  return *this;
441  }
442 
443  //- Initialise the evaluation of the patch field
444  virtual void initEvaluate
445  (
446  const Pstream::commsTypes commsType =
448  )
449  {}
450 
451  //- Evaluate the patch field, sets Updated to false
452  virtual void evaluate
453  (
454  const Pstream::commsTypes commsType =
456  );
457 
458 
459  //- Return the matrix diagonal coefficients corresponding to the
460  // evaluation of the value of this patchField with given weights
462  (
463  const tmp<Field<scalar>>&
464  ) const
465  {
467  return *this;
468  }
469 
470  //- Return the matrix source coefficients corresponding to the
471  // evaluation of the value of this patchField with given weights
473  (
474  const tmp<Field<scalar>>&
475  ) const
476  {
478  return *this;
479  }
480 
481  //- Return the matrix diagonal coefficients corresponding to the
482  // evaluation of the gradient of this patchField
483  virtual tmp<Field<Type>> gradientInternalCoeffs() const
484  {
486  return *this;
487  }
488 
489  //- Return the matrix diagonal coefficients corresponding to the
490  // evaluation of the gradient of this coupled patchField
491  // using the deltaCoeffs provided
493  (
494  const scalarField& deltaCoeffs
495  ) const
496  {
498  return *this;
499  }
500 
501  //- Return the matrix source coefficients corresponding to the
502  // evaluation of the gradient of this patchField
503  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const
504  {
506  return *this;
507  }
508 
509  //- Return the matrix source coefficients corresponding to the
510  // evaluation of the gradient of this coupled patchField
511  // using the deltaCoeffs provided
513  (
514  const scalarField& deltaCoeffs
515  ) const
516  {
518  return *this;
519  }
520 
521  //- Manipulate matrix
522  virtual void manipulateMatrix(fvMatrix<Type>& matrix);
523 
524 
525  // I-O
526 
527  //- Write
528  virtual void write(Ostream&) const;
529 
530 
531  // Check
532 
533  //- Check fvPatchField<Type> against given fvPatchField<Type>
534  void check(const fvPatchField<Type>&) const;
535 
536 
537  // Member Operators
538 
539  virtual void operator=(const UList<Type>&);
540 
541  virtual void operator=(const fvPatchField<Type>&);
542  virtual void operator+=(const fvPatchField<Type>&);
543  virtual void operator-=(const fvPatchField<Type>&);
544  virtual void operator*=(const fvPatchField<scalar>&);
545  virtual void operator/=(const fvPatchField<scalar>&);
546 
547  virtual void operator+=(const Field<Type>&);
548  virtual void operator-=(const Field<Type>&);
549 
550  virtual void operator*=(const Field<scalar>&);
551  virtual void operator/=(const Field<scalar>&);
552 
553  virtual void operator=(const Type&);
554  virtual void operator+=(const Type&);
555  virtual void operator-=(const Type&);
556  virtual void operator*=(const scalar);
557  virtual void operator/=(const scalar);
558 
559 
560  // Force an assignment irrespective of form of patch
561 
562  virtual void operator==(const fvPatchField<Type>&);
563  virtual void operator==(const Field<Type>&);
564  virtual void operator==(const Type&);
565 
566 
567  // Ostream operator
568 
569  friend Ostream& operator<< <Type>(Ostream&, const fvPatchField<Type>&);
570 };
571 
572 
573 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
574 
575 } // End namespace Foam
576 
577 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
578 
579 #ifdef NoRepository
580  #include "fvPatchField.C"
581  #include "calculatedFvPatchField.H"
582 #endif
583 
584 
585 #define makeFvPatchField(fvPatchTypeField) \
586  defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
587  template<> \
588  int fvPatchTypeField::disallowGenericFvPatchField \
589  ( \
590  debug::debugSwitch("disallowGenericFvPatchField", 0) \
591  ); \
592  defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
593  defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
594  defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
595 
596 
597 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
598  addToRunTimeSelectionTable \
599  ( \
600  PatchTypeField, \
601  typePatchTypeField, \
602  patchMapper \
603  ); \
604  addToRunTimeSelectionTable \
605  ( \
606  PatchTypeField, \
607  typePatchTypeField, \
608  dictionary \
609  );
610 
611 
612 #define addToNullConstructablePatchFieldRunTimeSelection( \
613  PatchTypeField, typePatchTypeField) \
614  \
615  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
616  \
617  addToRunTimeSelectionTable \
618  ( \
619  PatchTypeField, \
620  typePatchTypeField, \
621  patch \
622  );
623 
624 
625 // Use with caution
626 #define addRemovableToPatchFieldRunTimeSelection( \
627  PatchTypeField, typePatchTypeField) \
628  \
629  addRemovableToRunTimeSelectionTable \
630  ( \
631  PatchTypeField, \
632  typePatchTypeField, \
633  patchMapper \
634  ); \
635  addRemovableToRunTimeSelectionTable \
636  ( \
637  PatchTypeField, \
638  typePatchTypeField, \
639  dictionary \
640  );
641 
642 
643 // For non-templated patch fields
644 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
645  defineTypeNameAndDebug(typePatchTypeField, 0); \
646  addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
647 
648 
649 // For null-constructable non-templated patch fields
650 #define makeNullConstructablePatchTypeField(PatchTypeField, typePatchTypeField)\
651  defineTypeNameAndDebug(typePatchTypeField, 0); \
652  addToNullConstructablePatchFieldRunTimeSelection \
653  ( \
654  PatchTypeField, \
655  typePatchTypeField \
656  )
657 
658 
659 // For non-templated patch fields - use with caution
660 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
661  defineTypeNameAndDebug(typePatchTypeField, 0); \
662  addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
663 
664 
665 // For templated patch fields
666 #define makeTemplatePatchTypeField(fieldType, type) \
667  defineNamedTemplateTypeNameAndDebug \
668  ( \
669  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
670  0 \
671  ); \
672  addToPatchFieldRunTimeSelection \
673  ( \
674  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
675  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
676  )
677 
678 
679 // For null-constructable templated patch fields
680 #define makeNullConstructableTemplatePatchTypeField(fieldType, type) \
681  defineNamedTemplateTypeNameAndDebug \
682  ( \
683  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
684  0 \
685  ); \
686  addToNullConstructablePatchFieldRunTimeSelection \
687  ( \
688  CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
689  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
690  )
691 
692 
693 #define makePatchFields(type) \
694  FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
695 
696 
697 #define makeNullConstructablePatchFields(type) \
698  FOR_ALL_FIELD_TYPES(makeNullConstructableTemplatePatchTypeField, type)
699 
700 
701 #define makePatchFieldTypeName(fieldType, type) \
702  defineNamedTemplateTypeNameAndDebug \
703  ( \
704  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
705  0 \
706  );
707 
708 
709 #define makePatchFieldTypeNames(type) \
710  FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
711 
712 
713 #define makePatchTypeFieldTypedef(fieldType, type) \
714  typedef type##FvPatchField<fieldType> \
715  CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
716 
717 
718 #define makePatchTypeFieldTypedefs(type) \
719  FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type)
720 
721 
722 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
723 
724 #endif
725 
726 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Pre-declare SubField and related Field type.
Definition: Field.H:83
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
commsTypes
Types of communications.
Definition: UPstream.H:65
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
A list of keyword definitions, which are a keyword followed by any number of values (e....
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:88
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:425
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
Definition: fvPatchField.H:444
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
Definition: fvPatchField.H:380
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:502
virtual bool fixesValue() const
Return true if this patch field fixes a value.
Definition: fvPatchField.H:315
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
Definition: fvPatchField.H:362
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
Definition: fvPatchField.C:209
virtual void write(Ostream &) const
Write.
Definition: fvPatchField.C:229
virtual void operator==(const fvPatchField< Type > &)
Definition: fvPatchField.C:415
virtual bool coupled() const
Return true if this patch field is coupled.
Definition: fvPatchField.H:328
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
Definition: fvPatchField.C:170
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Definition: fvPatchField.H:472
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Definition: fvPatchField.C:162
virtual void operator-=(const fvPatchField< Type > &)
Definition: fvPatchField.C:281
const Field< Type > & primitiveField() const
Return internal field reference.
Definition: fvPatchField.H:368
const objectRegistry & db() const
Return local objectRegistry.
Definition: fvPatchField.C:143
virtual void operator=(const UList< Type > &)
Definition: fvPatchField.C:249
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: fvPatchField.C:202
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:433
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
Definition: fvPatchField.C:195
TypeName("fvPatchField")
Runtime type information.
calculatedFvPatchField< Type > Calculated
Definition: fvPatchField.H:112
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
Definition: fvPatchField.C:222
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual void operator*=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:292
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
Definition: fvPatchField.H:119
virtual void operator+=(const fvPatchField< Type > &)
Definition: fvPatchField.C:270
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:482
bool overridesConstraint() const
Return true if this overrides the underlying constraint type.
Definition: fvPatchField.H:334
const fvPatch & patch() const
Return patch.
Definition: fvPatchField.H:356
virtual bool assignable() const
Return true if the value of the patch field.
Definition: fvPatchField.H:322
virtual void operator/=(const fvPatchField< scalar > &)
Definition: fvPatchField.C:309
bool updated() const
Return true if the boundary condition has already been updated.
Definition: fvPatchField.H:374
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
Definition: fvPatchField.H:461
virtual ~fvPatchField()
Destructor.
Definition: fvPatchField.H:301
virtual void map(const fvPatchField< Type > &, const fieldMapper &)
Map the given fvPatchField onto this fvPatchField.
Definition: fvPatchField.C:185
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
Definition: fvPatchField.C:150
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Definition: fvPatchField.C:36
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:204
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
Registry of regIOobjects.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:381
Include the header files for all the primitive types that Fields are instantiated for.
Namespace for OpenFOAM.
Ostream & operator<<(Ostream &os, const fvConstraints &constraints)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Definition: POSIX.C:488
dictionary dict
volScalarField & p