44 #ifndef fvsPatchField_H
45 #define fvsPatchField_H
70 class calculatedFvsPatchField;
73 class slicedFvsPatchField;
157 (
dynamic_cast<const fvsPatchFieldType&
>(ptf),
p, iF, m)
184 const bool valueRequired=
true
194 const bool mappingRequired=
true
267 const word& actualPatchType,
300 template<
class Type2>
336 if (
type() == patch_.type())
341 typename patchConstructorTable::iterator patchTypeCstrIter
342 = patchConstructorTablePtr_->find(patch_.type());
346 != patchConstructorTablePtr_->end();
368 return internalField_;
374 return internalField_;
467 #define makeFvsPatchField(fvsPatchTypeField) \
468 defineNamedTemplateTypeNameAndDebug(fvsPatchTypeField, 0); \
470 int fvsPatchTypeField::disallowGenericFvsPatchField \
472 debug::debugSwitch("disallowGenericFvsPatchField", 0) \
474 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patch); \
475 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, patchMapper); \
476 defineTemplateRunTimeSelectionTable(fvsPatchTypeField, dictionary);
479 #define addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
480 addToRunTimeSelectionTable \
483 typePatchTypeField, \
486 addToRunTimeSelectionTable \
489 typePatchTypeField, \
492 addToRunTimeSelectionTable \
495 typePatchTypeField, \
501 #define makeFvsPatchTypeField(PatchTypeField, typePatchTypeField) \
502 defineTypeNameAndDebug(typePatchTypeField, 0); \
503 addToFvsPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
507 #define makeTemplateFvsPatchTypeField(fieldType, type) \
508 defineNamedTemplateTypeNameAndDebug \
510 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
513 addToFvsPatchFieldRunTimeSelection \
515 CAT3(fvsPatch, CAPITALIZE(fieldType), Field), \
516 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field) \
520 #define makeFvsPatchFields(type) \
521 FOR_ALL_FIELD_TYPES(makeTemplateFvsPatchTypeField, type)
524 #define makeFvsPatchFieldTypeName(fieldType, type) \
525 defineNamedTemplateTypeNameAndDebug \
527 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field), \
532 #define makeFvsPatchFieldTypeNames(type) \
533 FOR_ALL_FIELD_TYPES(makeFvsPatchFieldTypeName, type)
536 #define makeFvsPatchTypeFieldTypedef(fieldType, type) \
537 typedef type##FvsPatchField<fieldType> \
538 CAT4(type, FvsPatch, CAPITALIZE(fieldType), Field);
541 #define makeFvsPatchTypeFieldTypedefs(type) \
542 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,...
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
commsTypes
Types of communications.
Foam::calculatedFvsPatchField.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
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.
const Time & time() const
Return time.
virtual void write(Ostream &) const
Write.
virtual bool coupled() const
Return true if this patch field is coupled.
fvPatch Patch
The patch type.
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.
slicedFvsPatchField< Type > Sliced
The sliced patch field type.
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
The calculated patch field type.
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.
Specialisation of fvsPatchField which creates the underlying fvsPatchField as a slice of the given co...
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.