42 #ifndef pointPatchField_H 43 #define pointPatchField_H 58 class pointPatchFieldMapper;
64 class pointPatchField;
67 class calculatedPointPatchField;
73 const pointPatchField<Type>&
87 const pointPatch& patch_;
90 const DimensionedField<Type, pointMesh>& internalField_;
140 (dynamic_cast<const pointPatchFieldType&>(ptf), p, iF, m)
222 const word& actualPatchType,
248 template<
class Type2>
284 return internalField_;
290 return internalField_;
328 template<
class Type1>
336 template<
class Type1>
345 template<
class Type1>
354 template<
class Type1>
364 template<
class Type1>
374 template<
class Type1>
437 virtual void write(Ostream&)
const;
441 template<
class EntryType>
445 const word& entryName,
446 const EntryType& value1,
447 const EntryType& value2
484 friend Ostream& operator<< <Type>
519 #define addToPointPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \ 520 addToRunTimeSelectionTable \ 523 typePatchTypeField, \ 526 addToRunTimeSelectionTable \ 529 typePatchTypeField, \ 532 addToRunTimeSelectionTable \ 535 typePatchTypeField, \ 541 #define makePointPatchTypeField(PatchTypeField,typePatchTypeField) \ 542 defineTypeNameAndDebug(typePatchTypeField, 0); \ 543 addToPointPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) 547 #define makeTemplatePointPatchTypeField(PatchTypeField, typePatchTypeField) \ 548 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \ 549 addToPointPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) 552 #define makePointPatchFields(type) \ 553 makeTemplatePointPatchTypeField \ 555 pointPatchScalarField, \ 556 type##PointPatchScalarField \ 558 makeTemplatePointPatchTypeField \ 560 pointPatchVectorField, \ 561 type##PointPatchVectorField \ 563 makeTemplatePointPatchTypeField \ 565 pointPatchSphericalTensorField, \ 566 type##PointPatchSphericalTensorField \ 568 makeTemplatePointPatchTypeField \ 570 pointPatchSymmTensorField, \ 571 type##PointPatchSymmTensorField \ 573 makeTemplatePointPatchTypeField \ 575 pointPatchTensorField, \ 576 type##PointPatchTensorField \ 580 #define makePointPatchFieldsTypeName(type) \ 581 defineNamedTemplateTypeNameAndDebug(type##PointPatchScalarField, 0); \ 582 defineNamedTemplateTypeNameAndDebug(type##PointPatchVectorField, 0); \ 583 defineNamedTemplateTypeNameAndDebug \ 585 type##PointPatchSphericalTensorField, 0 \ 587 defineNamedTemplateTypeNameAndDebug(type##PointPatchSymmTensorField, 0); \ 588 defineNamedTemplateTypeNameAndDebug(type##PointPatchTensorField, 0) 591 #define makePointPatchFieldTypedefs(type) \ 592 typedef type##PointPatchField<scalar> type##PointPatchScalarField; \ 593 typedef type##PointPatchField<vector> type##PointPatchVectorField; \ 594 typedef type##PointPatchField<sphericalTensor> \ 595 type##PointPatchSphericalTensorField; \ 596 typedef type##PointPatchField<symmTensor> type##PointPatchSymmTensorField;\ 597 typedef type##PointPatchField<tensor> type##PointPatchTensorField; virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
pointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
A list of keyword definitions, which are a keyword followed by any number of values (e...
commsTypes
Types of communications.
virtual void operator-=(const pointPatchField< Type > &)
Foam::pointPatchFieldMapper.
virtual void autoMap(const pointPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void rmap(const pointPatchField< Type > &, const labelList &)
Reverse map the given pointPatchField onto this pointPatchField.
virtual void operator==(const pointPatchField< Type > &)
A calculated boundary condition for pointField.
const Field< Type > & primitiveField() const
Return internal field reference.
static int disallowGenericPointPatchField
Debug switch to disallow the use of genericPointPatchField.
Abstract base class for point-mesh patch fields.
static const word & calculatedType()
Return the type of the calculated form of pointPatchField.
const objectRegistry & db() const
Return local objectRegistry.
static autoPtr< pointPatchField< Type > > NewCalculatedType(const pointPatchField< Type2 > &)
Return a pointer to a new calculatedPointPatchField created on.
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
const pointPatch & patch() const
Return patch.
static const word null
An empty word.
void setInInternalField(Field< Type1 > &iF, const Field< Type1 > &pF, const labelList &meshPoints) const
Given the internal field and a patch field,.
virtual autoPtr< pointPatchField< Type > > clone() const =0
Construct and return a clone.
virtual const word & constraintType() const
Return the constraint type this pointPatchField implements.
virtual void operator*=(const pointPatchField< scalar > &)
tmp< Field< Type > > patchInternalField() const
Return field created from appropriate internal field values.
virtual void operator=(const pointPatchField< Type > &)
declareRunTimeSelectionTable(autoPtr, pointPatchField, pointPatch,(const pointPatch &p, const DimensionedField< Type, pointMesh > &iF),(p, iF))
const word & patchType() const
Optional patch type.
virtual void operator==(const Field< Type > &)
const DimensionedField< Type, pointMesh > & internalField() const
Return dimensioned internal field reference.
calculatedPointPatchField< Type > Calculated
virtual void write(Ostream &) const
Write.
Basic pointPatch represents a set of points from the mesh.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise evaluation of the patch field (do nothing)
void addToInternalField(Field< Type1 > &iF, const Field< Type1 > &pF) const
Given the internal field and a patch field,.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual void operator/=(const pointPatchField< scalar > &)
bool updated() const
Return true if the boundary condition has already been updated.
TypeName("pointPatchField")
Runtime type information.
virtual void operator==(const Type &)
label size() const
Return size.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
static autoPtr< pointPatchField< Type > > New(const word &, const pointPatch &, const DimensionedField< Type, pointMesh > &)
Return a pointer to a new patchField created on freestore given.
A class for managing temporary objects.
Registry of regIOobjects.
virtual void operator+=(const pointPatchField< Type > &)
virtual bool coupled() const
Return true if this patch field is coupled.
virtual label size() const =0
Return size.
virtual bool fixesValue() const
Return true if this patch field fixes a value.