44#ifndef Foam_meshToMesh0_H
45#define Foam_meshToMesh0_H
94 mutable std::unique_ptr<scalarListList> inverseDistanceWeightsPtr_;
97 mutable std::unique_ptr<scalarListList> inverseVolumeWeightsPtr_;
100 mutable std::unique_ptr<labelListList> cellToCellAddressingPtr_;
111 void calcAddressing();
122 void calculateInverseDistanceWeights()
const;
124 void calculateInverseVolumeWeights()
const;
126 void calculateCellToCellAddressing()
const;
138 static const scalar directHitTol;
198 directAddressing_(addr)
210 return directAddressing_.
size();
225 return directAddressing_;
247 return cellAddressing_;
260 template<
class Type,
class CombineOp>
270 template<
class Type,
class CombineOp>
281 template<
class Type,
class CombineOp>
293 template<
class Type,
class CombineOp>
305 template<
class Type,
class CombineOp>
314 template<
class Type,
class CombineOp>
325 template<
class Type,
class CombineOp>
334 template<
class Type,
class CombineOp>
345 template<
class Type,
class CombineOp>
353 template<
class Type,
class CombineOp>
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
A HashTable similar to std::unordered_map.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void size(const label n)
Older name for setAddressableSize.
Mesh data needed to do the Finite Volume discretisation.
A FieldMapper for finite-volume patch fields.
fvPatchFieldMapper()=default
Default construct.
Non-pointer based hierarchical recursive searching.
Patch-field interpolation class.
patchFieldInterpolator(const labelList &addr)
Construct given addressing.
const labelList & directAddressing() const
Return the direct addressing values.
bool hasUnmapped() const
Any unmapped values?
bool direct() const
Is it a direct (non-interpolating) mapper?
virtual ~patchFieldInterpolator()=default
Destructor.
label size() const
The size of the mapper.
scalar V() const
Overlap volume.
const fvMesh & toMesh() const
void interpolate(VolumeField< Type > &, const VolumeField< Type > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
Interpolate volume field.
tmp< VolumeField< Type > > interpolate(const tmp< VolumeField< Type > > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
meshToMesh0(const fvMesh &fromMesh, const fvMesh &toMesh, const HashTable< word > &patchMap, const wordList &cuttingPatchNames)
Construct from the two meshes, the patch name map for the patches.
void mapField(Field< Type > &, const Field< Type > &, const labelList &adr, const CombineOp &cop) const
Map field.
order
Enumeration specifying required accuracy.
void interpolateInternalField(Field< Type > &, const VolumeField< Type > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
Interpolate internal volume field.
const labelList & cellAddressing() const
From toMesh cells to fromMesh cells.
~meshToMesh0()=default
Destructor.
const fvMesh & fromMesh() const
void interpolateField(Field< Type > &, const VolumeField< Type > &, const labelList &adr, const scalarListList &weights, const CombineOp &cop) const
Interpolate field using inverse-distance weights.
tmp< VolumeField< Type > > interpolate(const VolumeField< Type > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
Interpolate volume field.
A class for managing temporary objects.
Encapsulation of data needed to search in/for cells. Used to find the cell containing a point (e....
Macro definitions for declaring ClassName(), NamespaceName(), etc.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
List< scalarList > scalarListList
List of scalarList.
List< word > wordList
List of word.
GeometricField< Type, fvPatchField, volMesh > VolumeField
A volume field for a given type.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
Field< vector > vectorField
Specialisation of Field<T> for vector.
vectorField pointField
pointField is a vectorField.