Go to the documentation of this file.
48 #ifndef faPatchField_H
49 #define faPatchField_H
63 class faPatchFieldMapper;
70 class calculatedFaPatchField;
73 Ostream&
operator<<(Ostream&,
const faPatchField<Type>&);
87 const faPatch& patch_;
90 const DimensionedField<Type, areaMesh>& internalField_;
140 (
dynamic_cast<const faPatchFieldType&
>(ptf),
p, iF, m)
224 const word& patchFieldType,
225 const word& actualPatchType,
235 const word& patchFieldType,
261 template<
class Type2>
288 return internalField_;
294 return internalField_;
485 #define addToFaPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
487 addToRunTimeSelectionTable \
489 PatchTypeField, typePatchTypeField, patch \
492 addToRunTimeSelectionTable \
495 typePatchTypeField, \
499 addToRunTimeSelectionTable \
501 PatchTypeField, typePatchTypeField, dictionary \
505 #define makeFaPatchTypeFieldTypeName(typePatchTypeField) \
507 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0);
510 #define makeFaPatchFieldsTypeName(typePatchField) \
512 makeFaPatchTypeFieldTypeName(typePatchField##FaPatchScalarField); \
513 makeFaPatchTypeFieldTypeName(typePatchField##FaPatchVectorField); \
514 makeFaPatchTypeFieldTypeName(typePatchField##FaPatchSphericalTensorField); \
515 makeFaPatchTypeFieldTypeName(typePatchField##FaPatchSymmTensorField); \
516 makeFaPatchTypeFieldTypeName(typePatchField##FaPatchTensorField);
519 #define makeFaPatchTypeField(PatchTypeField, typePatchTypeField) \
521 defineTypeNameAndDebug(typePatchTypeField, 0); \
523 addToFaPatchFieldRunTimeSelection \
525 PatchTypeField, typePatchTypeField \
528 #define makeTemplateFaPatchTypeField(PatchTypeField, typePatchTypeField) \
530 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
532 addToFaPatchFieldRunTimeSelection \
534 PatchTypeField, typePatchTypeField \
538 #define makeFaPatchFields(type) \
540 makeTemplateFaPatchTypeField(faPatchScalarField, type##FaPatchScalarField); \
541 makeTemplateFaPatchTypeField(faPatchVectorField, type##FaPatchVectorField); \
542 makeTemplateFaPatchTypeField \
544 faPatchSphericalTensorField, \
545 type##FaPatchSphericalTensorField \
547 makeTemplateFaPatchTypeField \
549 faPatchSymmTensorField, \
550 type##FaPatchSymmTensorField \
552 makeTemplateFaPatchTypeField \
554 faPatchTensorField, \
555 type##FaPatchTensorField \
559 #define makeFaPatchTypeFieldTypedefs(type) \
561 typedef type##FaPatchField<scalar> type##FaPatchScalarField; \
562 typedef type##FaPatchField<vector> type##FaPatchVectorField; \
563 typedef type##FaPatchField<sphericalTensor> \
564 type##FaPatchSphericalTensorField; \
565 typedef type##FaPatchField<symmTensor> type##FaPatchSymmTensorField; \
566 typedef type##FaPatchField<tensor> type##FaPatchTensorField;
virtual tmp< faPatchField< Type > > clone() const
Construct and return a clone.
faPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
virtual void operator*=(const faPatchField< scalar > &)
const DimensionedField< Type, areaMesh > & internalField() const
Return dimensioned internal field reference.
faPatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cover...
virtual void write(Ostream &) const
Write.
const Field< Type > & primitiveField() const
Return internal field reference.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
A class for handling words, derived from Foam::string.
static tmp< faPatchField< Type > > NewCalculatedType(const faPatchField< Type2 > &)
A class for managing temporary objects.
void check(const faPatchField< Type > &) const
Check faPatchField<Type> against given faPatchField<Type>
calculatedFaPatchField< Type > Calculated
static tmp< faPatchField< Type > > New(const word &patchFieldType, const word &actualPatchType, const faPatch &, const DimensionedField< Type, areaMesh > &)
virtual void operator-=(const faPatchField< Type > &)
static const word & calculatedType()
Return the type of the calculated for of faPatchField.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void autoMap(const faPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void operator/=(const faPatchField< scalar > &)
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
bool updated() const
Return true if the boundary condition has already been updated.
Registry of regIOobjects.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
virtual bool coupled() const
Return true if this patch field is coupled.
Generic templated field type.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
static int disallowGenericFaPatchField
Debug switch to disallow the use of.
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.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
commsTypes
Types of communications.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
const word & patchType() const
Optional patch type.
const objectRegistry & db() const
Return local objectRegistry.
virtual void rmap(const faPatchField< Type > &, const labelList &)
Reverse map the given faPatchField onto this faPatchField.
virtual void operator+=(const faPatchField< Type > &)
word & patchType()
Optional patch type.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual void operator==(const faPatchField< Type > &)
Finite area patch class. Used for 2-D non-Euclidian finite area method.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void operator=(const UList< Type > &)
TypeName("faPatchField")
Runtime type information.
const faPatch & patch() const
Return patch.
declareRunTimeSelectionTable(tmp, faPatchField, patch,(const faPatch &p, const DimensionedField< Type, areaMesh > &iF),(p, iF))
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...