Go to the documentation of this file.
47 #ifndef fvPatchField_H
48 #define fvPatchField_H
64 class fvPatchFieldMapper;
67 template<
class Type>
class fvPatchField;
99 bool manipulatedMatrix_;
148 (
dynamic_cast<const fvPatchFieldType&
>(ptf),
p, iF, m)
204 const bool valueRequired=
true
261 const word& actualPatchType,
294 template<
class Type2>
319 bool old(useImplicit_);
366 return internalField_;
372 return internalField_;
396 return manipulatedMatrix_;
613 #define makeFvPatchField(fvPatchTypeField) \
615 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
617 int fvPatchTypeField::disallowGenericFvPatchField \
619 debug::debugSwitch("disallowGenericFvPatchField", 0) \
621 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
622 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
623 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
626 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
627 addToRunTimeSelectionTable \
630 typePatchTypeField, \
633 addToRunTimeSelectionTable \
636 typePatchTypeField, \
639 addToRunTimeSelectionTable \
642 typePatchTypeField, \
648 #define addRemovableToPatchFieldRunTimeSelection\
649 (PatchTypeField, typePatchTypeField) \
651 addRemovableToRunTimeSelectionTable \
654 typePatchTypeField, \
657 addRemovableToRunTimeSelectionTable \
660 typePatchTypeField, \
663 addRemovableToRunTimeSelectionTable \
666 typePatchTypeField, \
672 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
673 defineTypeNameAndDebug(typePatchTypeField, 0); \
674 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
677 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
678 defineTypeNameAndDebug(typePatchTypeField, 0); \
679 addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
682 #define makeTemplatePatchTypeField(fieldType, type) \
683 defineNamedTemplateTypeNameAndDebug \
685 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
688 addToPatchFieldRunTimeSelection \
690 CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
691 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
694 #define makePatchFields(type) \
695 FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
697 #define makePatchFieldTypeName(fieldType, type) \
698 defineNamedTemplateTypeNameAndDebug \
700 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
704 #define makePatchFieldTypeNames(type) \
705 FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
707 #define makePatchTypeFieldTypedef(fieldType, type) \
708 typedef type##FvPatchField<fieldType> \
709 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
711 #define makePatchTypeFieldTypedefs(type) \
712 FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type)
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void write(Ostream &) const
Write.
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
const Field< Type > & primitiveField() const
Return internal field reference.
A class for handling words, derived from Foam::string.
A class for managing temporary objects.
virtual void operator==(const fvPatchField< Type > &)
bool useImplicit() const noexcept
Use implicit formulation for coupled patches only.
virtual void operator/=(const fvPatchField< scalar > &)
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
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.
virtual void operator-=(const fvPatchField< Type > &)
Registry of regIOobjects.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
virtual bool coupled() const
Return true if this patch field is coupled.
TypeName("fvPatchField")
Runtime type information.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Generic templated field type.
virtual bool assignable() const
Return true if the value of the patch field.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
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.
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
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 void operator+=(const fvPatchField< Type > &)
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< scalar > &)
calculatedFvPatchField< Type > Calculated
Header files for all the primitive types that Fields are instantiated for.
virtual void updateWeightedCoeffs(const scalarField &weights)
Update the coefficients associated with the patch field.
virtual void operator=(const UList< Type > &)
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.