44 #ifndef fvsPatchField_H
45 #define fvsPatchField_H
70 class calculatedFvsPatchField;
145 (
dynamic_cast<const fvsPatchFieldType&
>(ptf),
p, iF, m)
172 const bool valueRequired=
true
182 const bool mappingRequired=
true
255 const word& actualPatchType,
288 template<
class Type2>
324 if (
type() == patch_.type())
329 typename patchConstructorTable::iterator patchTypeCstrIter
330 = patchConstructorTablePtr_->find(patch_.type());
334 != patchConstructorTablePtr_->end();
353 return internalField_;
359 return internalField_;
452 #define makeFvsPatchField(fvsPatchTypeField) \
453 defineNamedTemplateTypeNameAndDebug(fvsPatchTypeField, 0); \
455 int fvsPatchTypeField::disallowGenericFvsPatchField \
457 debug::debugSwitch("disallowGenericFvsPatchField", 0) \
459 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \
460 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \
461 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, dictionary);
464 #define addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
465 addToRunTimeSelectionTable \
468 typePatchTypeField, \
471 addToRunTimeSelectionTable \
474 typePatchTypeField, \
477 addToRunTimeSelectionTable \
480 typePatchTypeField, \
486 #define makeFvsPatchTypeField(PatchTypeField, typePatchTypeField) \
487 defineTypeNameAndDebug(typePatchTypeField, 0); \
488 addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
492 #define makeTemplateFvsPatchTypeField(fieldType, type) \
493 defineNamedTemplateTypeNameAndDebug \
495 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
498 addToFvsPatchFieldRunTimeSelection \
500 CAT3(fvsPatch, CAPITALIZE(fieldType), Field), \
501 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field) \
505 #define makeFvsPatchFields(type) \
506 FOR_ALL_FIELD_TYPES(makeTemplateFvsPatchTypeField, type)
509 #define makeFvsPatchFieldTypeName(fieldType, type) \
510 defineNamedTemplateTypeNameAndDebug \
512 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
517 #define makeFvsPatchFieldTypeNames(type) \
518 FOR_ALL_FIELD_TYPES(makeFvsPatchFieldTypeName, type)
521 #define makeFvsPatchTypeFieldTypedef(fieldType, type) \
522 typedef type##FvsPatchField<fieldType> \
523 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field);
526 #define makeFvsPatchTypeFieldTypedefs(type) \
527 FOR_ALL_FIELD_TYPES(makeFvsPatchTypeFieldTypedef, type)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Pre-declare SubField and related Field type.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
commsTypes
Types of communications.
Foam::calculatedFvsPatchField.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Abstract base class for field mapping.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void write(Ostream &) const
Write.
virtual bool coupled() const
Return true if this patch field is coupled.
virtual void reset(const fvsPatchField< Type > &)
Reset the fvsPatchField to the given fvsPatchField.
virtual void operator==(const fvsPatchField< Type > &)
fvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
const Field< Type > & primitiveField() const
Return internal field reference.
declareRunTimeSelectionTable(tmp, fvsPatchField, patch,(const fvPatch &p, const DimensionedField< Type, surfaceMesh > &iF),(p, iF))
const objectRegistry & db() const
Return local objectRegistry.
static tmp< fvsPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvsPatchField created on.
virtual void operator=(const UList< Type > &)
TypeName("fvsPatchField")
Runtime type information.
virtual void map(const fvsPatchField< Type > &, const fieldMapper &)
Map the given fvsPatchField onto this fvsPatchField.
const DimensionedField< Type, surfaceMesh > & internalField() const
Return dimensioned internal field reference.
virtual void operator-=(const fvsPatchField< Type > &)
tmp< fvsPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
virtual void operator/=(const fvsPatchField< scalar > &)
bool overridesConstraint() const
Return true if this overrides the underlying constraint type.
virtual tmp< Field< Type > > patchNeighbourField(const Pstream::commsTypes commsType) const
Return patchField on the opposite patch of a coupled patch.
virtual void operator+=(const fvsPatchField< Type > &)
virtual ~fvsPatchField()
Destructor.
calculatedFvsPatchField< Type > Calculated
void check(const fvsPatchField< Type > &) const
Check fvsPatchField<Type> against given fvsPatchField<Type>
const fvPatch & patch() const
Return patch.
virtual void initPatchNeighbourField(const Pstream::commsTypes commsType) const
Initialise return of the patchField on the opposite patch of a.
static tmp< fvsPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Return a pointer to a new patchField created on freestore given.
static int disallowGenericFvsPatchField
Debug switch to disallow the use of genericFvsPatchField.
virtual void operator*=(const fvsPatchField< scalar > &)
static const word & calculatedType()
Return the type of the calculated for of fvsPatchField.
Registry of regIOobjects.
A class for managing temporary objects.
A class for handling words, derived from string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Ostream & operator<<(Ostream &os, const fvConstraints &constraints)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.