44 #ifndef fvsPatchField_H
45 #define fvsPatchField_H
59 class fvPatchFieldMapper;
69 class calculatedFvsPatchField;
144 (
dynamic_cast<const fvsPatchFieldType&
>(ptf),
p, iF, m)
171 const bool valueRequired=
true
181 const bool mappingRequired=
true
254 const word& actualPatchType,
287 template<
class Type2>
323 if (
type() == patch_.type())
328 typename patchConstructorTable::iterator patchTypeCstrIter
329 = patchConstructorTablePtr_->find(patch_.type());
333 != patchConstructorTablePtr_->end();
352 return internalField_;
358 return internalField_;
455 #define makeFvsPatchField(fvsPatchTypeField) \
456 defineNamedTemplateTypeNameAndDebug(fvsPatchTypeField, 0); \
458 int fvsPatchTypeField::disallowGenericFvsPatchField \
460 debug::debugSwitch("disallowGenericFvsPatchField", 0) \
462 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \
463 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \
464 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, dictionary);
467 #define addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
468 addToRunTimeSelectionTable \
471 typePatchTypeField, \
474 addToRunTimeSelectionTable \
477 typePatchTypeField, \
480 addToRunTimeSelectionTable \
483 typePatchTypeField, \
489 #define makeFvsPatchTypeField(PatchTypeField, typePatchTypeField) \
490 defineTypeNameAndDebug(typePatchTypeField, 0); \
491 addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
495 #define makeTemplateFvsPatchTypeField(fieldType, type) \
496 defineNamedTemplateTypeNameAndDebug \
498 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
501 addToFvsPatchFieldRunTimeSelection \
503 CAT3(fvsPatch, CAPITALIZE(fieldType), Field), \
504 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field) \
508 #define makeFvsPatchFields(type) \
509 FOR_ALL_FIELD_TYPES(makeTemplateFvsPatchTypeField, type)
512 #define makeFvsPatchFieldTypeName(fieldType, type) \
513 defineNamedTemplateTypeNameAndDebug \
515 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
520 #define makeFvsPatchFieldTypeNames(type) \
521 FOR_ALL_FIELD_TYPES(makeFvsPatchFieldTypeName, type)
524 #define makeFvsPatchTypeFieldTypedef(fieldType, type) \
525 typedef type##FvsPatchField<fieldType> \
526 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field);
529 #define makeFvsPatchTypeFieldTypedefs(type) \
530 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....
Foam::fvPatchFieldMapper.
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.
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 > &)
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.
virtual void map(const fvsPatchField< Type > &, const fvPatchFieldMapper &)
Map the given fvsPatchField onto this 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 &, const ensightPart &)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.