63 std::move(mappedField)
73 const bool allowUnknownPatchFields
81 forAll(boundaryAddressing_, patchi)
89 procMesh_.boundary()[patchi],
96 tmp<VolFieldType> tresF
103 procMesh_.time().timeName(),
110 Field<Type>(
field.primitiveField(), cellAddressing_),
114 VolFieldType& resF = tresF.ref();
115 resF.oriented() =
field().oriented();
121 typename VolFieldType::Boundary& bf = resF.boundaryFieldRef();
125 if (patchFieldDecomposerPtrs_.set(patchi))
132 field.boundaryField()[boundaryAddressing_[patchi]],
133 procMesh_.boundary()[patchi],
135 patchFieldDecomposerPtrs_[patchi]
139 else if (isA<processorCyclicFvPatch>(procMesh_.boundary()[patchi]))
144 new processorCyclicFvPatchField<Type>
146 procMesh_.boundary()[patchi],
150 field.primitiveField(),
151 processorVolPatchFieldDecomposerPtrs_[patchi]
156 else if (isA<processorFvPatch>(procMesh_.boundary()[patchi]))
161 new processorFvPatchField<Type>
163 procMesh_.boundary()[patchi],
167 field.primitiveField(),
168 processorVolPatchFieldDecomposerPtrs_[patchi]
173 else if (allowUnknownPatchFields)
178 new emptyFvPatchField<Type>
180 procMesh_.boundary()[patchi],
211 procMesh_.nInternalFaces()
220 Field<Type> internalField
222 field.primitiveField(),
231 Field<Type> allFaceField(
field.mesh().nFaces());
235 allFaceField[i] =
field.primitiveField()[i];
240 const Field<Type>&
p =
field.boundaryField()[patchi];
242 const label patchStart =
field.mesh().boundaryMesh()[patchi].start();
246 allFaceField[patchStart + i] =
p[i];
252 PtrList<fvsPatchField<Type>> patchFields(boundaryAddressing_.size());
254 forAll(boundaryAddressing_, patchi)
261 calculatedFvsPatchField<Type>::typeName,
262 procMesh_.boundary()[patchi],
268 tmp<SurfaceFieldType> tresF
275 procMesh_.time().timeName(),
282 Field<Type>(
field.primitiveField(), mapAddr),
286 SurfaceFieldType& resF = tresF.ref();
287 resF.oriented() =
field().oriented();
292 typename SurfaceFieldType::Boundary& bf = resF.boundaryFieldRef();
294 forAll(boundaryAddressing_, patchi)
296 if (patchFieldDecomposerPtrs_.set(patchi))
303 field.boundaryField()[boundaryAddressing_[patchi]],
304 procMesh_.boundary()[patchi],
306 patchFieldDecomposerPtrs_[patchi]
310 else if (isA<processorCyclicFvPatch>(procMesh_.boundary()[patchi]))
315 new processorCyclicFvsPatchField<Type>
317 procMesh_.boundary()[patchi],
322 processorSurfacePatchFieldDecomposerPtrs_[patchi]
327 if (resF.oriented()())
329 bf[patchi] *= faceSign_[patchi];
332 else if (isA<processorFvPatch>(procMesh_.boundary()[patchi]))
337 new processorFvsPatchField<Type>
339 procMesh_.boundary()[patchi],
344 processorSurfacePatchFieldDecomposerPtrs_[patchi]
349 if (resF.oriented()())
351 bf[patchi] *= faceSign_[patchi];
366 template<
class GeoField>