55 cellProcAddressing_[proci]
65 procFields[0].dimensions(),
95 procMeshes_[proci].time().timeName(),
106 return reconstructFvVolumeInternalField
110 fieldIoObject.
name(),
111 mesh_.time().timeName(),
144 cellProcAddressing_[proci]
151 const label curBPatch = boundaryProcAddressing_[proci][
patchi];
155 procField.
mesh().boundary()[
patchi].patchSlice
157 faceProcAddressing_[proci]
165 if (!patchFields(curBPatch))
173 mesh_.boundary()[curBPatch],
177 mesh_.boundary()[curBPatch].size()
183 const label curPatchStart =
184 mesh_.boundaryMesh()[curBPatch].start();
194 <<
"Processor " << proci
198 <<
" originates from reversed face since " 205 reverseAddressing[facei] = cp[facei] - 1 - curPatchStart;
209 patchFields[curBPatch].rmap
226 label curF = cp[facei] - 1;
229 if (curF >= mesh_.nInternalFaces())
231 label curBPatch = mesh_.boundaryMesh().whichPatch(curF);
233 if (!patchFields(curBPatch))
240 mesh_.boundary()[curBPatch].type(),
241 mesh_.boundary()[curBPatch],
250 [curBPatch].whichFace(curF);
252 patchFields[curBPatch][curPatchFace] =
265 isType<emptyFvPatch>(mesh_.boundary()[
patchi])
291 procFields[0].dimensions(),
312 forAll(procMeshes_, proci)
321 fieldIoObject.
name(),
322 procMeshes_[proci].time().timeName(),
332 return reconstructFvVolumeField
336 fieldIoObject.
name(),
337 mesh_.time().timeName(),
362 forAll(procMeshes_, proci)
378 labelList curAddr(procInternalField.size());
380 forAll(procInternalField, addrI)
382 curAddr[addrI] =
mag(faceMap[addrI])-1;
383 if (faceMap[addrI] < 0)
385 procInternalField[addrI] = -procInternalField[addrI];
390 internalField.rmap(procInternalField, curAddr);
397 const label curBPatch = boundaryProcAddressing_[proci][
patchi];
401 procMeshes_[proci].boundary()[
patchi].patchSlice
403 faceProcAddressing_[proci]
411 if (!patchFields(curBPatch))
419 mesh_.boundary()[curBPatch],
423 mesh_.boundary()[curBPatch].size()
429 const label curPatchStart =
430 mesh_.boundaryMesh()[curBPatch].start();
438 reverseAddressing[facei] = cp[facei] - 1 - curPatchStart;
441 patchFields[curBPatch].rmap
456 label curF = cp[facei] - 1;
462 if (curF >= mesh_.nInternalFaces())
465 mesh_.boundaryMesh().whichPatch(curF);
467 if (!patchFields(curBPatch))
474 mesh_.boundary()[curBPatch].type(),
475 mesh_.boundary()[curBPatch],
485 [curBPatch].whichFace(curF);
487 patchFields[curBPatch][curPatchFace] =
493 internalField[curF] = curProcPatch[facei];
506 isType<emptyFvPatch>(mesh_.boundary()[
patchi])
532 procFields[0].dimensions(),
553 forAll(procMeshes_, proci)
562 fieldIoObject.
name(),
563 procMeshes_[proci].time().timeName(),
573 return reconstructFvSurfaceField
577 fieldIoObject.
name(),
578 mesh_.time().timeName(),
601 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
607 selectedFields.
empty()
608 || selectedFields.
found(fieldIter()->
name())
611 Info<<
" " << fieldIter()->name() <<
endl;
613 reconstructFvVolumeInternalField<Type>(*fieldIter())().
write();
630 const word& fieldClassName =
637 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
643 selectedFields.
empty()
644 || selectedFields.
found(fieldIter()->
name())
647 Info<<
" " << fieldIter()->name() <<
endl;
649 reconstructFvVolumeField<Type>(*fieldIter())().
write();
666 const word& fieldClassName =
673 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
679 selectedFields.
empty()
680 || selectedFields.
found(fieldIter()->
name())
683 Info<<
" " << fieldIter()->name() <<
endl;
685 reconstructFvSurfaceField<Type>(*fieldIter())().
write();
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > reconstructFvSurfaceField(const IOobject &fieldIoObject, const PtrList< GeometricField< Type, fvsPatchField, surfaceMesh >> &) const
Reconstruct surface field.
A HashTable with keys but without contents.
IOobjectList lookupClass(const word &className) const
Return the list for all IOobjects of a given class.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
List of IOobjects with searching and retrieving facilities.
errorManipArg< error, int > exit(error &err, const int errNo=1)
tmp< DimensionedField< Type, volMesh > > reconstructFvVolumeInternalField(const IOobject &fieldIoObject, const PtrList< DimensionedField< Type, volMesh >> &procFields) const
Reconstruct volume internal field.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
void reconstructFvSurfaceFields(const IOobjectList &objects, const HashSet< word > &selectedFields)
Read, reconstruct and write all/selected surface fields.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
Generic GeometricField class.
label size() const
Return number of elements in table.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
A List obtained as a section of another List.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
tmp< GeometricField< Type, fvPatchField, volMesh > > reconstructFvVolumeField(const IOobject &fieldIoObject, const PtrList< GeometricField< Type, fvPatchField, volMesh >> &) const
Reconstruct volume field.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
bool empty() const
Return true if the hash table is empty.
bool found(const Key &) const
Return true if hashedEntry is found in table.
const Field< Type > & field() const
const volScalarField & cp
Mapper for sizing only - does not do any actual mapping.
word name(const complex &)
Return a string representation of a complex.
label size() const
Return the number of elements in the UList.
void rmap(const UList< Type > &mapF, const labelUList &mapAddressing)
1 to 1 reverse-map from the given field
Foam::emptyFvsPatchField.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
const Mesh & mesh() const
Return mesh.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual Ostream & write(const token &)=0
Write next token to stream.
This boundary condition provides an 'empty' condition for reduced dimensions cases, i.e. 1- and 2-D geometries. Apply this condition to patches whose normal is aligned to geometric directions that do not constitue solution directions.
void reconstructFvVolumeFields(const IOobjectList &objects, const HashSet< word > &selectedFields)
Read, reconstruct and write all/selected volume fields.
A class for managing temporary objects.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
void reconstructFvVolumeInternalFields(const IOobjectList &objects, const HashSet< word > &selectedFields)
Read, reconstruct and write all/selected volume internal fields.
const word & name() const
Return name.