32 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
36 const BoundaryMesh& bmesh,
37 const DimensionedField<Type, GeoMesh>& field,
38 const word& patchFieldType
41 FieldField<PatchField, Type>(bmesh.size()),
46 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
47 "GeometricBoundaryField::"
48 "GeometricBoundaryField(const BoundaryMesh&, "
49 "const Field<Type>&, const word&)"
69 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
73 const BoundaryMesh& bmesh,
74 const DimensionedField<Type, GeoMesh>& field,
78 FieldField<PatchField, Type>(bmesh.size()),
83 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
84 "GeometricBoundaryField::"
85 "GeometricBoundaryField(const BoundaryMesh&, "
86 "const Field<Type>&, const wordList&)"
90 if (patchFieldTypes.size() != this->size())
94 "GeometricField<Type, PatchField, GeoMesh>::"
95 "GeometricBoundaryField::"
96 "GeometricBoundaryField(const BoundaryMesh&, "
97 "const Field<Type>&, const wordList&)"
98 ) <<
"Incorrect number of patch type specifications given" <<
nl
99 <<
" Number of patches in mesh = " << bmesh.size()
100 <<
" number of patch type specifications = "
101 << patchFieldTypes.size()
110 PatchField<Type>::New
121 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
125 const BoundaryMesh& bmesh,
126 const DimensionedField<Type, GeoMesh>& field,
127 const PtrList<PatchField<Type> >& ptfl
130 FieldField<PatchField, Type>(bmesh.size()),
135 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
136 "GeometricBoundaryField::"
137 "GeometricBoundaryField(const BoundaryMesh&, "
138 "const Field<Type>&, const PatchField<Type>List&)"
149 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
153 const DimensionedField<Type, GeoMesh>& field,
154 const typename GeometricField<Type, PatchField, GeoMesh>::
155 GeometricBoundaryField& btf
158 FieldField<PatchField, Type>(btf.size()),
163 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
164 "GeometricBoundaryField::"
165 "GeometricBoundaryField(const GeometricBoundaryField<Type, "
166 "PatchField, BoundaryMesh>&)"
182 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
186 const typename GeometricField<Type, PatchField, GeoMesh>::
187 GeometricBoundaryField& btf
190 FieldField<PatchField, Type>(btf),
195 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
196 "GeometricBoundaryField::"
197 "GeometricBoundaryField(const GeometricBoundaryField<Type, "
198 "PatchField, BoundaryMesh>&)"
204 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
208 const BoundaryMesh& bmesh,
209 const DimensionedField<Type, GeoMesh>& field,
210 const dictionary& dict
213 FieldField<PatchField, Type>(bmesh.size()),
218 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
219 "GeometricBoundaryField::"
220 "GeometricBoundaryField"
221 "(const BoundaryMesh&, const Field<Type>&, const dictionary&)"
227 if (bmesh_[
patchi].
type() != emptyPolyPatch::typeName)
232 PatchField<Type>::New
236 dict.subDict(bmesh_[patchi].name())
245 PatchField<Type>::New
247 emptyPolyPatch::typeName,
259 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
265 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
266 "GeometricBoundaryField::"
267 "updateCoeffs()" <<
endl;
272 this->operator[](
patchi).updateCoeffs();
277 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
283 Info<<
"GeometricField<Type, PatchField, GeoMesh>::"
284 "GeometricBoundaryField::"
285 "evaluate()" <<
endl;
314 bmesh_.mesh().globalData().patchSchedule();
316 forAll(patchSchedule, patchEvali)
318 if (patchSchedule[patchEvali].init)
320 this->operator[](patchSchedule[patchEvali].patch)
325 this->operator[](patchSchedule[patchEvali].patch)
333 <<
"Unsuported communications type "
340 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
358 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
364 BoundaryInternalField(*
this);
368 BoundaryInternalField[
patchi] ==
369 this->operator[](
patchi).patchInternalField();
372 return BoundaryInternalField;
376 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
385 if (isA<lduInterfaceField>(this->
operator[](
patchi)))
390 &refCast<const lduInterfaceField>(this->
operator[](
patchi))
399 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
418 "GeometricField<Type, PatchField, GeoMesh>::GeometricBoundaryField::"
419 "writeEntry(const word& keyword, Ostream& os) const"
426 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
438 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
449 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
461 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
471 this->operator[](patchI) == bf[patchI];
476 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
485 this->operator[](patchI) == ptff[patchI];
490 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
499 this->operator[](patchI) == t;
506 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
511 GeometricBoundaryField& bf
514 os << static_cast<const FieldField<PatchField, Type>&>(bf);