# PhasicFlow: NBS 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.

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

## Public Types

using | CellIterator = typename NBSLevel0::CellIterator
Public Types inherited from particleWallContactSearchs< NBS >
using | MethodType = NBS
using | IndexType = uint32
using | execution_space = DefaultExecutionSpace
using | memory_space = typename execution_space::memory_space

## Public Member Functions

| TypeInfoNV ("NBS")

NBS (const dictionary &dict, const box &domainBox, real minBSSize, real maxBSSize, const deviceViewType1D< realx3 > &position, const pFlagTypeDevice &flags, const deviceViewType1D< real > &diam, uint32 nWallPoints, uint32 nWallElements, const ViewType1D< realx3, memory_space > &wallPoints, const ViewType1D< uint32x3, memory_space > &wallVertices, const ViewType1D< realx3, memory_space > &wallNormals)

INLINE_FUNCTION_HD | NBS (const NBS &)=default
INLINE_FUNCTION_HD | NBS (NBS &&)=default
INLINE_FUNCTION_HD NBS & | operator= (const NBS &)=default
INLINE_FUNCTION_HD NBS & | operator= (NBS &&)=default
INLINE_FUNCTION_HD | ~NBS ()=default
uint32 | numLevels () const
real | sizeRatio () const
real | cellExtent () const
auto | getCellIterator ([[maybe_unused]] uint32 lvl) const
Vector< cells > | getDomainCellsLevels () const
Public Member Functions inherited from particleWallContactSearchs< NBS >
| particleWallContactSearchs (const dictionary &dict, const box &domain, real minSize, real maxSize, const ViewType1D< realx3, memory_space > &position, const pFlagTypeDevice &flags, const ViewType1D< real, memory_space > &diam)
bool | broadSearch (uint32 iter, real t, real dt, csPairContainerType &ppPairs, csPairContainerType &pwPairs, const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, const deviceViewType1D< real > &diameter, bool force=false)
real | sizeRatio () const
real | cellExtent () const

## Protected Member Functions

bool | impl_broadSearch (csPairContainerType &ppPairs, csPairContainerType &pwPairs, const deviceViewType1D< realx3 > &pointPos, const pFlagTypeDevice &flags, const deviceViewType1D< real > &diameter)
Protected Member Functions inherited from particleWallContactSearchs< NBS >
auto & | getMethod ()
const auto & | getMethod () const

## Protected Attributes

friend | particleWallContactSearchs< NBS >

## Private Attributes

real | sizeRatio_ = 1.0
real | cellExtent_ = 0.5
Logical | adjustableBox_
NBSLevel0 | NBSLevel0_
cellsWallLevel0 | cellsWallLevel0_

## Detailed Description

Definition at line 34 of file NBS.hpp.

## Member Typedef Documentation

## CellIterator

using CellIterator = typename NBSLevel0::CellIterator

Definition at line 40 of file NBS.hpp.

## Constructor & Destructor Documentation

## NBS() [1/3]

NBS | ( | const dictionary & | dict,
|  | const box & | domainBox,
|  | real | minBSSize,
|  | real | maxBSSize,
|  | const deviceViewType1D< realx3 > & | position,
|  | const pFlagTypeDevice & | flags,
|  | const deviceViewType1D< real > & | diam,
|  | uint32 | nWallPoints,
|  | uint32 | nWallElements,
|  | const ViewType1D< realx3, memory_space > & | wallPoints,
|  | const ViewType1D< uint32x3, memory_space > & | wallVertices,
|  | const ViewType1D< realx3, memory_space > & | wallNormals
| ) |  |

Definition at line 24 of file NBS.cpp.

## NBS() [2/3]

INLINE_FUNCTION_HD NBS | ( | const NBS & |  | ) |

default

## NBS() [3/3]

INLINE_FUNCTION_HD NBS | ( | NBS && |  | ) |

default

## ~NBS()

INLINE_FUNCTION_HD ~NBS | ( |  | ) |

default

## Member Function Documentation

## impl_broadSearch()

bool impl_broadSearch | ( | csPairContainerType & | ppPairs,
|  | csPairContainerType & | pwPairs,
|  | const deviceViewType1D< realx3 > & | pointPos,
|  | const pFlagTypeDevice & | flags,
|  | const deviceViewType1D< real > & | diameter
| ) |  |

inlineprotected

Definition at line 59 of file NBS.hpp.

References NBSLevel0::broadSearch(), cellsWallLevel0::broadSearch(), NBS::cellsWallLevel0_, pFlow::endl(), fatalErrorInFunction, mapperNBS::getCellIterator(), mapperNBS::getSearchCells(), NBS::NBSLevel0_, and NBS::sizeRatio_.

Here is the call graph for this function:

## TypeInfoNV()

TypeInfoNV | ( | "NBS" |  | ) |

## operator=() [1/2]

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

default

## operator=() [2/2]

INLINE_FUNCTION_HD NBS& operator= | ( | NBS && |  | ) |

default

## numLevels()

uint32 numLevels | ( |  | ) | const

inline

Definition at line 133 of file NBS.hpp.

## sizeRatio()

real sizeRatio | ( |  | ) | const

inline

Definition at line 138 of file NBS.hpp.

References NBS::sizeRatio_.

## cellExtent()

real cellExtent | ( |  | ) | const

inline

Definition at line 143 of file NBS.hpp.

References NBS::cellExtent_.

## getCellIterator()

auto getCellIterator | ( | [[maybe_unused] ] uint32 | lvl | ) | const

inline

Definition at line 148 of file NBS.hpp.

References mapperNBS::getCellIterator(), and NBS::NBSLevel0_.

Here is the call graph for this function:

## getDomainCellsLevels()

Vector<cells> getDomainCellsLevels | ( |  | ) | const

inline

Definition at line 153 of file NBS.hpp.

References mapperNBS::getDomainCells(), and NBS::NBSLevel0_.

Here is the call graph for this function:

## Member Data Documentation

## sizeRatio_

real sizeRatio_ = 1.0

private

Definition at line 44 of file NBS.hpp.

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

## cellExtent_

real cellExtent_ = 0.5

private

Definition at line 46 of file NBS.hpp.

Referenced by NBS::cellExtent().

## adjustableBox_

Logical adjustableBox_

private

Definition at line 48 of file NBS.hpp.

## NBSLevel0_

NBSLevel0 NBSLevel0_

private

Definition at line 50 of file NBS.hpp.

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

## cellsWallLevel0_

cellsWallLevel0 cellsWallLevel0_

private

Definition at line 52 of file NBS.hpp.

Referenced by NBS::impl_broadSearch().

## particleWallContactSearchs< NBS >

friend particleWallContactSearchs< NBS >

protected

Definition at line 56 of file NBS.hpp.

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

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