45#ifndef Foam_pointPatchField_H
46#define Foam_pointPatchField_H
61class pointPatchFieldMapper;
64template<
class Type>
class pointPatchField;
65template<
class Type>
class calculatedPointPatchField;
143 (
dynamic_cast<const pointPatchFieldType&
>(ptf),
p, iF, m)
213 const word& patchFieldType,
224 const word& patchFieldType,
225 const word& actualPatchType,
251 template<
class Type2>
286 return internalField_;
292 return internalField_;
330 template<
class Type1>
338 template<
class Type1>
347 template<
class Type1>
356 template<
class Type1>
366 template<
class Type1>
376 template<
class Type1>
475 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;
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
commsTypes
Types of communications.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A calculated boundary condition for pointField.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Registry of regIOobjects.
Foam::pointPatchFieldMapper.
Abstract base class for point-mesh patch fields.
tmp< Field< Type1 > > patchInternalField(const Field< Type1 > &iF, const labelList &meshPoints) const
Return field created from selected internal field values.
pointPatch Patch
The patch type for the patch field.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise evaluation of the patch field (do nothing)
virtual void operator/=(const Field< scalar > &)
virtual bool fixesValue() const
Return true if this patch field fixes a value.
TypeName("pointPatchField")
Runtime type information.
virtual void operator==(const pointPatchField< Type > &)
static int disallowGenericPointPatchField
Debug switch to disallow the use of genericPointPatchField.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field.
virtual autoPtr< pointPatchField< Type > > clone(const DimensionedField< Type, pointMesh > &iF) const =0
Construct and return a clone setting internal field reference.
Type value_type
The Field value_type.
virtual void operator==(const Type &)
virtual void operator=(const pointPatchField< Type > &)
virtual bool coupled() const
Return true if this patch field is coupled.
tmp< Field< Type > > patchInternalField() const
Return field created from appropriate internal field values.
virtual void operator+=(const Field< Type > &)
virtual void operator/=(const pointPatchField< scalar > &)
virtual void operator=(const Type &)
virtual void operator*=(const Field< scalar > &)
calculatedPointPatchField< Type > Calculated
Type for a calculated patch.
declareRunTimeSelectionTable(autoPtr, pointPatchField, patchMapper,(const pointPatchField< Type > &ptf, const pointPatch &p, const DimensionedField< Type, pointMesh > &iF, const pointPatchFieldMapper &m),(dynamic_cast< const pointPatchFieldType & >(ptf), p, iF, m))
const pointPatch & patch() const
Return patch.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual const word & constraintType() const
Return the constraint type this pointPatchField implements.
virtual void operator+=(const pointPatchField< Type > &)
virtual autoPtr< pointPatchField< Type > > clone() const =0
Construct and return a clone.
const objectRegistry & db() const
Return local objectRegistry.
virtual void rmap(const pointPatchField< Type > &, const labelList &)
Reverse map the given pointPatchField onto this pointPatchField.
const Field< Type > & primitiveField() const
Return internal field reference.
void addToInternalField(Field< Type1 > &iF, const Field< Type1 > &pF) const
Given the internal field and a patch field,.
virtual void operator-=(const pointPatchField< Type > &)
virtual void operator/=(const scalar)
void setInInternalField(Field< Type1 > &iF, const Field< Type1 > &pF, const labelList &meshPoints) const
Given the internal field and a patch field,.
virtual void operator==(const Field< Type > &)
virtual void operator*=(const pointPatchField< scalar > &)
const DimensionedField< Type, pointMesh > & internalField() const
Return dimensioned internal field reference.
label size() const
Return size.
static autoPtr< pointPatchField< Type > > New(const word &patchFieldType, const pointPatch &p, const DimensionedField< Type, pointMesh > &iF)
Return a pointer to a new patchField created on freestore given.
virtual void operator-=(const Type &)
declareRunTimeSelectionTable(autoPtr, pointPatchField, dictionary,(const pointPatch &p, const DimensionedField< Type, pointMesh > &iF, const dictionary &dict),(p, iF, dict))
const word & patchType() const
Optional patch type.
void negate()
Negate the field inplace. Dummy placeholder for FieldField.
virtual void autoMap(const pointPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
declareRunTimeSelectionTable(autoPtr, pointPatchField, pointPatch,(const pointPatch &p, const DimensionedField< Type, pointMesh > &iF),(p, iF))
word & patchType()
Optional patch type.
void normalise()
Normalise the field inplace. Dummy placeholder for FieldField.
static autoPtr< pointPatchField< Type > > NewCalculatedType(const pointPatchField< Type2 > &)
Return a pointer to a new calculatedPointPatchField created on.
bool updated() const
Return true if the boundary condition has already been updated.
virtual void operator=(const Field< Type > &)
DimensionedField< Type, pointMesh > Internal
The internal field type associated with the patch field.
virtual void operator*=(const scalar)
virtual void operator-=(const Field< Type > &)
virtual void operator+=(const Type &)
static const word & calculatedType()
Return the type of the calculated form of pointPatchField.
tmp< Field< Type1 > > patchInternalField(const Field< Type1 > &iF) const
Return field created from appropriate internal field values.
Basic pointPatch represents a set of points from the mesh.
virtual label size() const =0
Return size.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
static const word null
An empty word.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.