trackingInverseDistance Class Reference

Inverse-distance-weighted interpolation stencil. More...

Inheritance diagram for trackingInverseDistance:
[legend]
Collaboration diagram for trackingInverseDistance:
[legend]

Public Member Functions

 TypeName ("trackingInverseDistance")
 Runtime type information. More...
 
 trackingInverseDistance (const fvMesh &, const dictionary &, const bool)
 Construct from fvMesh. More...
 
virtual ~trackingInverseDistance ()
 Destructor. More...
 
virtual bool update ()
 Update stencils. Return false if nothing changed. More...
 
- Public Member Functions inherited from inverseDistance
 TypeName ("inverseDistance")
 Runtime type information. More...
 
 inverseDistance (const fvMesh &, const dictionary &, const bool)
 Construct from fvMesh. More...
 
virtual ~inverseDistance ()
 Destructor. More...
 
virtual const labelUList & cellTypes () const
 Return the cell type list. More...
 
virtual const labelUList & interpolationCells () const
 Indices of interpolated cells. More...
 
virtual const mapDistribute & cellInterpolationMap () const
 Return a communication schedule. More...
 
virtual const labelListList & cellStencil () const
 Per interpolated cell the neighbour cells (in terms of slots as. More...
 
virtual const scalarListList & cellInterpolationWeights () const
 Weights for cellStencil. More...
 
virtual const scalarList & cellInterpolationWeight () const
 Per interpolated cell the interpolation factor. (0 = use. More...
 
virtual void stencilWeights (const point &sample, const pointList &donorCcs, scalarList &weights) const
 Calculate inverse distance weights for a single acceptor. More...
 
- Public Member Functions inherited from cellCellStencil
 TypeName ("cellCellStencil")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, cellCellStencil, mesh,(const fvMesh &mesh, const dictionary &dict, const bool update),(mesh, dict, update))
 
 cellCellStencil (const fvMesh &)
 Construct from fvMesh. More...
 
virtual ~cellCellStencil ()
 Destructor. More...
 
virtual const wordHashSet & nonInterpolatedFields () const
 Return the names of any (stencil or mesh specific) fields that. More...
 
virtual wordHashSet & nonInterpolatedFields ()
 Return non-const non-interpolating fields. More...
 
bool localStencil (const labelUList &) const
 Helper: is stencil fully local. More...
 
const labelIOList & zoneID () const
 Helper: get reference to registered zoneID. Loads volScalarField. More...
 
template<class Type >
Foam::tmp< Foam::volScalarField > createField (const fvMesh &mesh, const word &name, const UList< Type > &psi)
 

Protected Member Functions

void markPatchesAsHoles (PstreamBuffers &pBufs, const List< treeBoundBoxList > &patchBb, const List< labelVector > &patchDivisions, const PtrList< PackedList< 2 >> &patchParts, const label srcI, const label tgtI, labelList &allCellTypes) const
 Mark all cells overlapping (a voxel covered by) a src patch. More...
 
void markDonors (PstreamBuffers &pBufs, const List< treeBoundBoxList > &meshBb, const PtrList< voxelMeshSearch > &meshSearches, const labelList &allCellTypes, const label srcI, const label tgtI, labelListList &allStencil, labelList &allDonor) const
 
- Protected Member Functions inherited from inverseDistance
void markPatchesAsHoles (PstreamBuffers &pBufs, const PtrList< fvMeshSubset > &meshParts, const List< treeBoundBoxList > &patchBb, const List< labelVector > &patchDivisions, const PtrList< PackedList< 2 >> &patchParts, const label srcI, const label tgtI, labelList &allCellTypes) const
 Mark all cells overlapping (a voxel covered by) a src patch. More...
 
bool betterDonor (const label destMesh, const label currentDonorMesh, const label newDonorMesh) const
 If multiple donors meshes: decide which is best. More...
 
void markDonors (const globalIndex &globalCells, PstreamBuffers &pBufs, const PtrList< fvMeshSubset > &meshParts, const List< treeBoundBoxList > &meshBb, const labelList &allCellTypes, const label srcI, const label tgtI, labelListList &allStencil, labelList &allDonor) const
 Determine donors for all tgt cells. More...
 
void uncompactedRegionSplit (const fvMesh &mesh, const globalIndex &globalFaces, const label nZones, const labelList &zoneID, const labelList &cellTypes, const boolList &isBlockedFace, labelList &cellRegion) const
 Replacement of regionSplit. More...
 
autoPtr< globalIndex > compactedRegionSplit (const fvMesh &mesh, const globalIndex &globalFaces, labelList &cellRegion) const
 
void findHoles (const globalIndex &globalCells, const fvMesh &mesh, const labelList &zoneID, const labelListList &stencil, labelList &cellTypes) const
 Do flood filling to detect unreachable (from patches) sections. More...
 
void seedCell (const label cellI, const scalar wantedFraction, bitSet &isFront, scalarField &fraction) const
 Seed faces of cell with wantedFraction (if higher than current) More...
 
void walkFront (const scalar layerRelax, const labelListList &allStencil, labelList &allCellTypes, scalarField &allWeight) const
 Surround holes with layer(s) of interpolated cells. More...
 
virtual void createStencil (const globalIndex &)
 Create stencil starting from the donor containing the acceptor. More...
 

Static Protected Member Functions

static bool markBoundaries (const fvMesh &mesh, const vector &smallVec, const boundBox &bb, labelVector &nDivs, PackedList< 2 > &patchTypes, const labelList &cellMap, labelList &patchCellTypes)
 Mark voxels of patchTypes with type of patch face. More...
 
- Static Protected Member Functions inherited from inverseDistance
static label index (const labelVector &nDivs, const labelVector &)
 Convert ijk indices into single index. More...
 
static labelVector index3 (const labelVector &nDivs, const label)
 Convert single index into ijk. More...
 
static labelVector index3 (const boundBox &bb, const labelVector &nDivs, const point &pt)
 Convert coordinate into ijk. More...
 
static point position (const boundBox &bb, const labelVector &nDivs, const label boxI)
 Convert index back into coordinate. More...
 
static void fill (PackedList< 2 > &elems, const boundBox &bb, const labelVector &nDivs, const boundBox &subBb, const unsigned int val)
 Fill all elements overlapping subBb with value val. More...
 
static bool overlaps (const boundBox &bb, const labelVector &nDivs, const PackedList< 2 > &voxels, const treeBoundBox &subBb, const unsigned int val)
 Is any voxel inside subBb set to val. More...
 
static void markBoundaries (const fvMesh &mesh, const vector &smallVec, const boundBox &bb, const labelVector &nDivs, PackedList< 2 > &patchTypes, const labelList &cellMap, labelList &patchCellTypes)
 Mark voxels of patchTypes with type of patch face. More...
 
static treeBoundBox cellBb (const primitiveMesh &mesh, const label celli)
 Calculate bounding box of cell. More...
 
- Static Protected Member Functions inherited from cellCellStencil
static labelList count (const label size, const labelUList &lst)
 Count occurrences (in parallel) More...
 
template<class Type >
static tmp< volScalarField > createField (const fvMesh &mesh, const word &name, const UList< Type > &)
 Helper: create volScalarField for postprocessing. More...
 

Protected Attributes

globalIndex globalCells_
 Global indexing for cells. More...
 
labelList globalDonor_
 Current (global) donor cell. More...
 
PtrList< fvMeshSubset > meshParts_
 Subset according to zone. More...
 
- Protected Attributes inherited from inverseDistance
const dictionary dict_
 Dictionary of motion control parameters. More...
 
vector smallVec_
 Small perturbation vector for geometric tests. More...
 
labelList cellTypes_
 Per cell the cell type. More...
 
labelList interpolationCells_
 Indices of interpolated cells. More...
 
autoPtr< mapDistribute > cellInterpolationMap_
 Fetch interpolated cells. More...
 
labelListList cellStencil_
 Interpolation stencil. More...
 
scalarListList cellInterpolationWeights_
 Interpolation weights. More...
 
volScalarField cellInterpolationWeight_
 Amount of interpolation. More...
 
- Protected Attributes inherited from cellCellStencil
const fvMesh & mesh_
 Reference to the mesh. More...
 
wordHashSet nonInterpolatedFields_
 Set of fields that should not be interpolated. More...
 

Additional Inherited Members

- Public Types inherited from cellCellStencil
enum  patchCellType { OTHER = 0, PATCH = 1, OVERSET = 2 }
 
enum  cellType { CALCULATED = 0, INTERPOLATED = 1, HOLE = 2 }
 
- Static Public Member Functions inherited from cellCellStencil
static autoPtr< cellCellStencil > New (const fvMesh &, const dictionary &dict, const bool update=true)
 New function which constructs and returns pointer to a. More...
 
static const labelIOList & zoneID (const fvMesh &)
 Helper: get reference to registered zoneID. Loads volScalarField. More...
 
static void globalCellCells (const globalIndex &gi, const polyMesh &mesh, const boolList &isValidDonor, const labelList &selectedCells, labelListList &cellCells, pointListList &cellCellCentres)
 Helper: create cell-cell addressing in global numbering. More...
 
- Static Protected Attributes inherited from cellCellStencil
static const Enum< cellType > cellTypeNames_
 Mode type names. More...
 

Detailed Description

Inverse-distance-weighted interpolation stencil.

Source files

Definition at line 56 of file trackingInverseDistanceCellCellStencil.H.

Constructor & Destructor Documentation

◆ trackingInverseDistance()

trackingInverseDistance ( const fvMesh &  mesh,
const dictionary &  dict,
const bool  doUpdate 
)

Construct from fvMesh.

Definition at line 498 of file trackingInverseDistanceCellCellStencil.C.

References Foam::decrIndent(), Foam::endl(), forAll, Foam::gMax(), Foam::incrIndent(), Foam::indent(), Foam::Info, nCellsPerZone(), nZones, update(), Foam::Zero, and zoneID.

Here is the call graph for this function:

◆ ~trackingInverseDistance()

Destructor.

Definition at line 563 of file trackingInverseDistanceCellCellStencil.C.

Member Function Documentation

◆ markBoundaries()

bool markBoundaries ( const fvMesh &  mesh,
const vector &  smallVec,
const boundBox &  bb,
labelVector &  nDivs,
PackedList< 2 > &  patchTypes,
const labelList &  cellMap,
labelList &  patchCellTypes 
)
staticprotected

Mark voxels of patchTypes with type of patch face.

Definition at line 55 of file trackingInverseDistanceCellCellStencil.C.

References boundBox::contains(), Foam::endl(), fvPatch::faceCells(), polyPatch::faceCentres(), forAll, VectorSpace< Form, Cmpt, Ncmpts >::max, mesh, boundBox::min(), patchIdentifier::name(), boundBox::overlaps(), fvPatch::patch(), patchTypes(), PrimitivePatch< FaceList, PointField >::points(), Foam::Pout, and WarningInFunction.

Here is the call graph for this function:

◆ markPatchesAsHoles()

void markPatchesAsHoles ( PstreamBuffers &  pBufs,
const List< treeBoundBoxList > &  patchBb,
const List< labelVector > &  patchDivisions,
const PtrList< PackedList< 2 >> &  patchParts,
const label  srcI,
const label  tgtI,
labelList &  allCellTypes 
) const
protected

Mark all cells overlapping (a voxel covered by) a src patch.

with type HOLE

Definition at line 197 of file trackingInverseDistanceCellCellStencil.C.

References Foam::DelaunayMeshTools::allPoints(), PstreamBuffers::clear(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, PstreamBuffers::finishedSends(), forAll, boundBox::max(), boundBox::min(), and treeBoundBox::overlaps().

Here is the call graph for this function:

◆ markDonors()

void markDonors ( PstreamBuffers &  pBufs,
const List< treeBoundBoxList > &  meshBb,
const PtrList< voxelMeshSearch > &  meshSearches,
const labelList &  allCellTypes,
const label  srcI,
const label  tgtI,
labelListList &  allStencil,
labelList &  allDonor 
) const
protected

◆ TypeName()

TypeName ( "trackingInverseDistance"  )

Runtime type information.

◆ update()

Member Data Documentation

◆ globalCells_

globalIndex globalCells_
protected

Global indexing for cells.

Definition at line 65 of file trackingInverseDistanceCellCellStencil.H.

◆ globalDonor_

labelList globalDonor_
protected

Current (global) donor cell.

Definition at line 68 of file trackingInverseDistanceCellCellStencil.H.

◆ meshParts_

PtrList<fvMeshSubset> meshParts_
protected

Subset according to zone.

Definition at line 71 of file trackingInverseDistanceCellCellStencil.H.


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