Viskores
1.0
|
A locator that uses a uniform grid. More...
#include <CellLocatorUniformBins.h>
Public Types | |
using | SupportedCellSets = ::viskores::cont::internal::CellSetList |
using | CellExecObjectList = viskores::ListTransform< SupportedCellSets, CellSetContToExec > |
using | CellLocatorExecList = viskores::ListTransform< CellExecObjectList, viskores::exec::CellLocatorUniformBins > |
using | ExecObjType = viskores::ListApply< CellLocatorExecList, viskores::exec::CellLocatorMultiplexer > |
using | LastCell = typename ExecObjType::LastCell |
Public Member Functions | |
CellLocatorUniformBins ()=default | |
void | SetDims (const viskores::Id3 &dims) |
Specify the dimensions of the grid used to establish bins. More... | |
viskores::Id3 | GetDims () const |
Specify the dimensions of the grid used to establish bins. More... | |
void | PrintSummary (std::ostream &out) const |
Print a summary of the state of this locator. More... | |
ExecObjType | PrepareForExecution (viskores::cont::DeviceAdapterId device, viskores::cont::Token &token) const |
![]() | |
virtual | ~CellLocatorBase ()=default |
const viskores::cont::UnknownCellSet & | GetCellSet () const |
Specify the CellSet defining the structure of the cells being searched. More... | |
void | SetCellSet (const viskores::cont::UnknownCellSet &cellSet) |
Specify the CellSet defining the structure of the cells being searched. More... | |
const viskores::cont::CoordinateSystem & | GetCoordinates () const |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const viskores::cont::CoordinateSystem &coords) |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const viskores::cont::UnknownArrayHandle &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< viskores::TopologyElementTagCell, viskores::TopologyElementTagPoint > |
using | CellIdArrayType = viskores::cont::ArrayHandle< viskores::Id > |
using | CellIdOffsetArrayType = viskores::cont::ArrayHandle< viskores::Id > |
Private Member Functions | |
void | Build () override |
Additional Inherited Members | |
![]() | |
void | SetModified () |
bool | GetModified () const |
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.
using viskores::cont::CellLocatorUniformBins::CellExecObjectList = viskores::ListTransform<SupportedCellSets, CellSetContToExec> |
|
private |
|
private |
using viskores::cont::CellLocatorUniformBins::CellLocatorExecList = viskores::ListTransform<CellExecObjectList, viskores::exec::CellLocatorUniformBins> |
|
private |
using viskores::cont::CellLocatorUniformBins::ExecObjType = viskores::ListApply<CellLocatorExecList, viskores::exec::CellLocatorMultiplexer> |
using viskores::cont::CellLocatorUniformBins::LastCell = typename ExecObjType::LastCell |
using viskores::cont::CellLocatorUniformBins::SupportedCellSets = ::viskores::cont::internal::CellSetList |
|
default |
|
overrideprivatevirtual |
Implements viskores::cont::CellLocatorBase.
|
inline |
Specify the dimensions of the grid used to establish bins.
This locator will establish a grid over the bounds of the input data that contains the number of bins specified by these dimensions in each direction. Larger dimensions will reduce the number of cells in each bin, but will require more memory. SetDims()
must be called before Update()
.
ExecObjType viskores::cont::CellLocatorUniformBins::PrepareForExecution | ( | viskores::cont::DeviceAdapterId | device, |
viskores::cont::Token & | token | ||
) | const |
void viskores::cont::CellLocatorUniformBins::PrintSummary | ( | std::ostream & | out | ) | const |
Print a summary of the state of this locator.
|
inline |
Specify the dimensions of the grid used to establish bins.
This locator will establish a grid over the bounds of the input data that contains the number of bins specified by these dimensions in each direction. Larger dimensions will reduce the number of cells in each bin, but will require more memory. SetDims()
must be called before Update()
.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |