# PhasicFlow: mapperNBS Class Reference
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

mapperNBS Class Reference
Inheritance diagram for mapperNBS:
[legend]
Collaboration diagram for mapperNBS:
[legend]

## Classes

class | CellIterator

## Public Types

using | HeadType = deviceViewType3D< uint32 >
using | NextType = deviceViewType1D< uint32 >

## Public Member Functions

| TypeInfoNV ("mapperNBS")
INLINE_FUNCTION_HD | mapperNBS ()=default
| mapperNBS (const box &domain, real cellSize, const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, bool adjustableBox, bool nextOwner=true)
INLINE_FUNCTION_HD | mapperNBS (const mapperNBS &)=default
INLINE_FUNCTION_HD | mapperNBS (mapperNBS &&)=default
INLINE_FUNCTION_HD mapperNBS & | operator= (const mapperNBS &)=default
INLINE_FUNCTION_HD mapperNBS & | operator= (mapperNBS &&)=default
INLINE_FUNCTION_HD | ~mapperNBS ()=default
auto | getCellIterator () const
const auto & | getDomainCells () const
const auto & | getSearchCells () const
bool | build (const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, bool &searchBoxChanged)

## Static Public Attributes

static constexpr uint32 | NoPos = 0xFFFFFFFF

## Private Member Functions

bool | setSearchBox (const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, real cellSize)
void | allocateArrays (rangeU32 nextRng)
void | checkAllocateNext (rangeU32 nextRng)
void | nullifyHead ()
void | nullifyNext (rangeU32 nextRng)

## Private Attributes

cells | domainCells_
cells | searchCells_
HeadType | head_ {"NBS::head",1,1,1}
NextType | next_ {"NBS::next", 1}
uint32 | nextCapacity_ = 0
uint32 | lastCheckForBox_ = 0
uint32 | buildCount_ = 0
bool | adjustableBox_ = false
bool | nextOwner_ = true

## Static Private Attributes

static uint32 | checkInterval_ = 1000
static real | enlargementFactor_ = 1.1

## Detailed Description

Definition at line 34 of file mapperNBS.hpp.

## Member Typedef Documentation

## HeadType

using HeadType = deviceViewType3D<uint32>

Definition at line 38 of file mapperNBS.hpp.

## NextType

using NextType = deviceViewType1D<uint32>

Definition at line 40 of file mapperNBS.hpp.

## Constructor & Destructor Documentation

## mapperNBS() [1/4]

INLINE_FUNCTION_HD mapperNBS | ( |  | ) |

default

## mapperNBS() [2/4]

mapperNBS | ( | const box & | domain,
|  | real | cellSize,
|  | const deviceViewType1D< realx3 > & | pointPos,
|  | const pFlagTypeDevice & | flags,
|  | bool | adjustableBox,
|  | bool | nextOwner = `true`
| ) |  |

Definition at line 105 of file mapperNBS.cpp.

References pointFlag< ExecutionSpace >::activeRange(), mapperNBS::allocateArrays(), and mapperNBS::setSearchBox().

Here is the call graph for this function:

## mapperNBS() [3/4]

INLINE_FUNCTION_HD mapperNBS | ( | const mapperNBS & |  | ) |

default

## mapperNBS() [4/4]

INLINE_FUNCTION_HD mapperNBS | ( | mapperNBS && |  | ) |

default

## ~mapperNBS()

INLINE_FUNCTION_HD ~mapperNBS | ( |  | ) |

default

## Member Function Documentation

## setSearchBox()

bool setSearchBox | ( | const deviceViewType1D< realx3 > & | pointPos,
|  | const pFlagTypeDevice & | flags,
|  | real | cellSize
| ) |  |

private

Definition at line 29 of file mapperNBS.cpp.

References END_INFO, pFlow::mapperNBSKernels::findPointExtends(), INFORMATION, pFlow::algorithms::KOKKOS::max(), box::maxPoint(), pFlow::algorithms::KOKKOS::min(), and box::minPoint().

Referenced by mapperNBS::mapperNBS().

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

## allocateArrays()

void allocateArrays | ( | rangeU32 | nextRng | ) |

private

Definition at line 74 of file mapperNBS.cpp.

References mapperNBS::checkAllocateNext(), mapperNBS::head_, mapperNBS::NoPos, mapperNBS::nullifyNext(), cells::nx(), cells::ny(), cells::nz(), pFlow::reallocFill(), and mapperNBS::searchCells_.

