48 #ifndef Foam_fvPatchField_H 49 #define Foam_fvPatchField_H 72 Ostream& operator<<(Ostream&, const fvPatchField<Type>&);
93 bool manipulatedMatrix_;
125 manipulatedMatrix_ = state;
248 return manipulatedMatrix_;
261 bool old(useImplicit_);
359 (dynamic_cast<const fvPatchFieldType&>(ptf),
p, iF, m)
472 virtual tmp<fvPatchField<Type>>
clone 474 const DimensionedField<Type, volMesh>& iF
477 return tmp<fvPatchField<Type>>
479 new fvPatchField<Type>(*
this, iF)
487 template<
class DerivedPatchField,
class... Args>
488 static tmp<fvPatchField<Type>>
Clone 490 const DerivedPatchField& pf,
494 return tmp<fvPatchField<Type>>
496 new DerivedPatchField(pf, std::forward<Args>(
args)...)
503 static tmp<fvPatchField<Type>>
New 505 const word& patchFieldType,
507 const DimensionedField<Type, volMesh>&
514 static tmp<fvPatchField<Type>>
New 516 const word& patchFieldType,
517 const word& actualPatchType,
519 const DimensionedField<Type, volMesh>&
524 static tmp<fvPatchField<Type>>
New 550 template<
class AnyType>
568 return internalField_;
574 return internalField_;
670 const tmp<Field<scalar>>&
681 const tmp<Field<scalar>>&
735 fvMatrix<Type>& matrix,
742 fvMatrix<Type>& matrix,
static const word & zeroGradientType() noexcept
The type name for zeroGradient patch fields.
bool readValueEntry(const dictionary &dict, IOobjectOption::readOption readOpt=IOobjectOption::LAZY_READ)
Read the "value" entry into *this.
virtual void initEvaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Initialise the evaluation of the patch field.
virtual bool coupled() const
True if the patch field is coupled.
const objectRegistry & db() const
The associated objectRegistry.
const word zeroGradientType
A zeroGradient patch field 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))
commsTypes
Communications types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const fvPatch & patch() const noexcept
Return the patch.
static const word & emptyType() noexcept
The type name for empty patch fields.
virtual ~fvPatchField()=default
Destructor.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Evaluate the patch field, sets updated() to false.
virtual void operator*=(const fvPatchField< scalar > &)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
void extrapolateInternal()
Assign the patch field from the internal field.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
void writeEntry(const word &keyword, Ostream &os) const
Write the field as a dictionary entry.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Template invariant parts for fvPatchField.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
virtual void write(Ostream &) const
Write.
virtual void readDict(const dictionary &dict)
Read dictionary entries.
static tmp< fvPatchField< Type > > NewCalculatedType(const fvPatch &p)
Return a pointer to a new calculatedFvPatchField created on.
virtual void operator==(const fvPatchField< Type > &)
bool useImplicit() const noexcept
Use implicit formulation for coupled patches only.
const word calculatedType
A calculated patch field type.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
bool manipulatedMatrix() const noexcept
True if the matrix has already been manipulated.
Mesh data needed to do the Finite Volume discretisation.
Macros for creating fvPatchField types.
bool updated() const noexcept
True if the boundary condition has already been updated.
Generic templated field type.
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
bool operator!=(const fvPatchField< Type > &) const =delete
fvPatch Patch
The patch type for the patch field.
virtual void operator/=(const fvPatchField< scalar > &)
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
A FieldMapper for finite-volume patch fields.
void setUpdated(bool state) noexcept
Set updated state.
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual bool assignable() const
True if the value of the patch field is altered by assignment.
virtual void initEvaluateLocal(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Initialise the evaluation of the patch field after a local.
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.
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.
const Field< Type > & primitiveField() const noexcept
Return const-reference to the internal field values.
void check(const fvPatchField< Type > &) const
Check against given patch field.
fvPatchFieldBase(const fvPatch &p)
Construct from patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void operator-=(const fvPatchField< Type > &)
static int disallowGenericPatchField
Debug switch to disallow the use of generic fvPatchField.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch.
const word emptyType
An empty patch field type.
OBJstream os(runTime.globalPath()/outputName)
virtual void operator+=(const fvPatchField< Type > &)
virtual ~fvPatchFieldBase()=default
Destructor.
const word & patchType() const noexcept
The optional patch type.
calculatedFvPatchField< Type > Calculated
Type for a calculated patch.
Type value_type
The value_type for the patch field.
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 bool fixesValue() const
True if the patch field fixes a value.
virtual void operator=(const UList< Type > &)
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...
static const word & calculatedType() noexcept
The type name for calculated patch fields.
const DimensionedField< Type, volMesh > & internalField() const noexcept
Return const-reference to the dimensioned internal field.
Reading is optional [identical to READ_IF_PRESENT].
virtual void updateWeightedCoeffs(const scalarField &weights)
Update the coefficients associated with the patch field.
A class for managing temporary objects.
void checkPatch(const fvPatchFieldBase &rhs) const
Check that patches are identical.
Registry of regIOobjects.
"buffered" : (MPI_Bsend, MPI_Recv)
static const word & extrapolatedCalculatedType() noexcept
The type name for extrapolatedCalculated patch fields combines zero-gradient and calculated.
Foam::argList args(argc, argv)
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
TypeName("fvPatchField")
Runtime type information.
const word extrapolatedCalculatedType
A combined zero-gradient and calculated patch field type.
fvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
void setManipulated(bool state) noexcept
Set matrix manipulated state.
virtual void evaluateLocal(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Evaluate the patch field after a local operation (e.g. *=)
static tmp< fvPatchField< Type > > New(const word &patchFieldType, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.
virtual tmp< fvPatchField< Type > > clone() const
Clone patch field with its own internal field reference.
DimensionedField< Type, volMesh > Internal
The internal field type associated with the patch field.
readOption
Enumeration defining read preferences.