31 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
50 label nUnset = this->size();
56 if (iter().isDict() && !iter().keyword().isPattern())
58 label patchi = bmesh_.findPatchID(iter().keyword());
101 const labelList patchIDs = bmesh_.findIndices
111 if (!this->
set(patchi))
135 if (bmesh_[
patchi].
type() == emptyPolyPatch::typeName)
142 emptyPolyPatch::typeName,
161 dict.
subDict(bmesh_[patchi].name())
175 if (bmesh_[
patchi].
type() == cyclicPolyPatch::typeName)
180 ) <<
"Cannot find patchField entry for cyclic " 182 <<
"Is your field uptodate with split cyclics?" <<
endl 183 <<
"Run foamUpgradeCyclics to convert mesh and fields" 191 ) <<
"Cannot find patchField entry for " 201 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
213 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
219 const word& patchFieldType
246 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
266 patchFieldTypes.
size() != this->size()
267 || (constraintTypes.
size() && (constraintTypes.
size() != this->size()))
271 <<
"Incorrect number of patch type specifications given" <<
nl 272 <<
" Number of patches in mesh = " << bmesh.size()
273 <<
" number of patch type specifications = " 274 << patchFieldTypes.
size()
278 if (constraintTypes.
size())
288 constraintTypes[patchi],
314 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
320 const PtrList<PatchField<Type>>& ptfl
338 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
362 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
380 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
392 readField(field, dict);
398 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
414 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
454 bmesh_.mesh().globalData().patchSchedule();
456 forAll(patchSchedule, patchEvali)
458 if (patchSchedule[patchEvali].init)
460 this->
operator[](patchSchedule[patchEvali].patch)
465 this->
operator[](patchSchedule[patchEvali].patch)
473 <<
"Unsupported communications type " 480 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
498 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
504 BoundaryInternalField(*
this);
508 BoundaryInternalField[
patchi] ==
512 return BoundaryInternalField;
516 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
542 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
551 if (isA<lduInterfaceField>(this->
operator[](
patchi)))
556 &refCast<const lduInterfaceField>
568 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
587 "GeometricField<Type, PatchField, GeoMesh>::Boundary::" 588 "writeEntry(const word& keyword, Ostream& os) const" 595 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
607 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
618 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
629 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
644 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
658 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
674 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
682 os << static_cast<const FieldField<PatchField, Type>&>(bf);
bool isA(const Type &t)
Check if a dynamic_cast to typeid is possible.
const_reverse_iterator rbegin() const
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
#define forAll(list, i)
Loop across all elements in list.
Boundary(const BoundaryMesh &)
Construct from a BoundaryMesh.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & indent(Ostream &os)
Indent stream.
const keyType & keyword() const
Return keyword.
GeoMesh::BoundaryMesh BoundaryMesh
Type of boundary mesh on which this.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
void writeEntry(const word &keyword, Ostream &os) const
Write boundary field as dictionary entry.
To & refCast(From &r)
Reference type cast template function.
void size(const label)
Override size to be inconsistent with allocated storage.
const T & operator[](const label) const
Return element const reference.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void evaluate()
Evaluate boundary conditions.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
virtual const dictionary & dict() const =0
Return dictionary if this entry is a dictionary.
static label nRequests()
Get number of outstanding requests.
Generic GeometricField class.
LduInterfaceFieldPtrsList< Type > interfaces() const
Return a list of pointers for each patch field with only those.
wordList types() const
Return a list of the patch types.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
void readField(const Internal &field, const dictionary &dict)
Read the boundary field.
void operator=(const FieldField< Field, Type > &)
void updateCoeffs()
Update the boundary condition coefficients.
points setSize(newPointi)
const dimensionedScalar e
Elementary charge.
A class for handling words, derived from string.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
errorManip< error > abort(error &err)
virtual bool isDict() const
Return true if this entry is a dictionary.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const const_reverse_iterator & rend() const
bool set(const label) const
Is element set.
Ostream & decrIndent(Ostream &os)
Decrement the indent level.
static const NamedEnum< commsTypes, 3 > commsTypeNames
static void waitRequests(const label start=0)
Wait until all requests (from start onwards) have finished.
word name(const complex &)
Return a string representation of a complex.
An STL-conforming const_reverse_iterator.
label size() const
Return the number of elements in the UPtrList.
static commsTypes defaultCommsType
Default commsType.
static bool & parRun()
Is this a parallel run?
tmp< GeometricField< Type, PatchField, GeoMesh > > clone() const
Clone.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
lduInterfaceFieldPtrsList scalarInterfaces() const
Return a list of pointers for each patch field with only those.
friend Ostream & operator(Ostream &, const FieldField< PatchField, Type > &)
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Ostream & incrIndent(Ostream &os)
Increment the indent level.
Boundary boundaryInternalField() const
Return BoundaryField of the cell values neighbouring.
A keyword and a list of tokens is an 'entry'.
bool isPattern() const
Should be treated as a match rather than a literal string.
#define InfoInFunction
Report an information message using Foam::Info.