Data Structures | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
meshToMesh0 Class Reference

mesh to mesh interpolation class. More...

Collaboration diagram for meshToMesh0:
Collaboration graph
[legend]

Data Structures

class  patchFieldInterpolator
 Patch-field interpolation class. More...
 

Public Types

enum  order { MAP, INTERPOLATE, CELL_POINT_INTERPOLATE, CELL_VOLUME_WEIGHT }
 Enumeration specifying required accuracy. More...
 

Public Member Functions

 ClassName ("meshToMesh0")
 
 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. More...
 
 meshToMesh0 (const fvMesh &fromMesh, const fvMesh &toMesh)
 Construct from the two meshes assuming there is an exact mapping. More...
 
 ~meshToMesh0 ()
 Destructor. More...
 
const fvMeshfromMesh () const
 
const fvMeshtoMesh () const
 
const labelListcellAddressing () const
 From toMesh cells to fromMesh cells. More...
 
scalar V () const
 Overlap volume. More...
 
template<class Type , class CombineOp >
void mapField (Field< Type > &, const Field< Type > &, const labelList &adr, const CombineOp &cop) const
 Map field. More...
 
template<class Type , class CombineOp >
void interpolateField (Field< Type > &, const GeometricField< Type, fvPatchField, volMesh > &, const labelList &adr, const scalarListList &weights, const CombineOp &cop) const
 Interpolate field using inverse-distance weights. More...
 
template<class Type , class CombineOp >
void interpolateField (Field< Type > &, const GeometricField< Type, fvPatchField, volMesh > &, const labelListList &adr, const scalarListList &weights, const CombineOp &cop) const
 Interpolate field using inverse-volume weights. More...
 
template<class Type , class CombineOp >
void interpolateField (Field< Type > &, const GeometricField< Type, fvPatchField, volMesh > &, const labelList &adr, const vectorField &centres, const CombineOp &cop) const
 Interpolate field using cell-point interpolation. More...
 
