44 #ifndef fvPatchField_H 45 #define fvPatchField_H 60 class fvPatchFieldMapper;
76 Ostream& operator<<(Ostream&, const fvPatchField<Type>&);
102 bool manipulatedMatrix_;
143 (dynamic_cast<const fvPatchFieldType&>(ptf), p, iF, m)
183 const bool valueRequired=
true 193 const bool mappingRequired=
true 256 const word& actualPatchType,
289 template<
class Type2>
332 if (
type() == patch_.type())
337 typename patchConstructorTable::iterator patchTypeCstrIter
338 = patchConstructorTablePtr_->find(patch_.type());
342 != patchConstructorTablePtr_->end();
360 return internalField_;
366 return internalField_;
378 return manipulatedMatrix_;
585 #define makeFvPatchField(fvPatchTypeField) \ 586 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \ 588 int fvPatchTypeField::disallowGenericFvPatchField \ 590 debug::debugSwitch("disallowGenericFvPatchField", 0) \ 592 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \ 593 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \ 594 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary); 597 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \ 598 addToRunTimeSelectionTable \ 601 typePatchTypeField, \ 604 addToRunTimeSelectionTable \ 607 typePatchTypeField, \ 610 addToRunTimeSelectionTable \ 613 typePatchTypeField, \ 619 #define addRemovableToPatchFieldRunTimeSelection( \ 620 PatchTypeField, typePatchTypeField) \ 622 addRemovableToRunTimeSelectionTable \ 625 typePatchTypeField, \ 628 addRemovableToRunTimeSelectionTable \ 631 typePatchTypeField, \ 634 addRemovableToRunTimeSelectionTable \ 637 typePatchTypeField, \ 643 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \ 644 defineTypeNameAndDebug(typePatchTypeField, 0); \ 645 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) 649 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \ 650 defineTypeNameAndDebug(typePatchTypeField, 0); \ 651 addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) 655 #define makeTemplatePatchTypeField(fieldType, type) \ 656 defineNamedTemplateTypeNameAndDebug \ 658 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \ 661 addToPatchFieldRunTimeSelection \ 663 CAT3(fvPatch, CAPITALIZE(fieldType), Field), \ 664 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \ 668 #define makePatchFields(type) \ 669 FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type) 672 #define makePatchFieldTypeName(fieldType, type) \ 673 defineNamedTemplateTypeNameAndDebug \ 675 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \ 680 #define makePatchFieldTypeNames(type) \ 681 FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type) 684 #define makePatchTypeFieldTypedef(fieldType, type) \ 685 typedef type##FvPatchField<fieldType> \ 686 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field); 689 #define makePatchTypeFieldTypedefs(type) \ 690 FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, type) virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, volMesh > &iF),(p, iF))
virtual bool fixesValue() const
Return true if this patch field fixes a value.
A list of keyword definitions, which are a keyword followed by any number of values (e...
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
bool updated() const
Return true if the boundary condition has already been updated.
commsTypes
Types of communications.
virtual void operator*=(const fvPatchField< scalar > &)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
virtual void write(Ostream &) const
Write.
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
const Field< Type > & primitiveField() const
Return internal field reference.
virtual void operator==(const fvPatchField< Type > &)
virtual bool assignable() const
Return true if the value of the patch field.
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
Include the header files for all the primitive types that Fields are instantiated for...
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
virtual void operator/=(const fvPatchField< scalar > &)
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Foam::fvPatchFieldMapper.
bool overridesConstraint() const
Return true if this overrides the underlying constraint type.
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
virtual void initPatchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Initialise return of the patchField on the opposite patch of a.
virtual bool coupled() const
Return true if this patch field is coupled.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
const fvPatch & patch() const
Return patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void operator-=(const fvPatchField< Type > &)
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
virtual void operator+=(const fvPatchField< Type > &)
TypeName("fvPatchField")
Runtime type information.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
calculatedFvPatchField< Type > Calculated
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
virtual void operator=(const UList< Type > &)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
const objectRegistry & db() const
Return local objectRegistry.
A class for managing temporary objects.
Registry of regIOobjects.
virtual tmp< Field< Type > > patchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Return patchField on the opposite patch of a coupled patch.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.