Referenced by mapperNBS::mapperNBS().

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

## checkAllocateNext()

void checkAllocateNext | ( | rangeU32 | nextRng | ) |

private

Definition at line 81 of file mapperNBS.cpp.

References Range< T >::end(), and pFlow::reallocNoInit().

Referenced by mapperNBS::allocateArrays().

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

## nullifyHead()

void nullifyHead | ( |  | ) |

private

Definition at line 94 of file mapperNBS.cpp.

References pFlow::fill().

Here is the call graph for this function:

## nullifyNext()

void nullifyNext | ( | rangeU32 | nextRng | ) |

private

Definition at line 99 of file mapperNBS.cpp.

References pFlow::fill().

Referenced by mapperNBS::allocateArrays().

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

## TypeInfoNV()

TypeInfoNV | ( | "mapperNBS" |  | ) |

## operator=() [1/2]

INLINE_FUNCTION_HD mapperNBS& operator= | ( | const mapperNBS & |  | ) |

default

## operator=() [2/2]

INLINE_FUNCTION_HD mapperNBS& operator= | ( | mapperNBS && |  | ) |

default

## getCellIterator()

auto getCellIterator | ( |  | ) | const

inline

Definition at line 150 of file mapperNBS.hpp.

References mapperNBS::head_, and mapperNBS::next_.

Referenced by NBS::getCellIterator(), and NBS::impl_broadSearch().

Here is the caller graph for this function:

## getDomainCells()

const auto& getDomainCells | ( |  | ) | const

inline

Definition at line 155 of file mapperNBS.hpp.

References mapperNBS::domainCells_.

Referenced by NBS::getDomainCellsLevels().

Here is the caller graph for this function:

## getSearchCells()

const auto& getSearchCells | ( |  | ) | const

inline

Definition at line 160 of file mapperNBS.hpp.

References mapperNBS::searchCells_.

Referenced by NBS::impl_broadSearch().

Here is the caller graph for this function:

## build()

bool build | ( | const deviceViewType1D< realx3 > & | pointPos,
|  | const pFlagTypeDevice & | flags,
|  | bool & | searchBoxChanged
| ) |  |

Definition at line 125 of file mapperNBS.cpp.

References pointFlag< ExecutionSpace >::activeRange(), pFlow::mapperNBSKernels::buildLists(), pFlow::mapperNBSKernels::buildListsReduce(), pFlow::endl(), and fatalErrorInFunction.

Here is the call graph for this function:

## Member Data Documentation

## NoPos

constexpr uint32 NoPos = 0xFFFFFFFF

staticconstexpr

Definition at line 43 of file mapperNBS.hpp.

Referenced by mapperNBS::allocateArrays().

## domainCells_

cells domainCells_

private

Definition at line 82 of file mapperNBS.hpp.

Referenced by mapperNBS::getDomainCells().

## searchCells_

cells searchCells_

private

Definition at line 84 of file mapperNBS.hpp.

Referenced by mapperNBS::allocateArrays(), and mapperNBS::getSearchCells().

## head_

HeadType head_ {"NBS::head",1,1,1}

private

Definition at line 86 of file mapperNBS.hpp.

Referenced by mapperNBS::allocateArrays(), and mapperNBS::getCellIterator().

## next_

NextType next_ {"NBS::next", 1}

private

Definition at line 88 of file mapperNBS.hpp.

Referenced by mapperNBS::getCellIterator().

## nextCapacity_

uint32 nextCapacity_ = 0

private

Definition at line 90 of file mapperNBS.hpp.

## lastCheckForBox_

uint32 lastCheckForBox_ = 0

private

Definition at line 92 of file mapperNBS.hpp.

## buildCount_

uint32 buildCount_ = 0

private

Definition at line 94 of file mapperNBS.hpp.

## adjustableBox_

bool adjustableBox_ = false

private

Definition at line 96 of file mapperNBS.hpp.

## nextOwner_

bool nextOwner_ = true

private

Definition at line 98 of file mapperNBS.hpp.

## checkInterval_

pFlow::uint32 checkInterval_ = 1000

staticprivate

Definition at line 100 of file mapperNBS.hpp.

## enlargementFactor_

pFlow::real enlargementFactor_ = 1.1

staticprivate

Definition at line 102 of file mapperNBS.hpp.

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

- src/Interaction/contactSearch/methods/cellBased/NBS/mapperNBS.hpp
- src/Interaction/contactSearch/methods/cellBased/NBS/mapperNBS.cpp