48#ifndef Foam_faPatchField_H
49#define Foam_faPatchField_H
63class faPatchFieldMapper;
70class calculatedFaPatchField;
146 (
dynamic_cast<const faPatchFieldType&
>(ptf),
p, iF, m)
186 const bool valueRequired=
true
231 const word& patchFieldType,
232 const word& actualPatchType,
242 const word& patchFieldType,
268 template<
class Type2>
295 return internalField_;
301 return internalField_;
492#define addToFaPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
494addToRunTimeSelectionTable \
496 PatchTypeField, typePatchTypeField, patch \
499addToRunTimeSelectionTable \
502 typePatchTypeField, \
506addToRunTimeSelectionTable \
508 PatchTypeField, typePatchTypeField, dictionary \
512#define makeFaPatchTypeFieldTypeName(typePatchTypeField) \
514defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0);
517#define makeFaPatchFieldsTypeName(typePatchField) \
519makeFaPatchTypeFieldTypeName(typePatchField##FaPatchScalarField); \
520makeFaPatchTypeFieldTypeName(typePatchField##FaPatchVectorField); \
521makeFaPatchTypeFieldTypeName(typePatchField##FaPatchSphericalTensorField); \
522makeFaPatchTypeFieldTypeName(typePatchField##FaPatchSymmTensorField); \
523makeFaPatchTypeFieldTypeName(typePatchField##FaPatchTensorField);
526#define makeFaPatchTypeField(PatchTypeField, typePatchTypeField) \
528defineTypeNameAndDebug(typePatchTypeField, 0); \
530addToFaPatchFieldRunTimeSelection \
532 PatchTypeField, typePatchTypeField \
535#define makeTemplateFaPatchTypeField(PatchTypeField, typePatchTypeField) \
537defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
539addToFaPatchFieldRunTimeSelection \
541 PatchTypeField, typePatchTypeField \
545#define makeFaPatchFields(type) \
547makeTemplateFaPatchTypeField(faPatchScalarField, type##FaPatchScalarField); \
548makeTemplateFaPatchTypeField(faPatchVectorField, type##FaPatchVectorField); \
549makeTemplateFaPatchTypeField \
551 faPatchSphericalTensorField, \
552 type##FaPatchSphericalTensorField \
554makeTemplateFaPatchTypeField \
556 faPatchSymmTensorField, \
557 type##FaPatchSymmTensorField \
559makeTemplateFaPatchTypeField \
561 faPatchTensorField, \
562 type##FaPatchTensorField \
566#define makeFaPatchTypeFieldTypedefs(type) \
568typedef type##FaPatchField<scalar> type##FaPatchScalarField; \
569typedef type##FaPatchField<vector> type##FaPatchVectorField; \
570typedef type##FaPatchField<sphericalTensor> \
571 type##FaPatchSphericalTensorField; \
572typedef type##FaPatchField<symmTensor> type##FaPatchSymmTensorField; \
573typedef type##FaPatchField<tensor> type##FaPatchTensorField;
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,...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
commsTypes
Types of communications.
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A FieldMapper for finite-area patch fields.
faPatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cover...
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar > > &) const
virtual tmp< faPatchField< Type > > clone() const
Construct and return a clone.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
static int disallowGenericFaPatchField
Debug switch to disallow the use of.
virtual bool coupled() const
Return true if this patch field is coupled.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
static tmp< faPatchField< Type > > New(const word &patchFieldType, const word &actualPatchType, const faPatch &, const DimensionedField< Type, areaMesh > &)
virtual void rmap(const faPatchField< Type > &, const labelList &)
Reverse map the given faPatchField onto this faPatchField.
faPatch Patch
The patch type for the patch field.
const faPatch & patch() const
Return patch.
virtual void operator==(const faPatchField< Type > &)
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
virtual void operator/=(const faPatchField< scalar > &)
virtual void operator-=(const faPatchField< Type > &)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
declareRunTimeSelectionTable(tmp, faPatchField, dictionary,(const faPatch &p, const DimensionedField< Type, areaMesh > &iF, const dictionary &dict),(p, iF, dict))
const objectRegistry & db() const
Return local objectRegistry.
virtual void operator=(const UList< Type > &)
const Field< Type > & primitiveField() const
Return internal field reference.
calculatedFaPatchField< Type > Calculated
Type for a calculated patch.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
declareRunTimeSelectionTable(tmp, faPatchField, patchMapper,(const faPatchField< Type > &ptf, const faPatch &p, const DimensionedField< Type, areaMesh > &iF, const faPatchFieldMapper &m),(dynamic_cast< const faPatchFieldType & >(ptf), p, iF, m))
static tmp< faPatchField< Type > > NewCalculatedType(const faPatchField< Type2 > &)
declareRunTimeSelectionTable(tmp, faPatchField, patch,(const faPatch &p, const DimensionedField< Type, areaMesh > &iF),(p, iF))
virtual void operator+=(const faPatchField< Type > &)
const DimensionedField< Type, areaMesh > & internalField() const
Return dimensioned internal field reference.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar > > &) const
virtual void autoMap(const faPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual tmp< faPatchField< Type > > clone(const DimensionedField< Type, areaMesh > &iF) const
Construct and return a clone setting internal field reference.
const word & patchType() const
Optional patch type.
void check(const faPatchField< Type > &) const
Check faPatchField<Type> against given faPatchField<Type>
virtual void operator*=(const faPatchField< scalar > &)
DimensionedField< Type, areaMesh > Internal
The internal field type associated with the patch field.
word & patchType()
Optional patch type.
bool updated() const
Return true if the boundary condition has already been updated.
static const word & calculatedType()
Return the type of the calculated for of faPatchField.
TypeName("faPatchField")
Runtime type information.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Finite area patch class. Used for 2-D non-Euclidian finite area method.
Registry of regIOobjects.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
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.