58 cellProcAddressing_[proci]
66 procFields[0].dimensions(),
70 tfield.ref().oriented() = procFields[0].oriented();
99 procMeshes_[proci].time().timeName(),
109 return reconstructFvVolumeInternalField
113 fieldIoObject.
name(),
114 mesh_.time().timeName(),
147 cellProcAddressing_[proci]
151 forAll(boundaryProcAddressing_[proci], patchi)
154 const label curBPatch = boundaryProcAddressing_[proci][patchi];
158 procField.mesh().boundary()[patchi].patchSlice
160 faceProcAddressing_[proci]
168 if (!patchFields(curBPatch))
176 mesh_.boundary()[curBPatch],
180 mesh_.boundary()[curBPatch].size()
186 const label curPatchStart =
187 mesh_.boundaryMesh()[curBPatch].start();
197 <<
"Processor " << proci
199 << procField.mesh().boundary()[patchi].name()
201 <<
" originates from reversed face since "
208 reverseAddressing[facei] =
cp[facei] - 1 - curPatchStart;
212 patchFields[curBPatch].rmap
229 label curF =
cp[facei] - 1;
232 if (curF >= mesh_.nInternalFaces())
234 label curBPatch = mesh_.boundaryMesh().whichPatch(curF);
236 if (!patchFields(curBPatch))
243 mesh_.boundary()[curBPatch].type(),
244 mesh_.boundary()[curBPatch],
253 [curBPatch].whichFace(curF);
255 patchFields[curBPatch][curPatchFace] =
263 forAll(mesh_.boundary(), patchi)
268 isType<emptyFvPatch>(mesh_.boundary()[patchi])
269 && !patchFields(patchi)
278 mesh_.boundary()[patchi],
292 procFields[0].dimensions(),
297 tfield.ref().oriented() = procFields[0].oriented();
316 forAll(procMeshes_, proci)
325 fieldIoObject.
name(),
326 procMeshes_[proci].time().timeName(),
336 return reconstructFvVolumeField
340 fieldIoObject.
name(),
341 mesh_.time().timeName(),
366 forAll(procMeshes_, proci)
382 labelList curAddr(procInternalField.size());
384 forAll(procInternalField, addrI)
389 procInternalField[addrI] = -procInternalField[addrI];
394 internalField.rmap(procInternalField, curAddr);
398 forAll(boundaryProcAddressing_[proci], patchi)
401 const label curBPatch = boundaryProcAddressing_[proci][patchi];
405 procMeshes_[proci].boundary()[patchi].patchSlice
407 faceProcAddressing_[proci]
415 if (!patchFields(curBPatch))
423 mesh_.boundary()[curBPatch],
427 mesh_.boundary()[curBPatch].size()
433 const label curPatchStart =
434 mesh_.boundaryMesh()[curBPatch].start();
442 reverseAddressing[facei] =
cp[facei] - 1 - curPatchStart;
445 patchFields[curBPatch].rmap
460 label curF =
cp[facei] - 1;
466 if (curF >= mesh_.nInternalFaces())
469 mesh_.boundaryMesh().whichPatch(curF);
471 if (!patchFields(curBPatch))
478 mesh_.boundary()[curBPatch].type(),
479 mesh_.boundary()[curBPatch],
489 [curBPatch].whichFace(curF);
491 patchFields[curBPatch][curPatchFace] =
497 internalField[curF] = curProcPatch[facei];
505 forAll(mesh_.boundary(), patchi)
510 isType<emptyFvPatch>(mesh_.boundary()[patchi])
511 && !patchFields(patchi)
520 mesh_.boundary()[patchi],
534 procFields[0].dimensions(),
539 tfield.ref().oriented() = procFields[0].oriented();
558 forAll(procMeshes_, proci)
567 fieldIoObject.
name(),
568 procMeshes_[proci].time().timeName(),
578 return reconstructFvSurfaceField
582 fieldIoObject.
name(),
583 mesh_.time().timeName(),
603 for (
const word& fieldName : fieldNames)
610 Info<<
" Reconstructing "
611 << fieldType::typeName <<
"s\n" <<
nl;
615 reconstructFvVolumeInternalField<Type>(*io)().
write();
635 for (
const word& fieldName : fieldNames)
642 Info<<
" Reconstructing "
643 << fieldType::typeName <<
"s\n" <<
nl;
647 reconstructFvVolumeField<Type>(*io)().
write();
667 for (
const word& fieldName : fieldNames)
674 Info<<
" Reconstructing "
675 << fieldType::typeName <<
"s\n" <<
nl;
679 reconstructFvSurfaceField<Type>(*io)().
write();
700 selectedFields.empty()
705 return reconstructFvVolumeInternalFields<Type>(objects, fieldNames);
720 selectedFields.empty()
725 return reconstructFvVolumeFields<Type>(objects, fieldNames);
740 selectedFields.empty()
745 return reconstructFvSurfaceFields<Type>(objects, fieldNames);
760 selectedFields.
empty()
765 return reconstructFvVolumeInternalFields<Type>(objects, fieldNames);
780 selectedFields.
empty()
785 return reconstructFvVolumeField<Type>(objects, fieldNames);
800 selectedFields.
empty()
805 return reconstructFvSurfaceFields<Type>(objects, fieldNames);