Go to the documentation of this file.
44 #ifndef fvPatchField_H
45 #define fvPatchField_H
59 class fvPatchFieldMapper;
143 (
dynamic_cast<const fvPatchFieldType&
>(ptf),
p, iF, m)
191 const bool valueRequired=
false
248 const word& actualPatchType,
281 template<
class Type2>
510 template<
class EntryType>
514 const word& entryName,
515 const EntryType& value1,
516 const EntryType& value2
574 #define makeFvPatchField(fvPatchTypeField) \
576 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
578 int fvPatchTypeField::disallowGenericFvPatchField \
580 debug::debugSwitch("disallowGenericFvPatchField", 0) \
582 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
583 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
584 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
587 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
588 addToRunTimeSelectionTable \
591 typePatchTypeField, \
594 addToRunTimeSelectionTable \
597 typePatchTypeField, \
600 addToRunTimeSelectionTable \
603 typePatchTypeField, \
609 #define addRemovableToPatchFieldRunTimeSelection\
610 (PatchTypeField, typePatchTypeField) \
612 addRemovableToRunTimeSelectionTable \
615 typePatchTypeField, \
618 addRemovableToRunTimeSelectionTable \
621 typePatchTypeField, \
624 addRemovableToRunTimeSelectionTable \
627 typePatchTypeField, \
633 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
634 defineTypeNameAndDebug(typePatchTypeField, 0); \
635 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
638 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
639 defineTypeNameAndDebug(typePatchTypeField, 0); \
640 addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
644 #define makeTemplatePatchTypeField(PatchTypeField, typePatchTypeField) \
645 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
646 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
649 #define makePatchFields(type) \
650 makeTemplatePatchTypeField \
652 fvPatchScalarField, \
653 type##FvPatchScalarField \
655 makeTemplatePatchTypeField \
657 fvPatchVectorField, \
658 type##FvPatchVectorField \
660 makeTemplatePatchTypeField \
662 fvPatchSphericalTensorField, \
663 type##FvPatchSphericalTensorField \
665 makeTemplatePatchTypeField \
667 fvPatchSymmTensorField, \
668 type##FvPatchSymmTensorField \
670 makeTemplatePatchTypeField \
672 fvPatchTensorField, \
673 type##FvPatchTensorField \
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)
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;
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void write(Ostream &) const
Write.
virtual void operator=(const UList< Type > &)
virtual void operator==(const fvPatchField< Type > &)
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::blocking)
Evaluate the patch field, sets Updated to false.
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
virtual void operator*=(const fvPatchField< scalar > &)
const DimensionedField< Type, volMesh > & internalField_
Reference to internal field.
A class for handling words, derived from string.
bool updated_
Update index used so that updateCoeffs is called only once during.
virtual void operator/=(const fvPatchField< scalar > &)
A class for managing temporary objects.
const DimensionedField< Type, volMesh > & dimensionedInternalField() const
Return dimensioned internal field reference.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::blocking)
Initialise the evaluation of the patch field.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
bool updated() const
Return true if the boundary condition has already been updated.
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
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.
Registry of regIOobjects.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
virtual bool coupled() const
Return true if this patch field is coupled.
word patchType_
Optional patch type, used to allow specified boundary conditions.
bool manipulatedMatrix_
Update index used so that manipulateMatrix is called only once.
TypeName("fvPatchField")
Runtime type information.
Pre-declare SubField and related Field type.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
Ostream & operator<<(Ostream &, const edgeMesh &)
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar > > &) const
Return the matrix diagonal coefficients corresponding to the.
A list of keyword definitions, which are a keyword followed by any number of values (e....
const fvPatch & patch_
Reference to patch.
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
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 updateCoeffs()
Update the coefficients associated with the patch field.
virtual void operator+=(const fvPatchField< Type > &)
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
commsTypes
Types of communications.
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
const objectRegistry & db() const
Return local objectRegistry.
const word & patchType() const
Optional patch type.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
word & patchType()
Optional patch type.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar > > &) const
Return the matrix source coefficients corresponding to the.
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Foam::fvPatchFieldMapper.
const fvPatch & patch() const
Return patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual void operator-=(const fvPatchField< Type > &)
const Field< Type > & internalField() const
Return internal field reference.
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.