35 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
58 if (iter().isDict() && !iter().keyword().isPattern())
60 const label patchi = bmesh_.findIndex(iter().keyword());
81 if (iter().isDict() && !iter().keyword().isPattern())
84 bmesh_.findIndices(
wordRe(iter().keyword()),
true);
106 if (bmesh_[
patchi].
type() == emptyPolyPatch::typeName)
108 patchEntries.
set(
patchi, NullObjectPtr<entry>());
151 emptyPolyPatch::typeName,
160 <<
"Cannot find patchField entry for "
169 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
181 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
214 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
234 patchFieldTypes.
size() != this->size()
235 || (constraintTypes.
size() && (constraintTypes.
size() != this->size()))
239 <<
"Incorrect number of patch type specifications given" <<
nl
240 <<
" Number of patches in mesh = " << bmesh.size()
241 <<
" number of patch type specifications = "
242 << patchFieldTypes.
size()
246 if (constraintTypes.
size())
282 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
306 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
329 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
345 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
346 template<
template<
class>
class PrimitiveField2>
371 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
381 this->operator[](
patchi).updateCoeffs();
386 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
425 bmesh_.mesh().globalData().patchSchedule();
427 forAll(patchSchedule, patchEvali)
429 if (patchSchedule[patchEvali].init)
431 this->operator[](patchSchedule[patchEvali].patch)
436 this->operator[](patchSchedule[patchEvali].patch)
444 <<
"Unsupported communications type "
451 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
468 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
478 resultType& result = tresult.
ref();
482 result[
patchi] == this->operator[](
patchi).patchInternalField();
489 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
499 resultType& result = tresult.
ref();
511 if (this->
operator[](patchi).coupled())
530 if (this->
operator[](patchi).coupled())
541 bmesh_.mesh().globalData().patchSchedule();
543 forAll(patchSchedule, patchEvali)
545 if (this->
operator[](patchSchedule[patchEvali].patch).coupled())
547 if (patchSchedule[patchEvali].init)
549 this->operator[](patchSchedule[patchEvali].patch)
554 result[patchSchedule[patchEvali].patch] =
555 this->operator[](patchSchedule[patchEvali].patch)
564 <<
"Unsupported communications type "
573 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
588 this->
operator[](patchi)
598 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
607 if (isA<lduInterfaceField>(this->
operator[](patchi)))
612 &refCast<const lduInterfaceField>
614 this->
operator[](patchi)
624 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
639 if (isA<processorPolyPatch>(pbm[
patchi]))
647 this->
operator[](0).internalField()
660 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
682 "GeometricBoundaryField<Type, GeoMesh, PrimitiveField>::"
683 "writeEntry(const word& keyword, Ostream& os) const"
690 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
698 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
700 operator=(GeometricBoundaryField<Type, GeoMesh, PrimitiveField>&& bf)
706 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
714 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
715 template<
template<
class>
class OtherPatchField>
723 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
731 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
742 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
753 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
754 template<
template<
class>
class OtherPatchField>
765 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
771 this->operator[](
patchi) == t;
778 template<
class Type,
class GeoMesh,
template<
class>
class PrimitiveField>
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
tmp< FieldField< GeoMesh::template PatchField, Type > > clone() const
Clone.
void operator=(const FieldField< Field, Type > &)
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricBoundaryField class.
tmp< GeometricBoundaryField > boundaryNeighbourField() const
Return BoundaryField of the values on the other side of couples.
lduInterfaceFieldPtrsList scalarInterfaces() const
Return a list of pointers for each patch field with only those.
friend class GeometricBoundaryField
Declare friendship with other geometric boundary fields.
void readField(const Internal &field, const dictionary &dict)
Read the boundary field.
wordList types() const
Return a list of the patch field types.
void evaluate()
Evaluate boundary conditions.
LduInterfaceFieldPtrsList< Type > interfaces() const
Return a list of pointers for each patch field with only those.
void operator==(const GeometricBoundaryField &)
Forced assignment to.
void writeEntry(const word &keyword, Ostream &os) const
Write boundary field as dictionary entry.
void updateCoeffs()
Update the boundary condition coefficients.
GeoMesh::BoundaryMesh BoundaryMesh
Type of boundary mesh on which this boundary is instantiated.
tmp< GeometricBoundaryField > boundaryInternalField() const
Return BoundaryField of the cell values neighbouring.
void reset(const GeometricBoundaryField &)
Reset the boundary field contents to the given field.
void operator=(const GeometricBoundaryField &)
Assignment operator.
Generic GeometricField class.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
virtual const fileName & name() const
Return the name of the stream.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
void size(const label)
Override size to be inconsistent with allocated storage.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
bool set(const label) const
Is element set.
An STL-conforming const_reverse_iterator.
static const NamedEnum< commsTypes, 3 > commsTypeNames
static label nRequests()
Get number of outstanding requests.
static void waitRequests(const label start=0)
Wait until all requests (from start onwards) have finished.
static bool & parRun()
Is this a parallel run?
static commsTypes defaultCommsType
Default commsType.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
bool set(const label) const
Is element set.
label size() const
Return the number of elements in the UPtrList.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
const polyMesh & mesh() const
Return the mesh reference.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
A wordRe is a word, but can also have a regular expression for matching words.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define InfoInFunction
Report an information message using Foam::Info.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
errorManipArg< error, int > exit(error &err, const int errNo=1)
Ostream & decrIndent(Ostream &os)
Decrement the indent level.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
To & refCast(From &r)
Reference type cast template function.
Ostream & endl(Ostream &os)
Add newline and flush stream.
errorManip< error > abort(error &err)
Ostream & incrIndent(Ostream &os)
Increment the indent level.
bool isA(const Type &t)
Check if a dynamic_cast to typeid is possible.
word patchFieldType(const PatchField &pf)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
bool isNull(const T &t)
Return true if t is a reference to the nullObject of type T.
Ostream & indent(Ostream &os)
Indent stream.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
points setSize(newPointi)