47#ifndef Foam_fvsPatchField_H
48#define Foam_fvsPatchField_H
62class fvPatchFieldMapper;
65template<
class Type>
class fvsPatchField;
66template<
class Type>
class calculatedFvsPatchField;
134 (
dynamic_cast<const fvsPatchFieldType&
>(ptf),
p, iF, m)
174 const bool valueRequired=
true
219 const word& patchFieldType,
230 const word& patchFieldType,
231 const word& actualPatchType,
264 template<
class Type2>
291 return internalField_;
297 return internalField_;
392#define makeFvsPatchTypeFieldTypeName(type) \
394defineNamedTemplateTypeNameAndDebug(type, 0);
396#define makeFvsPatchFieldsTypeName(type) \
398makeFvsPatchTypeFieldTypeName(type##FvsPatchScalarField); \
399makeFvsPatchTypeFieldTypeName(type##FvsPatchVectorField); \
400makeFvsPatchTypeFieldTypeName(type##FvsPatchSphericalTensorField); \
401makeFvsPatchTypeFieldTypeName(type##FvsPatchSymmTensorField); \
402makeFvsPatchTypeFieldTypeName(type##FvsPatchTensorField);
404#define makeFvsPatchTypeField(PatchTypeField, typePatchTypeField) \
406defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
408addToRunTimeSelectionTable \
410 PatchTypeField, typePatchTypeField, patch \
413addToRunTimeSelectionTable \
416 typePatchTypeField, \
420addToRunTimeSelectionTable \
422 PatchTypeField, typePatchTypeField, dictionary \
426#define makeFvsPatchFields(type) \
428makeFvsPatchTypeField(fvsPatchScalarField, type##FvsPatchScalarField); \
429makeFvsPatchTypeField(fvsPatchVectorField, type##FvsPatchVectorField); \
430makeFvsPatchTypeField \
432 fvsPatchSphericalTensorField, \
433 type##FvsPatchSphericalTensorField \
435makeFvsPatchTypeField(fvsPatchSymmTensorField, type##FvsPatchSymmTensorField); \
436makeFvsPatchTypeField(fvsPatchTensorField, type##FvsPatchTensorField);
439#define makeFvsPatchTypeFieldTypedefs(type) \
441typedef type##FvsPatchField<scalar> type##FvsPatchScalarField; \
442typedef type##FvsPatchField<vector> type##FvsPatchVectorField; \
443typedef type##FvsPatchField<sphericalTensor> \
444 type##FvsPatchSphericalTensorField; \
445typedef type##FvsPatchField<symmTensor> type##FvsPatchSymmTensorField; \
446typedef type##FvsPatchField<tensor> type##FvsPatchTensorField;
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...
Foam::calculatedFvsPatchField.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A FieldMapper for finite-volume patch fields.
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 void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void rmap(const fvsPatchField< Type > &, const labelList &)
Reverse map the given fvsPatchField onto this fvsPatchField.
virtual tmp< fvsPatchField< Type > > clone(const DimensionedField< Type, surfaceMesh > &iF) const
Construct and return a clone setting internal field reference.
virtual bool coupled() const
Return true if this patch field is coupled.
fvPatch Patch
The patch type for the patch field.
virtual void operator==(const fvsPatchField< Type > &)
declareRunTimeSelectionTable(tmp, fvsPatchField, patch,(const fvPatch &p, const DimensionedField< Type, surfaceMesh > &iF),(p, iF))
virtual tmp< fvsPatchField< Type > > clone() const
Construct and return a clone.
declareRunTimeSelectionTable(tmp, fvsPatchField, dictionary,(const fvPatch &p, const DimensionedField< Type, surfaceMesh > &iF, const dictionary &dict),(p, iF, dict))
const objectRegistry & db() const
Return local objectRegistry.
const DimensionedField< Type, surfaceMesh > & internalField() const
Return dimensioned internal field reference.
static tmp< fvsPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvsPatchField created on.
virtual void operator=(const UList< Type > &)
const Field< Type > & primitiveField() const
Return internal field reference.
declareRunTimeSelectionTable(tmp, fvsPatchField, patchMapper,(const fvsPatchField< Type > &ptf, const fvPatch &p, const DimensionedField< Type, surfaceMesh > &iF, const fvPatchFieldMapper &m),(dynamic_cast< const fvsPatchFieldType & >(ptf), p, iF, m))
TypeName("fvsPatchField")
Runtime type information.
static tmp< fvsPatchField< Type > > NewCalculatedType(const fvsPatchField< Type2 > &)
Return a pointer to a new calculatedFvsPatchField created on.
DimensionedField< Type, surfaceMesh > Internal
The internal field type associated with the patch field.
static tmp< fvsPatchField< Type > > New(const word &patchFieldType, const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual void operator-=(const fvsPatchField< Type > &)
virtual void operator/=(const fvsPatchField< scalar > &)
virtual void operator+=(const fvsPatchField< Type > &)
calculatedFvsPatchField< Type > Calculated
Type for a calculated patch.
void check(const fvsPatchField< Type > &) const
Check fvsPatchField<Type> against given fvsPatchField<Type>
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.
const fvPatch & patch() const
Return patch.
Registry of regIOobjects.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
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.