VTK-m  2.2
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
vtkm::cont::CellLocatorUniformBins Class Reference

A locator that uses a uniform grid. More...

#include <CellLocatorUniformBins.h>

Inheritance diagram for vtkm::cont::CellLocatorUniformBins:
vtkm::cont::CellLocatorBase vtkm::cont::ExecutionObjectBase

Public Types

using SupportedCellSets = ::vtkm::cont::internal::CellSetList
 
using CellExecObjectList = vtkm::ListTransform< SupportedCellSets, CellSetContToExec >
 
using CellLocatorExecList = vtkm::ListTransform< CellExecObjectList, vtkm::exec::CellLocatorUniformBins >
 
using ExecObjType = vtkm::ListApply< CellLocatorExecList, vtkm::exec::CellLocatorMultiplexer >
 
using LastCell = typename ExecObjType::LastCell
 

Public Member Functions

 CellLocatorUniformBins ()
 
void SetDims (const vtkm::Id3 &dims)
 
vtkm::Id3 GetDims () const
 
void PrintSummary (std::ostream &out) const
 
ExecObjType PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const
 
- Public Member Functions inherited from vtkm::cont::CellLocatorBase
virtual ~CellLocatorBase ()=default
 
const vtkm::cont::UnknownCellSetGetCellSet () const
 Specify the CellSet defining the structure of the cells being searched. More...
 
void SetCellSet (const vtkm::cont::UnknownCellSet &cellSet)
 Specify the CellSet defining the structure of the cells being searched. More...
 
const vtkm::cont::CoordinateSystemGetCoordinates () const
 Specify the CoordinateSystem defining the location of the cells. More...
 
void SetCoordinates (const vtkm::cont::CoordinateSystem &coords)
 Specify the CoordinateSystem defining the location of the cells. More...
 
void Update () const
 Build the search structure used to look up cells. More...
 

Private Types

template<typename CellSetCont >
using CellSetContToExec = typename CellSetCont::template ExecConnectivityType< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint >
 
using CellIdArrayType = vtkm::cont::ArrayHandle< vtkm::Id >
 
using CellIdOffsetArrayType = vtkm::cont::ArrayHandle< vtkm::Id >
 

Private Member Functions

void Build () override
 

Private Attributes

vtkm::Vec3f InvSpacing
 
vtkm::Vec3f MaxPoint
 
vtkm::Vec3f Origin
 
vtkm::Id3 UniformDims
 
vtkm::Id3 MaxCellIds
 
vtkm::cont::ArrayHandleGroupVecVariable< CellIdArrayType, CellIdOffsetArrayTypeCellIds
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::cont::CellLocatorBase
void SetModified ()
 
bool GetModified () const
 

Detailed Description

A locator that uses a uniform grid.

CellLocatorUniformBins creates a cell search structure using a single uniform grid. The size of the uniform grid is specified using the SetDims method. In general, the CellLocatorTwoLevel has the better performance. However, there are some cases where this is not the case. One example of this is a uniformly dense triangle grid. In some cases the CellLocatorUniformBins produces a more efficient search structure, especially for GPUs where memory access patterns are critical to performance.

Member Typedef Documentation

◆ CellExecObjectList

◆ CellIdArrayType

◆ CellIdOffsetArrayType

◆ CellLocatorExecList

◆ CellSetContToExec

template<typename CellSetCont >
using vtkm::cont::CellLocatorUniformBins::CellSetContToExec = typename CellSetCont::template ExecConnectivityType<vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint>
private

◆ ExecObjType

◆ LastCell

using vtkm::cont::CellLocatorUniformBins::LastCell = typename ExecObjType::LastCell

◆ SupportedCellSets

using vtkm::cont::CellLocatorUniformBins::SupportedCellSets = ::vtkm::cont::internal::CellSetList

Constructor & Destructor Documentation

◆ CellLocatorUniformBins()

vtkm::cont::CellLocatorUniformBins::CellLocatorUniformBins ( )
inline

Member Function Documentation

◆ Build()

void vtkm::cont::CellLocatorUniformBins::Build ( )
overrideprivatevirtual

◆ GetDims()

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::GetDims ( ) const
inline

◆ PrepareForExecution()

ExecObjType vtkm::cont::CellLocatorUniformBins::PrepareForExecution ( vtkm::cont::DeviceAdapterId  device,
vtkm::cont::Token token 
) const

◆ PrintSummary()

void vtkm::cont::CellLocatorUniformBins::PrintSummary ( std::ostream &  out) const

◆ SetDims()

void vtkm::cont::CellLocatorUniformBins::SetDims ( const vtkm::Id3 dims)
inline

Member Data Documentation

◆ CellIds

vtkm::cont::ArrayHandleGroupVecVariable<CellIdArrayType, CellIdOffsetArrayType> vtkm::cont::CellLocatorUniformBins::CellIds
private

◆ InvSpacing

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::InvSpacing
private

◆ MaxCellIds

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::MaxCellIds
private

◆ MaxPoint

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::MaxPoint
private

◆ Origin

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::Origin
private

◆ UniformDims

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::UniformDims
private

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