49 #ifndef Foam_faePatchField_H 50 #define Foam_faePatchField_H 64 class faPatchFieldMapper;
67 template<
class Type>
class faePatchField;
68 template<
class Type>
class calculatedFaePatchField;
71 Ostream& operator<<(Ostream&, const faePatchField<Type>&);
154 public faePatchFieldBase,
200 (dynamic_cast<const faePatchFieldType&>(ptf),
p, iF, m)
289 static tmp<faePatchField<Type>>
New 291 const word& patchFieldType,
293 const DimensionedField<Type, edgeMesh>&
300 static tmp<faePatchField<Type>>
New 302 const word& patchFieldType,
303 const word& actualPatchType,
305 const DimensionedField<Type, edgeMesh>&
329 template<
class Type2>
362 const objectRegistry&
db()
const;
368 return internalField_;
374 return internalField_;
383 const faPatchFieldMapper&
389 const faePatchField<Type>&,
395 virtual void write(Ostream&)
const;
401 void check(
const faePatchField<Type>&)
const;
406 virtual void operator=(
const UList<Type>&);
408 virtual void operator=(
const faePatchField<Type>&);
409 virtual void operator+=(
const faePatchField<Type>&);
410 virtual void operator-=(
const faePatchField<Type>&);
411 virtual void operator*=(
const faePatchField<scalar>&);
412 virtual void operator/=(
const faePatchField<scalar>&);
417 virtual void operator*=(
const Field<scalar>&);
455 #define makeFaePatchTypeFieldTypeName(typePatchTypeField) \ 457 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); 459 #define makeFaePatchFieldsTypeName(typePatchField) \ 461 makeFaePatchTypeFieldTypeName(typePatchField##FaePatchScalarField); \ 462 makeFaePatchTypeFieldTypeName(typePatchField##FaePatchVectorField); \ 463 makeFaePatchTypeFieldTypeName(typePatchField##FaePatchSphericalTensorField); \ 464 makeFaePatchTypeFieldTypeName(typePatchField##FaePatchSymmTensorField); \ 465 makeFaePatchTypeFieldTypeName(typePatchField##FaePatchTensorField); 468 #define makeFaePatchTypeField(PatchTypeField, typePatchTypeField) \ 470 defineNamedTemplateTypeNameAndDebug(typePatchTypeField, 0); \ 472 addToRunTimeSelectionTable \ 474 PatchTypeField, typePatchTypeField, patch \ 477 addToRunTimeSelectionTable \ 480 typePatchTypeField, \ 484 addToRunTimeSelectionTable \ 486 PatchTypeField, typePatchTypeField, dictionary \ 490 #define makeFaePatchFields(type) \ 492 makeFaePatchTypeField(faePatchScalarField, type##FaePatchScalarField); \ 493 makeFaePatchTypeField(faePatchVectorField, type##FaePatchVectorField); \ 494 makeFaePatchTypeField \ 496 faePatchSphericalTensorField, \ 497 type##FaePatchSphericalTensorField \ 499 makeFaePatchTypeField(faePatchSymmTensorField, type##FaePatchSymmTensorField); \ 500 makeFaePatchTypeField(faePatchTensorField, type##FaePatchTensorField); 503 #define makeFaePatchTypeFieldTypedefs(type) \ 505 typedef type##FaePatchField<scalar> type##FaePatchScalarField; \ 506 typedef type##FaePatchField<vector> type##FaePatchVectorField; \ 507 typedef type##FaePatchField<sphericalTensor> \ 508 type##FaePatchSphericalTensorField; \ 509 typedef type##FaePatchField<symmTensor> type##FaePatchSymmTensorField; \ 510 typedef type##FaePatchField<tensor> type##FaePatchTensorField;
const objectRegistry & db() const
Return local objectRegistry.
virtual void readDict(const dictionary &dict)
Read dictionary entries.
virtual bool coupled() const
True if this patch field is coupled.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Template invariant parts for faePatchField.
virtual void autoMap(const faPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual ~faePatchField()=default
Destructor.
virtual bool fixesValue() const
True if this patch field fixes a value.
const DimensionedField< Type, edgeMesh > & internalField() const noexcept
Return dimensioned internal field reference.
declareRunTimeSelectionTable(tmp, faePatchField, patch,(const faPatch &p, const DimensionedField< Type, edgeMesh > &iF),(p, iF))
Generic templated field type.
faPatch Patch
The patch type for the patch field.
DimensionedField< Type, edgeMesh > Internal
The internal field type associated with the patch field.
A class for handling words, derived from Foam::string.
virtual void operator*=(const faePatchField< scalar > &)
virtual tmp< faePatchField< Type > > clone() const
Construct and return a clone.
const faPatch & patch() const noexcept
The associated objectRegistry.
faePatchFieldBase(const faPatch &p)
Construct from patch.
virtual void write(Ostream &) const
Write.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void rmap(const faePatchField< Type > &, const labelList &)
Reverse map the given faePatchField onto this faePatchField.
Finite area patch class. Used for 2-D non-Euclidian finite area method.
static tmp< faePatchField< Type > > NewCalculatedType(const faePatchField< Type2 > &)
Return a pointer to a new calculatedFaePatchField created on.
virtual ~faePatchFieldBase()=default
Destructor.
virtual void operator=(const UList< Type > &)
void check(const faePatchField< Type > &) const
Check faePatchField<Type> against given faePatchField<Type>
calculatedFaePatchField< Type > Calculated
Type for a calculated patch.
virtual void operator/=(const faePatchField< scalar > &)
TypeName("faePatchField")
Runtime type information.
virtual void operator==(const faePatchField< Type > &)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
faePatchField(const faPatch &, const DimensionedField< Type, edgeMesh > &)
Construct from patch and internal field.
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.
faePatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cove...
virtual void operator+=(const faePatchField< Type > &)
List< label > labelList
A List of labels.
A class for managing temporary objects.
static int disallowGenericPatchField
Debug switch to disallow the use of generic faePatchField.
A FieldMapper for finite-area patch fields.
void checkPatch(const faePatchFieldBase &rhs) const
Check that patches are identical.
virtual void operator-=(const faePatchField< Type > &)
static const word & calculatedType()
The type name for calculated patch fields.
const Field< Type > & primitiveField() const noexcept
Return internal field reference.
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.