template<class Type , class CombineOp >
void interpolateInternalField (Field< Type > &, const GeometricField< Type, fvPatchField, volMesh > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 Interpolate internal volume field. More...
 
template<class Type , class CombineOp >
void interpolateInternalField (Field< Type > &, const tmp< GeometricField< Type, fvPatchField, volMesh > > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 
template<class Type , class CombineOp >
void interpolate (GeometricField< Type, fvPatchField, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 Interpolate volume field. More...
 
template<class Type , class CombineOp >
void interpolate (GeometricField< Type, fvPatchField, volMesh > &, const tmp< GeometricField< Type, fvPatchField, volMesh > > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 
template<class Type , class CombineOp >
tmp< GeometricField< Type, fvPatchField, volMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 Interpolate volume field. More...
 
template<class Type , class CombineOp >
tmp< GeometricField< Type, fvPatchField, volMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh > > &, order=INTERPOLATE, const CombineOp &cop=eqOp< Type >()) const
 
template<class Type , class CombineOp >
Foam::tmp< Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &fromVf, meshToMesh0::order ord, const CombineOp &cop) const
 
template<class Type , class CombineOp >
Foam::tmp< Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh > > &tfromVf, meshToMesh0::order ord, const CombineOp &cop) const
 

Private Member Functions

void calcAddressing ()
 
void cellAddresses (labelList &cells, const pointField &points, const fvMesh &fromMesh, const List< bool > &boundaryCell, const indexedOctree< treeDataCell > &oc) const
 
void calculateInverseDistanceWeights () const
 
void calculateInverseVolumeWeights () const
 
void calculateCellToCellAddressing () const
 
const scalarListListinverseDistanceWeights () const
 
const scalarListListinverseVolumeWeights () const
 
const labelListListcellToCellAddressing () const
 

Private Attributes

const fvMeshfromMesh_
 
const fvMeshtoMesh_
 
HashTable< labelfromMeshPatches_
 fromMesh patch labels More...
 
HashTable< labeltoMeshPatches_
 toMesh patch labels More...
 
HashTable< wordpatchMap_
 Patch map. More...
 
HashTable< labelcuttingPatches_
 toMesh patch labels which cut the from-mesh More...
 
labelList cellAddressing_
 Cell addressing. More...
 
labelListList boundaryAddressing_
 Boundary addressing. More...
 
scalarListListinverseDistanceWeightsPtr_
 Inverse-distance interpolation weights. More...
 
scalarListListinverseVolumeWeightsPtr_
 Inverse-volume interpolation weights. More...
 
labelListListcellToCellAddressingPtr_
 Cell to cell overlap addressing. More...
 
scalar V_
 Overlap volume. More...
 

Static Private Attributes

static const scalar directHitTol = 1e-5
 Direct hit tolerance. More...
 

Detailed Description

mesh to mesh interpolation class.

Note
This class is due to be deprecated in favour of meshToMesh0New
Source files

Definition at line 63 of file meshToMesh0.H.

Member Enumeration Documentation

◆ order

enum order

Enumeration specifying required accuracy.

Enumerator
MAP 
INTERPOLATE 
CELL_POINT_INTERPOLATE 
CELL_VOLUME_WEIGHT 

Definition at line 142 of file meshToMesh0.H.

Constructor & Destructor Documentation

◆ meshToMesh0() [1/2]

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.

to be interpolated and the names of the toMesh-patches which cut the fromMesh

Definition at line 43 of file meshToMesh0.C.

References Foam::endl(), forAll, patchi, and WarningInFunction.

Here is the call graph for this function:

◆ meshToMesh0() [2/2]

meshToMesh0 ( const fvMesh fromMesh,
const fvMesh toMesh 
)

Construct from the two meshes assuming there is an exact mapping.

between the patches

Definition at line 114 of file meshToMesh0.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, and patchi.

Here is the call graph for this function:

◆ ~meshToMesh0()

Destructor.

Definition at line 194 of file meshToMesh0.C.

References meshToMesh0::cellToCellAddressingPtr_, Foam::deleteDemandDrivenData(), meshToMesh0::inverseDistanceWeightsPtr_, and meshToMesh0::inverseVolumeWeightsPtr_.

Here is the call graph for this function:

Member Function Documentation

◆ calcAddressing()

void calcAddressing ( )
private

◆ cellAddresses()

void cellAddresses ( labelList cells,
const pointField points,
const fvMesh fromMesh,
const List< bool > &  boundaryCell,
const indexedOctree< treeDataCell > &  oc 
) const
private

Definition at line 213 of file calculateMeshToMesh0Addressing.C.

References primitiveMesh::cellCells(), primitiveMesh::cellCentres(), indexedOctree::findInside(), forAll, found, Foam::magSqr(), p, polyMesh::pointInCell(), and points.

Referenced by meshToMesh0::calcAddressing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateInverseDistanceWeights()

void calculateInverseDistanceWeights ( ) const
private

◆ calculateInverseVolumeWeights()

void calculateInverseVolumeWeights ( ) const
private

Initialise overlap volume to zero

Definition at line 133 of file calculateMeshToMesh0Weights.C.

References tetOverlapVolume::cellCellOverlapVolumeMinDecomp(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, List::setSize(), and List::size().

Here is the call graph for this function:

◆ calculateCellToCellAddressing()

void calculateCellToCellAddressing ( ) const
private

Initialise overlap volume to zero

Definition at line 196 of file calculateMeshToMesh0Weights.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, tetOverlapVolume::overlappingCells(), and List::size().

Here is the call graph for this function:

◆ inverseDistanceWeights()

const Foam::scalarListList & inverseDistanceWeights ( ) const
private

Definition at line 241 of file calculateMeshToMesh0Weights.C.

◆ inverseVolumeWeights()

const Foam::scalarListList & inverseVolumeWeights ( ) const
private

Definition at line 252 of file calculateMeshToMesh0Weights.C.

◆ cellToCellAddressing()

const Foam::labelListList & cellToCellAddressing ( ) const
private

Definition at line 263 of file calculateMeshToMesh0Weights.C.

◆ ClassName()

ClassName ( "meshToMesh0"  )

◆ fromMesh()

const fvMesh& fromMesh ( ) const
inline

Definition at line 229 of file meshToMesh0.H.

References meshToMesh0::fromMesh_.

Referenced by Foam::MapConsistentVolFields(), and Foam::MapVolFields().

Here is the caller graph for this function:

◆ toMesh()

const fvMesh& toMesh ( ) const
inline

Definition at line 234 of file meshToMesh0.H.

References meshToMesh0::toMesh_.

Referenced by Foam::MapConsistentVolFields(), Foam::MapLagrangianFields(), and Foam::MapVolFields().

Here is the caller graph for this function:

◆ cellAddressing()

const labelList& cellAddressing ( ) const
inline

From toMesh cells to fromMesh cells.

Definition at line 240 of file meshToMesh0.H.

References meshToMesh0::cellAddressing_.

◆ V()

scalar V ( ) const
inline

Overlap volume.

Definition at line 246 of file meshToMesh0.H.

References meshToMesh0::V_.

◆ mapField()

void mapField ( Field< Type > &  toF,
const Field< Type > &  fromVf,
const labelList adr,
const CombineOp &  cop 
) const

Map field.

Definition at line 36 of file meshToMesh0Templates.C.

References forAll.

◆ interpolateField() [1/3]

void interpolateField ( Field< Type > &  toF,
const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
const labelList adr,
const scalarListList weights,
const CombineOp &  cop 
) const

Interpolate field using inverse-distance weights.

Definition at line 86 of file meshToMesh0Templates.C.

References f(), forAll, and w().

Here is the call graph for this function:

◆ interpolateField() [2/3]

void interpolateField ( Field< Type > &  toF,
const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
const labelListList adr,
const scalarListList weights,
const CombineOp &  cop 
) const

Interpolate field using inverse-volume weights.

Definition at line 59 of file meshToMesh0Templates.C.

References f(), forAll, and w().

Here is the call graph for this function:

◆ interpolateField() [3/3]

void interpolateField ( Field< Type > &  toF,
const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
const labelList adr,
const vectorField centres,
const CombineOp &  cop 
) const

Interpolate field using cell-point interpolation.

Definition at line 121 of file meshToMesh0Templates.C.

References forAll, and interpolationCellPoint< Type >::interpolate().

Here is the call graph for this function:

◆ interpolateInternalField() [1/2]

void interpolateInternalField ( Field< Type > &  toF,
const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
meshToMesh0::order  ord = INTERPOLATE,
const CombineOp &  cop = eqOp<Type>() 
) const

Interpolate internal volume field.

Definition at line 152 of file meshToMesh0Templates.C.

References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ interpolateInternalField() [2/2]

void interpolateInternalField ( Field< Type > &  toF,
const tmp< GeometricField< Type, fvPatchField, volMesh > > &  tfromVf,
meshToMesh0::order  ord = INTERPOLATE,
const CombineOp &  cop = eqOp<Type>() 
) const

Definition at line 233 of file meshToMesh0Templates.C.

◆ interpolate() [1/6]

void interpolate ( GeometricField< Type, fvPatchField, volMesh > &  toVf,
const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
meshToMesh0::order  ord = INTERPOLATE,
const CombineOp &  cop = eqOp<Type>() 
) const

Interpolate volume field.

Definition at line 247 of file meshToMesh0Templates.C.

References GeometricField::boundaryField(), fvPatch::Cf(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::isA(), fvPatch::name(), and patchi.

Referenced by Foam::MapConsistentVolFields(), and Foam::MapVolFields().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ interpolate() [2/6]

void interpolate ( GeometricField< Type, fvPatchField, volMesh > &  toVf,
const tmp< GeometricField< Type, fvPatchField, volMesh > > &  tfromVf,
meshToMesh0::order  ord = INTERPOLATE,
const CombineOp &  cop = eqOp<Type>() 
) const

Definition at line 355 of file meshToMesh0Templates.C.

References Foam::MULES::interpolate().

Here is the call graph for this function:

◆ interpolate() [3/6]

tmp<GeometricField<Type, fvPatchField, volMesh> > interpolate ( const GeometricField< Type, fvPatchField, volMesh > &  ,
order  = INTERPOLATE,
const CombineOp &  cop = eqOp< Type >() 
) const

Interpolate volume field.

◆ interpolate() [4/6]

tmp<GeometricField<Type, fvPatchField, volMesh> > interpolate ( const tmp< GeometricField< Type, fvPatchField, volMesh > > &  ,
order  = INTERPOLATE,
const CombineOp &  cop = eqOp< Type >() 
) const

◆ interpolate() [5/6]

Foam::tmp< Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> > interpolate ( const GeometricField< Type, fvPatchField, volMesh > &  fromVf,
meshToMesh0::order  ord,
const CombineOp &  cop 
) const

Definition at line 370 of file meshToMesh0Templates.C.

References GeometricField::boundaryField(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, internalField(), and PtrList::set().

Here is the call graph for this function:

◆ interpolate() [6/6]

Foam::tmp< Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> > interpolate ( const tmp< GeometricField< Type, fvPatchField, volMesh > > &  tfromVf,
meshToMesh0::order  ord,
const CombineOp &  cop 
) const

Definition at line 442 of file meshToMesh0Templates.C.

References Foam::MULES::interpolate().

Here is the call graph for this function:

Field Documentation

◆ fromMesh_

const fvMesh& fromMesh_
private

◆ toMesh_

const fvMesh& toMesh_
private

◆ fromMeshPatches_

HashTable<label> fromMeshPatches_
private

fromMesh patch labels

Definition at line 73 of file meshToMesh0.H.

Referenced by meshToMesh0::calcAddressing().

◆ toMeshPatches_

HashTable<label> toMeshPatches_
private

toMesh patch labels

Definition at line 76 of file meshToMesh0.H.

◆ patchMap_

HashTable<word> patchMap_
private

Patch map.

Definition at line 79 of file meshToMesh0.H.

Referenced by meshToMesh0::calcAddressing().

◆ cuttingPatches_

HashTable<label> cuttingPatches_
private

toMesh patch labels which cut the from-mesh

Definition at line 82 of file meshToMesh0.H.

Referenced by meshToMesh0::calcAddressing().

◆ cellAddressing_

labelList cellAddressing_
private

◆ boundaryAddressing_

labelListList boundaryAddressing_
private

Boundary addressing.

Definition at line 88 of file meshToMesh0.H.

Referenced by meshToMesh0::calcAddressing().

◆ inverseDistanceWeightsPtr_

scalarListList* inverseDistanceWeightsPtr_
mutableprivate

Inverse-distance interpolation weights.

Definition at line 91 of file meshToMesh0.H.

Referenced by meshToMesh0::calculateInverseDistanceWeights(), and meshToMesh0::~meshToMesh0().

◆ inverseVolumeWeightsPtr_

scalarListList* inverseVolumeWeightsPtr_
mutableprivate

Inverse-volume interpolation weights.

Definition at line 94 of file meshToMesh0.H.

Referenced by meshToMesh0::~meshToMesh0().

◆ cellToCellAddressingPtr_

labelListList* cellToCellAddressingPtr_
mutableprivate

Cell to cell overlap addressing.

Definition at line 97 of file meshToMesh0.H.

Referenced by meshToMesh0::~meshToMesh0().

◆ V_

scalar V_
mutableprivate

Overlap volume.

Definition at line 100 of file meshToMesh0.H.

Referenced by meshToMesh0::calculateInverseDistanceWeights(), and meshToMesh0::V().

◆ directHitTol

const Foam::scalar directHitTol = 1e-5
staticprivate

Direct hit tolerance.

Definition at line 132 of file meshToMesh0.H.

Referenced by meshToMesh0::calculateInverseDistanceWeights().


The documentation for this class was generated from the following files: