48#ifndef Foam_faePatchField_H
49#define Foam_faePatchField_H
63class faPatchFieldMapper;
70class calculatedFaePatchField;
138 (
dynamic_cast<const faePatchFieldType&
>(ptf),
p, iF, m)
229 const word& patchFieldType,
240 const word& patchFieldType,
241 const word& actualPatchType,
267 template<
class Type2>
290 return internalField_;
296 return internalField_;
391#define makeFaePatchTypeFieldTypeName(typePatchTypeField) \
393defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0);
395#define makeFaePatchFieldsTypeName(typePatchField) \
397makeFaePatchTypeFieldTypeName(typePatchField##FaePatchScalarField); \
398makeFaePatchTypeFieldTypeName(typePatchField##FaePatchVectorField); \
399makeFaePatchTypeFieldTypeName(typePatchField##FaePatchSphericalTensorField); \
400makeFaePatchTypeFieldTypeName(typePatchField##FaePatchSymmTensorField); \
401makeFaePatchTypeFieldTypeName(typePatchField##FaePatchTensorField);
404#define makeFaePatchTypeField(PatchTypeField, typePatchTypeField) \
406defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \
408addToRunTimeSelectionTable \
410 PatchTypeField, typePatchTypeField, patch \
413addToRunTimeSelectionTable \
416 typePatchTypeField, \
420addToRunTimeSelectionTable \
422 PatchTypeField, typePatchTypeField, dictionary \
426#define makeFaePatchFields(type) \
428makeFaePatchTypeField(faePatchScalarField, type##FaePatchScalarField); \
429makeFaePatchTypeField(faePatchVectorField, type##FaePatchVectorField); \
430makeFaePatchTypeField \
432 faePatchSphericalTensorField, \
433 type##FaePatchSphericalTensorField \
435makeFaePatchTypeField(faePatchSymmTensorField, type##FaePatchSymmTensorField); \
436makeFaePatchTypeField(faePatchTensorField, type##FaePatchTensorField);
439#define makeFaePatchTypeFieldTypedefs(type) \
441typedef type##FaePatchField<scalar> type##FaePatchScalarField; \
442typedef type##FaePatchField<vector> type##FaePatchVectorField; \
443typedef type##FaePatchField<sphericalTensor> \
444 type##FaePatchSphericalTensorField; \
445typedef type##FaePatchField<symmTensor> type##FaePatchSymmTensorField; \
446typedef type##FaePatchField<tensor> type##FaePatchTensorField;
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...
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.
Finite area patch class. Used for 2-D non-Euclidian finite area method.
faePatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cove...
virtual void operator+=(const faePatchField< Type > &)
virtual bool fixesValue() const
Return true if this patch field fixes a value.
declareRunTimeSelectionTable(tmp, faePatchField, patch,(const faPatch &p, const DimensionedField< Type, edgeMesh > &iF),(p, iF))
calculatedFaePatchField< Type > Calculated
Type for a calculated patch.
declareRunTimeSelectionTable(tmp, faePatchField, patchMapper,(const faePatchField< Type > &ptf, const faPatch &p, const DimensionedField< Type, edgeMesh > &iF, const faPatchFieldMapper &m),(dynamic_cast< const faePatchFieldType & >(ptf), p, iF, m))
TypeName("faePatchField")
Runtime type information.
virtual bool coupled() const
Return true if this patch field is coupled.
virtual void operator*=(const faePatchField< scalar > &)
const DimensionedField< Type, edgeMesh > & internalField() const
Return dimensioned internal field reference.
faPatch Patch
The patch type for the patch field.
const faPatch & patch() const
Return patch.
virtual void operator==(const faePatchField< Type > &)
virtual tmp< faePatchField< Type > > clone(const DimensionedField< Type, edgeMesh > &iF) const
Construct and return a clone setting internal field reference.
virtual ~faePatchField()=default
Destructor.
const objectRegistry & db() const
Return local objectRegistry.
virtual void operator=(const UList< Type > &)
const Field< Type > & primitiveField() const
Return internal field reference.
void check(const faePatchField< Type > &) const
Check faePatchField<Type> against given faePatchField<Type>
DimensionedField< Type, edgeMesh > Internal
The internal field type associated with the patch field.
virtual tmp< faePatchField< Type > > clone() const
Construct and return a clone.
static tmp< faePatchField< Type > > New(const word &patchFieldType, const faPatch &, const DimensionedField< Type, edgeMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual void operator/=(const faePatchField< scalar > &)
virtual void autoMap(const faPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void operator-=(const faePatchField< Type > &)
virtual void rmap(const faePatchField< Type > &, const labelList &)
Reverse map the given faePatchField onto this faePatchField.
static tmp< faePatchField< Type > > NewCalculatedType(const faePatchField< Type2 > &)
Return a pointer to a new calculatedFaePatchField created on.
declareRunTimeSelectionTable(tmp, faePatchField, dictionary,(const faPatch &p, const DimensionedField< Type, edgeMesh > &iF, const dictionary &dict),(p, iF, dict))
static const word & calculatedType()
Return the type of the calculated for of faePatchField.
static int disallowGenericFaePatchField
Debug switch to disallow the use of.
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.