44#ifndef Foam_faFieldDecomposer_H
45#define Foam_faFieldDecomposer_H
64class faFieldDecomposer
77 label sizeBeforeMapping_;
89 const label addressingOffset
97 return directAddressing_.size();
102 return sizeBeforeMapping_;
117 return directAddressing_;
123 class processorAreaPatchFieldDecomposer
129 label sizeBeforeMapping_;
137 const label nTotalFaces,
149 return directAddressing_.size();
154 return sizeBeforeMapping_;
169 return directAddressing_;
175 class processorEdgePatchFieldDecomposer
179 label sizeBeforeMapping_;
197 return addressing_.size();
202 return sizeBeforeMapping_;
247 processorAreaPatchFieldDecomposerPtrs_;
250 processorEdgePatchFieldDecomposerPtrs_;
256 faFieldDecomposer(
const faFieldDecomposer&) =
delete;
259 void operator=(
const faFieldDecomposer&) =
delete;
283 const faMesh& completeMesh,
294 const label nTotalFaces,
325 const label nTotalFaces,
350 template<class GeoField>
360 template<class> class PatchField,
368 const
bool readOldTime
372 template<class Mesh, class GeoField>
394 std::unique_ptr<privateCache> cache_;
441 const bitSet& haveMeshOnProc,
460 const faFieldDecomposer& decomposer,
473 #include "faFieldDecomposer.txx"
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricField class.
List of IOobjects with searching and retrieving facilities. Implemented as a HashTable,...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Mesh data needed to do the Finite Area discretisation.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Mesh data needed to do the Finite Area discretisation.
void readAllFields(const boolUList &haveMeshOnProc, const faMeshSubset *subsetter, const faMesh &mesh, IOobjectList &objects)
Read all fields given mesh and objects. Supports reading/sending fields.
void readAllFields(const bitSet &haveMeshOnProc, const faMeshSubset *subsetter, const faMesh &mesh, IOobjectList &objects)
Read all fields given mesh and objects. Supports reading/sending fields.
~fieldsCache()
Destructor.
fieldsCache()
Default construct.
bool empty() const
No fields.
label size() const
Number of fields.
void readAllFields(const faMesh &mesh, const IOobjectList &objects)
Read all fields given mesh and objects.
void decomposeAllFields(const faFieldDecomposer &decomposer, bool report=false) const
Decompose and write all fields.
virtual label sizeBeforeMapping() const
virtual bool hasUnmapped() const
Any unmapped values?
bool direct() const noexcept
Is it a direct (non-interpolating) mapper?
label size() const noexcept
The size of the mapper.
const labelUList & directAddressing() const noexcept
Return the direct addressing values.
patchFieldDecomposer(const label sizeBeforeMapping, const labelUList &addressingSlice, const label addressingOffset)
Construct given addressing.
virtual label sizeBeforeMapping() const
virtual bool hasUnmapped() const
Any unmapped values?
processorAreaPatchFieldDecomposer(const label nTotalFaces, const labelUList &edgeOwner, const labelUList &edgeNeigbour, const labelUList &addressingSlice, const bitSet &flip)
Construct addressing from details.
bool direct() const noexcept
Is it a direct (non-interpolating) mapper?
label size() const noexcept
The size of the mapper.
const labelUList & directAddressing() const noexcept
Return the direct addressing values.
virtual label sizeBeforeMapping() const
virtual bool hasUnmapped() const
Any unmapped values?
bool direct() const noexcept
Is it a direct (non-interpolating) mapper?
const scalarListList & weights() const noexcept
Return the interpolation weights.
const labelListList & addressing() const noexcept
Return the interpolation addressing.
label size() const noexcept
The size of the mapper.
processorEdgePatchFieldDecomposer(label sizeBeforeMapping, const labelUList &addressingSlice)
Construct given addressing.
Finite Area area and edge field decomposer.
tmp< GeometricField< Type, faPatchField, areaMesh > > decomposeField(const GeometricField< Type, faPatchField, areaMesh > &field) const
Decompose area field.
static void readFields(const typename GeoMesh::Mesh &mesh, const IOobjectList &objects, PtrList< GeometricField< Type, PatchField, GeoMesh > > &fields, const bool readOldTime)
Read the fields and store on the pointer list.
void decomposeFields(const PtrList< GeoField > &fields) const
bool empty() const noexcept
True if no mappers have been allocated.
~faFieldDecomposer()=default
Destructor.
faFieldDecomposer(Foam::zero, const faMesh &procMesh, const labelUList &edgeAddressing, const labelUList &faceAddressing, const labelUList &boundaryAddressing)
Construct without mappers, added later with reset().
void reset(const faMesh &completeMesh)
Reset mappers using information from the complete mesh.
faFieldDecomposer(const label nTotalFaces, const UList< labelRange > &boundaryRanges, const labelUList &edgeOwner, const labelUList &edgeNeigbour, const faMesh &procMesh, const labelUList &edgeAddressing, const labelUList &faceAddressing, const labelUList &boundaryAddressing)
Construct from components without the complete mesh.
void clear()
Remove all mappers.
faFieldDecomposer(const faMesh &completeMesh, const faMesh &procMesh, const labelUList &edgeAddressing, const labelUList &faceAddressing, const labelUList &boundaryAddressing)
Construct from components using information from the complete mesh.
Holds a reference to the original mesh (the baseMesh) and optionally to a subset of that mesh (the su...
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
A FieldMapper for finite-area patch fields.
faPatchFieldMapper()=default
Default construct.
faPatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cover...
faePatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cove...
A range or interval of labels defined by a start and a size.
A class for managing temporary objects.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
List< scalarList > scalarListList
List of scalarList.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
UList< bool > boolUList
A UList of bools.
UList< label > labelUList
A UList of labels.
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields