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 <<
"Unsuported 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.
#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.
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.
To & refCast(From &r)
Reference type cast template function.
void size(const label)
Override size to be inconsistent with allocated storage.
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
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.
wordList types() const
Return a list of the patch types.
Boundary boundaryInternalField() const
Return BoundaryField of the cell values neighbouring.
label size() const
Return number of elements in list.
lduInterfaceFieldPtrsList scalarInterfaces() const
Return a list of pointers for each patch field with only those.
void writeEntry(const word &keyword, Ostream &os) const
Write boundary field as dictionary entry.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
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.
bool set(const label) const
Is element set.
points setSize(newPointi)
const dimensionedScalar e
Elementary charge.
A class for handling words, derived from string.
const keyType & keyword() const
Return keyword.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
const const_reverse_iterator & rend() const
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
errorManip< error > abort(error &err)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
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.
Intrusive doubly-linked list.
word name(const complex &)
Return a string representation of a complex.
const T & operator[](const label) const
Return element const reference.
static commsTypes defaultCommsType
Default commsType.
static bool & parRun()
Is this a parallel run?
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
#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...
LduInterfaceFieldPtrsList< Type > interfaces() const
Return a list of pointers for each patch field with only those.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const_reverse_iterator rbegin() const
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.
tmp< DimensionedField< Type, GeoMesh > > clone() const
Clone.
virtual bool isDict() const
Return true if this entry is a dictionary.
bool isPattern() const
Should be treated as a match rather than a literal string.
A keyword and a list of tokens is an 'entry'.
label size() const
Return the number of elements in the UPtrList.
#define InfoInFunction
Report an information message using Foam::Info.