44 #ifndef fvPatchField_H
45 #define fvPatchField_H
71 class calculatedFvPatchField;
74 class slicedFvPatchField;
109 bool manipulatedMatrix_;
159 (
dynamic_cast<const fvPatchFieldType&
>(ptf),
p, iF, m)
199 const bool valueRequired=
true
209 const bool mappingRequired=
true
272 const word& actualPatchType,
305 template<
class Type2>
348 if (
type() == patch_.type())
353 typename patchConstructorTable::iterator patchTypeCstrIter
354 = patchConstructorTablePtr_->find(patch_.type());
358 != patchConstructorTablePtr_->end();
379 return internalField_;
385 return internalField_;
397 return manipulatedMatrix_;
599 #define makeFvPatchField(fvPatchTypeField) \
600 defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \
602 int fvPatchTypeField::disallowGenericFvPatchField \
604 debug::debugSwitch("disallowGenericFvPatchField", 0) \
606 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \
607 defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \
608 defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary);
611 #define addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
612 addToRunTimeSelectionTable \
615 typePatchTypeField, \
618 addToRunTimeSelectionTable \
621 typePatchTypeField, \
626 #define addToNullConstructablePatchFieldRunTimeSelection( \
627 PatchTypeField, typePatchTypeField) \
629 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField) \
631 addToRunTimeSelectionTable \
634 typePatchTypeField, \
640 #define addRemovableToPatchFieldRunTimeSelection( \
641 PatchTypeField, typePatchTypeField) \
643 addRemovableToRunTimeSelectionTable \
646 typePatchTypeField, \
649 addRemovableToRunTimeSelectionTable \
652 typePatchTypeField, \
658 #define makePatchTypeField(PatchTypeField, typePatchTypeField) \
659 defineTypeNameAndDebug(typePatchTypeField, 0); \
660 addToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
664 #define makeNullConstructablePatchTypeField(PatchTypeField, typePatchTypeField)\
665 defineTypeNameAndDebug(typePatchTypeField, 0); \
666 addToNullConstructablePatchFieldRunTimeSelection \
674 #define makeRemovablePatchTypeField(PatchTypeField, typePatchTypeField) \
675 defineTypeNameAndDebug(typePatchTypeField, 0); \
676 addRemovableToPatchFieldRunTimeSelection(PatchTypeField, typePatchTypeField)
680 #define makeTemplatePatchTypeField(fieldType, type) \
681 defineNamedTemplateTypeNameAndDebug \
683 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
686 addToPatchFieldRunTimeSelection \
688 CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
689 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
694 #define makeNullConstructableTemplatePatchTypeField(fieldType, type) \
695 defineNamedTemplateTypeNameAndDebug \
697 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
700 addToNullConstructablePatchFieldRunTimeSelection \
702 CAT3(fvPatch, CAPITALIZE(fieldType), Field), \
703 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field) \
707 #define makePatchFields(type) \
708 FOR_ALL_FIELD_TYPES(makeTemplatePatchTypeField, type)
711 #define makeNullConstructablePatchFields(type) \
712 FOR_ALL_FIELD_TYPES(makeNullConstructableTemplatePatchTypeField, type)
715 #define makePatchFieldTypeName(fieldType, type) \
716 defineNamedTemplateTypeNameAndDebug \
718 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field), \
723 #define makePatchFieldTypeNames(type) \
724 FOR_ALL_FIELD_TYPES(makePatchFieldTypeName, type)
727 #define makePatchTypeFieldTypedef(fieldType, type) \
728 typedef type##FvPatchField<fieldType> \
729 CAT4(type, FvPatch, CAPITALIZE(fieldType), Field);
732 #define makePatchTypeFieldTypedefs(type) \
733 FOR_ALL_FIELD_TYPES(makePatchTypeFieldTypedef, 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.
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
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 special matrix type and solver, designed for finite volume solutions of scalar equations....
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void initPatchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Initialise return of the patchField on the opposite patch of a.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
const Time & time() const
Return time.
virtual void write(Ostream &) const
Write.
virtual void operator==(const fvPatchField< Type > &)
virtual bool coupled() const
Return true if this patch field is coupled.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
fvPatch Patch
The patch type.
slicedFvPatchField< Type > Sliced
The sliced patch field type.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvPatchField created on.
declareRunTimeSelectionTable(tmp, fvPatchField, patch,(const fvPatch &p, const DimensionedField< Type, fvMesh > &iF),(p, iF))
static tmp< fvPatchField< Type > > New(const word &, const fvPatch &, const DimensionedField< Type, fvMesh > &)
Return a pointer to a new patchField created on freestore given.
fvPatchField(const fvPatch &, const DimensionedField< Type, fvMesh > &)
Construct from patch and internal field.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
virtual void operator-=(const fvPatchField< Type > &)
const Field< Type > & primitiveField() const
Return internal field reference.
const objectRegistry & db() const
Return local objectRegistry.
virtual void operator=(const UList< Type > &)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual tmp< Field< Type > > patchNeighbourField(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking) const
Return patchField on the opposite patch of a coupled patch.
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
TypeName("fvPatchField")
Runtime type information.
calculatedFvPatchField< Type > Calculated
The calculated patch field type.
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
virtual void operator*=(const fvPatchField< scalar > &)
static int disallowGenericFvPatchField
Debug switch to disallow the use of genericFvPatchField.
virtual void operator+=(const fvPatchField< Type > &)
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
bool overridesConstraint() const
Return true if this overrides the underlying constraint type.
const DimensionedField< Type, fvMesh > & internalField() const
Return dimensioned internal field reference.
const fvPatch & patch() const
Return patch.
virtual bool assignable() const
Return true if the value of the patch field.
virtual void operator/=(const fvPatchField< scalar > &)
bool updated() const
Return true if the boundary condition has already been updated.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
virtual ~fvPatchField()
Destructor.
virtual void map(const fvPatchField< Type > &, const fieldMapper &)
Map the given fvPatchField onto this fvPatchField.
void check(const fvPatchField< Type > &) const
Check fvPatchField<Type> against given fvPatchField<Type>
static const word & calculatedType()
Return the type of the calculated for of fvPatchField.
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Registry of regIOobjects.
Specialisation of fvPatchField which creates the underlying fvPatchField as a slice of the given comp...
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.
Include the header files for all the primitive types that Fields are instantiated for.
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.