47 #ifndef Foam_fvsPatchField_H 48 #define Foam_fvsPatchField_H 62 class fvPatchFieldMapper;
65 template<
class Type>
class fvsPatchField;
66 template<
class Type>
class calculatedFvsPatchField;
69 Ostream& operator<<(Ostream&, const fvsPatchField<Type>&);
270 (dynamic_cast<const fvsPatchFieldType&>(ptf),
p, iF, m)
372 virtual tmp<fvsPatchField<Type>>
clone 374 const DimensionedField<Type, surfaceMesh>& iF
377 return tmp<fvsPatchField<Type>>
::New(*
this, iF);
386 static tmp<fvsPatchField<Type>>
New 388 const word& patchFieldType,
390 const DimensionedField<Type, surfaceMesh>&
399 const word& patchFieldType,
400 const word& actualPatchType,
433 template<
class Type2>
452 return internalField_;
458 return internalField_;
467 const fvPatchFieldMapper&
473 const fvsPatchField<Type>&,
515 virtual void write(Ostream&
os)
const;
518 void check(
const fvsPatchField<Type>&)
const;
523 virtual void operator=(
const UList<Type>&);
525 virtual void operator=(
const fvsPatchField<Type>&);
526 virtual void operator+=(
const fvsPatchField<Type>&);
527 virtual void operator-=(
const fvsPatchField<Type>&);
528 virtual void operator*=(
const fvsPatchField<scalar>&);
529 virtual void operator/=(
const fvsPatchField<scalar>&);
534 virtual void operator*=(
const Field<scalar>&);
535 virtual void operator/=(
const Field<scalar>&);
virtual void operator*=(const fvsPatchField< scalar > &)
void setManipulated(bool state) noexcept
Set matrix manipulated state. This is a no-op for fvsPatchField.
static const word & emptyType() noexcept
The type name for empty patch fields.
"blocking" : (MPI_Bsend, MPI_Recv)
virtual ~fvsPatchField()=default
Destructor.
const DimensionedField< Type, surfaceMesh > & internalField() const noexcept
Return const-reference to the dimensioned internal field.
virtual void evaluateLocal(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field after a local operation (e.g. *=)
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
commsTypes
Communications types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field.
const Field< Type > & primitiveField() const noexcept
Return const-reference to the internal field values.
static int disallowGenericPatchField
Debug switch to disallow the use of generic fvsPatchField.
virtual void operator==(const fvsPatchField< Type > &)
bool operator!=(const fvsPatchField< Type > &) const =delete
TypeName("fvsPatchField")
Runtime type information.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
const objectRegistry & db() const
The associated objectRegistry.
void writeEntry(const word &keyword, Ostream &os) const
Write the field as a dictionary entry.
static const word & calculatedType() noexcept
The type name for calculated patch fields.
const fvPatch & patch() const noexcept
Return the patch.
static tmp< fvsPatchField< Type > > NewCalculatedType(const fvPatch &)
Return a pointer to a new calculatedFvsPatchField created on.
DimensionedField< Type, surfaceMesh > Internal
The internal field type associated with the patch field.
calculatedFvsPatchField< Type > Calculated
Type for a calculated patch.
const word calculatedType
A calculated patch field type.
bool readValueEntry(const dictionary &dict, IOobjectOption::readOption readOpt=IOobjectOption::LAZY_READ)
Read the "value" entry into *this.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
virtual void operator/=(const fvsPatchField< scalar > &)
Generic templated field type.
A class for handling words, derived from Foam::string.
void check(const fvsPatchField< Type > &) const
Check against given patch field.
A FieldMapper for finite-volume patch fields.
declareRunTimeSelectionTable(tmp, fvsPatchField, patch,(const fvPatch &p, const DimensionedField< Type, surfaceMesh > &iF),(p, iF))
fvsPatchFieldBase(const fvPatch &p)
Construct from patch.
fvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
virtual void readDict(const dictionary &dict)
Read dictionary entries.
void checkPatch(const fvsPatchFieldBase &rhs) const
Check that patches are identical.
virtual void initEvaluateLocal(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Initialise the evaluation of the patch field after a local.
Macros for creating fvsPatchField types.
virtual void operator-=(const fvsPatchField< Type > &)
fvPatch Patch
The patch type for the patch field.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual ~fvsPatchFieldBase()=default
Destructor.
const word emptyType
An empty patch field type.
OBJstream os(runTime.globalPath()/outputName)
virtual void rmap(const fvsPatchField< Type > &, const labelList &)
Reverse map the given fvsPatchField onto this fvsPatchField.
virtual bool coupled() const
True if the patch field is coupled.
virtual void write(Ostream &os) const
Write.
Template invariant parts for fvsPatchField.
virtual void operator+=(const fvsPatchField< Type > &)
bool manipulatedMatrix() const noexcept
True if the matrix has already been manipulated.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
A simple container of IOobject preferences. Can also be used for general handling of read/no-read/rea...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual void operator=(const UList< Type > &)
void setUpdated(bool state) noexcept
Set updated state. This is a no-op for fvsPatchField.
Reading is optional [identical to READ_IF_PRESENT].
Foam::calculatedFvsPatchField.
List< label > labelList
A List of labels.
A class for managing temporary objects.
Registry of regIOobjects.
bool updated() const noexcept
True if the boundary condition has already been updated. This is always true for fvsPatchField.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
virtual bool fixesValue() const
True if the patch field fixes a value.
virtual tmp< fvsPatchField< Type > > clone() const
Construct and return a clone.
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.
readOption
Enumeration defining read preferences.