VTK  9.7.20261108
vtkResolveHangingNodes::BoundaryBins Struct Reference

#include <vtkResolveHangingNodes.h>

Detailed Description

Helper for the exchange of points between partitions: the bins of the boundary of a partition, laid out as in vtkStaticCellLocator (Bounds, Divisions, bin indices ijk and bin index), with one bit per bin telling if a boundary element (edge in 2D, face in 3D) of the partition overlaps the bin.

The bounds alone cover the whole partition, interface and domain boundary included, so most of the boundary points of a neighbor are within them; the occupied bins keep only those near the boundary elements.

Definition at line 285 of file vtkResolveHangingNodes.h.

Collaboration diagram for vtkResolveHangingNodes::BoundaryBins:
[legend]

Public Types

using OccupiedBitset = std::bitset<TargetNumberOfBins>

Public Member Functions

void Initialize (const vtkBoundingBox &bounds)
vtkIdType GetNumberOfBins () const
void GetBinIndices (const double *x, int ijk[3]) const
vtkIdType GetBinIndex (const int ijk[3]) const
void SetBinOccupied (vtkIdType binId)
vtkIdType GetBinIndex (const double *x) const
bool IsBinOccupied (vtkIdType binId) const
bool IsInOccupiedBin (const double *x) const

Public Attributes

vtkBoundingBox Bounds
int Divisions [3] = { 1, 1, 1 }
OccupiedBitset Occupied

Static Public Attributes

static constexpr vtkIdType TargetNumberOfBins = 32 * 32 * 32

Member Typedef Documentation

◆ OccupiedBitset

Member Function Documentation

◆ Initialize()

void vtkResolveHangingNodes::BoundaryBins::Initialize ( const vtkBoundingBox & bounds)

◆ GetNumberOfBins()

vtkIdType vtkResolveHangingNodes::BoundaryBins::GetNumberOfBins ( ) const

◆ GetBinIndices()

void vtkResolveHangingNodes::BoundaryBins::GetBinIndices ( const double * x,
int ijk[3] ) const

◆ GetBinIndex() [1/2]

vtkIdType vtkResolveHangingNodes::BoundaryBins::GetBinIndex ( const int ijk[3]) const

◆ SetBinOccupied()

void vtkResolveHangingNodes::BoundaryBins::SetBinOccupied ( vtkIdType binId)

◆ GetBinIndex() [2/2]

vtkIdType vtkResolveHangingNodes::BoundaryBins::GetBinIndex ( const double * x) const

◆ IsBinOccupied()

bool vtkResolveHangingNodes::BoundaryBins::IsBinOccupied ( vtkIdType binId) const

◆ IsInOccupiedBin()

bool vtkResolveHangingNodes::BoundaryBins::IsInOccupiedBin ( const double * x) const

Member Data Documentation

◆ TargetNumberOfBins

vtkIdType vtkResolveHangingNodes::BoundaryBins::TargetNumberOfBins = 32 * 32 * 32
staticconstexpr

Definition at line 288 of file vtkResolveHangingNodes.h.

◆ Bounds

vtkBoundingBox vtkResolveHangingNodes::BoundaryBins::Bounds

Definition at line 292 of file vtkResolveHangingNodes.h.

◆ Divisions

int vtkResolveHangingNodes::BoundaryBins::Divisions[3] = { 1, 1, 1 }

Definition at line 293 of file vtkResolveHangingNodes.h.

◆ Occupied

OccupiedBitset vtkResolveHangingNodes::BoundaryBins::Occupied

Definition at line 299 of file vtkResolveHangingNodes.h.


The documentation for this struct was generated from the following file: