55 cellProcAddressing_[proci]
65 procFields[0].dimensions(),
95 procMeshes_[proci].time().timeName(),
107 return reconstructFvVolumeInternalField
111 fieldIoObject.
name(),
112 mesh_.time().timeName(),
146 cellProcAddressing_[proci]
153 const label curBPatch = boundaryProcAddressing_[proci][
patchi];
157 procField.
mesh().boundary()[
patchi].patchSlice
159 faceProcAddressing_[proci]
167 if (!patchFields(curBPatch))
175 mesh_.boundary()[curBPatch],
179 mesh_.boundary()[curBPatch].size()
185 const label curPatchStart =
186 mesh_.boundaryMesh()[curBPatch].start();
196 <<
"Processor " << proci
200 <<
" originates from reversed face since " 207 reverseAddressing[facei] = cp[facei] - 1 - curPatchStart;
211 patchFields[curBPatch].rmap
228 label curF = cp[facei] - 1;
231 if (curF >= mesh_.nInternalFaces())
233 label curBPatch = mesh_.boundaryMesh().whichPatch(curF);
235 if (!patchFields(curBPatch))
242 mesh_.boundary()[curBPatch].type(),
243 mesh_.boundary()[curBPatch],
252 [curBPatch].whichFace(curF);
254 patchFields[curBPatch][curPatchFace] =
267 isType<emptyFvPatch>(mesh_.boundary()[
patchi])
293 procFields[0].dimensions(),
314 forAll(procMeshes_, proci)
323 fieldIoObject.
name(),
324 procMeshes_[proci].time().timeName(),
335 return reconstructFvVolumeField
339 fieldIoObject.
name(),
340 mesh_.time().timeName(),
366 forAll(procMeshes_, proci)
384 labelList curAddr(procInternalField.size());
386 forAll(procInternalField, i)
388 curAddr[i] =
mag(faceMap[i]) - 1;
391 procInternalField[i] = -procInternalField[i];
396 internalField.rmap(procInternalField, curAddr);
412 const label curBPatch = boundaryProcAddressing_[proci][
patchi];
416 procMeshes_[proci].boundary()[
patchi].patchSlice
418 faceProcAddressing_[proci]
426 if (!patchFields(curBPatch))
434 mesh_.boundary()[curBPatch],
438 mesh_.boundary()[curBPatch].size()
444 const label curPatchStart =
445 mesh_.boundaryMesh()[curBPatch].start();
453 reverseAddressing[facei] = cp[facei] - 1 - curPatchStart;
456 patchFields[curBPatch].rmap
471 label curF = cp[facei] - 1;
477 if (curF >= mesh_.nInternalFaces())
480 mesh_.boundaryMesh().whichPatch(curF);
482 if (!patchFields(curBPatch))
489 mesh_.boundary()[curBPatch].type(),
490 mesh_.boundary()[curBPatch],
500 [curBPatch].whichFace(curF);
502 patchFields[curBPatch][curPatchFace] =
508 internalField[curF] = curProcPatch[facei];
521 isType<emptyFvPatch>(mesh_.boundary()[
patchi])
547 procFields[0].dimensions(),
568 forAll(procMeshes_, proci)
577 fieldIoObject.
name(),
578 procMeshes_[proci].time().timeName(),
589 return reconstructFvSurfaceField
593 fieldIoObject.
name(),
594 mesh_.time().timeName(),
618 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
624 selectedFields.
empty()
625 || selectedFields.
found(fieldIter()->
name())
628 Info<<
" " << fieldIter()->name() <<
endl;
630 reconstructFvVolumeInternalField<Type>(*fieldIter())().
write();
647 const word& fieldClassName =
654 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
660 selectedFields.
empty()
661 || selectedFields.
found(fieldIter()->
name())
664 Info<<
" " << fieldIter()->name() <<
endl;
666 reconstructFvVolumeField<Type>(*fieldIter())().
write();
683 const word& fieldClassName =
690 Info<<
" Reconstructing " << fieldClassName <<
"s\n" <<
endl;
696 selectedFields.
empty()
697 || selectedFields.
found(fieldIter()->
name())
700 Info<<
" " << fieldIter()->name() <<
endl;
702 reconstructFvSurfaceField<Type>(*fieldIter())().
write();
A HashTable with keys but without contents.
Field< label > labelField
Specialisation of Field<T> for label.
#define forAll(list, i)
Loop across all elements in list.
virtual Ostream & write(const char)=0
Write character.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word & name() const
Return name.
List of IOobjects with searching and retrieving facilities.
tmp< GeometricField< Type, fvPatchField, volMesh > > reconstructFvVolumeField(const IOobject &fieldIoObject, const PtrList< GeometricField< Type, fvPatchField, volMesh >> &) const
Reconstruct volume field.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
void reconstructFvSurfaceFields(const IOobjectList &objects, const HashSet< word > &selectedFields)
Read, reconstruct and write all/selected surface fields.
bool empty() const
Return true if the hash table is empty.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy, recursively if necessary, the source to the destination.
Traits class for primitives.
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.
Info<< "Calculating turbulent flame speed field St\"<< endl;volScalarField St(IOobject("St", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE), flameWrinkling->Xi() *Su);multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
label size() const
Return number of elements in table.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
A List obtained as a section of another List.
bool found(const Key &) const
Return true if hashedEntry is found in table.
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
const Mesh & mesh() const
Return mesh.
Mapper for sizing only - does not do any actual mapping.
const Field< Type > & field() const
word name(const complex &)
Return a string representation of a complex.
IOobjectList lookupClass(const word &className) const
Return the list for all IOobjects of a given class.
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...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
dimensioned< scalar > mag(const dimensioned< Type > &)
tmp< DimensionedField< Type, volMesh > > reconstructFvVolumeInternalField(const IOobject &fieldIoObject, const PtrList< DimensionedField< Type, volMesh >> &procFields) const
Reconstruct volume internal field.
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.
label size() const
Return the number of elements in the UList.
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.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > reconstructFvSurfaceField(const IOobject &fieldIoObject, const PtrList< GeometricField< Type, fvsPatchField, surfaceMesh >> &) const
Reconstruct surface field.