40#ifndef Foam_fvFieldDecomposer_H
41#define Foam_fvFieldDecomposer_H
60class fvFieldDecomposer
86 const label addressingOffset
94 return directAddressing_.size();
110 return directAddressing_;
118 class processorVolPatchFieldDecomposer
148 return directAddressing_.size();
164 return directAddressing_;
191 return addressing_.size();
237 processorVolPatchFieldDecomposerPtrs_;
240 processorSurfacePatchFieldDecomposerPtrs_;
248 fvFieldDecomposer(
const fvFieldDecomposer&) =
delete;
251 void operator=(
const fvFieldDecomposer&) =
delete;
276 const fvMesh& completeMesh,
339 const
bool allowUnknownPatchFields = false
351 template<class GeoField>
363 std::unique_ptr<privateCache> cache_;
404 void decomposeAllFields
406 const fvFieldDecomposer& decomposer,
419 #include "fvFieldDecomposer.txx"
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
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...
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
bool empty() const noexcept
No fields.
~fieldsCache()
Destructor.
fieldsCache()
Default construct.
void readAllFields(const fvMesh &mesh, const IOobjectList &objects)
Read all fields given mesh and objects.
void decomposeAllFields(const fvFieldDecomposer &decomposer, bool report=false) const
Decompose and write all fields.
label size() const noexcept
Total number of fields.
bool hasUnmapped() const noexcept
Are there 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 labelUList &addressingSlice, const label addressingOffset)
Construct given addressing.
Processor patch field decomposer class. Surface field is assumed.
bool hasUnmapped() const noexcept
Are there 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.
processorSurfacePatchFieldDecomposer(const labelUList &addressingSlice)
Construct given addressing.
bool hasUnmapped() const noexcept
Are there unmapped values.
processorVolPatchFieldDecomposer(const labelUList &faceOwner, const labelUList &faceNeigbour, const labelUList &addressingSlice)
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.
processorVolPatchFieldDecomposer(const polyMesh &mesh, const labelUList &addressingSlice)
Construct given addressing from complete mesh.
Finite Volume volume and surface field decomposer.
tmp< DimensionedField< Type, volMesh > > decomposeField(const DimensionedField< Type, volMesh > &field) const
Decompose internal field.
fvFieldDecomposer(const UList< labelRange > &boundaryRanges, const labelUList &faceOwner, const labelUList &faceNeigbour, const fvMesh &procMesh, const labelUList &faceAddressing, const labelUList &cellAddressing, const labelUList &boundaryAddressing)
Construct from components without the complete mesh.
void decomposeFields(const UPtrList< GeoField > &fields) const
Decompose list of fields.
fvFieldDecomposer(const fvMesh &completeMesh, const fvMesh &procMesh, const labelUList &faceAddressing, const labelUList &cellAddressing, const labelUList &boundaryAddressing)
Construct from components using information from the complete mesh.
bool empty() const noexcept
True if no mappers have been allocated.
void reset(const fvMesh &completeMesh)
Reset mappers using information from the complete mesh.
~fvFieldDecomposer()=default
Destructor.
static int verbose_
Output verbosity when writing.
void clear()
Remove all mappers.
fvFieldDecomposer(Foam::zero, const fvMesh &procMesh, const labelUList &faceAddressing, const labelUList &cellAddressing, const labelUList &boundaryAddressing)
Construct without mappers, added later with reset().
Mesh data needed to do the Finite Volume discretisation.
A FieldMapper for finite-volume patch fields.
fvPatchFieldMapper()=default
Default construct.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
A range or interval of labels defined by a start and a size.
Mesh consisting of general polyhedral cells.
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
Mesh data needed to do the Finite Volume discretisation.
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< label > labelUList
A UList of labels.
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields