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

contactSearch Class Referenceabstract
Inheritance diagram for contactSearch:
[legend]
Collaboration diagram for contactSearch:
[legend]

## Public Member Functions

| TypeInfo ("contactSearch")
| contactSearch (const dictionary &dict, const box &extDomain, const particles &prtcl, const geometry &geom, Timers &timers)
virtual | ~contactSearch ()=default
| create_vCtor (contactSearch, dictionary,(const dictionary &dict, const box &domain, const particles &prtcl, const geometry &geom, Timers &timers),(dict, domain, prtcl, geom, timers))
bool | performedSearch () const
bool | performedSearchBoundary () const
bool | performSearch (uint32 iter, bool force=false) const
bool | enterBroadSearch (const timeInfo &ti, bool force=false) const
virtual bool | enterBroadSearchBoundary (const timeInfo &ti, bool force=false) const =0
uint32 | updateInterval () const
const dictionary & | dict () const
const box & | extendedDomainBox () const
const particles & | Particles () const
const pointStructure & | pStruct () const
const geometry & | Geometry () const
Timer & | ppTimer ()
Timer & | bTimer ()
bool | broadSearch (const timeInfo &ti, csPairContainerType &ppPairs, csPairContainerType &pwPairs, bool force=false)
bool | boundaryBroadSearch (uint32 bndryIndex, const timeInfo &ti, csPairContainerType &ppPairs, csPairContainerType &pwPairs, bool force=false)
virtual real | sizeRatio () const =0
virtual real | cellExtent () const =0

## Static Public Member Functions

static uniquePtr< contactSearch > | create (const dictionary &dict, const box &extDomain, const particles &prtcl, const geometry &geom, Timers &timers)

## Private Member Functions

virtual bool | BroadSearch (const timeInfo &ti, csPairContainerType &ppPairs, csPairContainerType &pwPairs, bool force)=0
virtual bool | BoundaryBroadSearch (uint32 bndryIndex, const timeInfo &ti, csPairContainerType &ppPairs, csPairContainerType &pwPairs, bool force=false)=0

## Private Attributes

const box & | extendedDomainBox_
uint32 | updateInterval_ = 1
| update interval in terms of iteration numebr More...
uint32 | lastUpdated_ = 0
| last iteration number which contact search has been performed More...
bool | performedSearch_ = false
| performed search? More...
bool | performedSearchBoundary_ = false
| performed search in boundaries More...
const particles & | particles_
| const ref to particles More...
const geometry & | geometry_
| const ref to geometry More...
Timer | bTimer_
Timer | ppTimer_
dictionary | dict_

## Detailed Description

Definition at line 42 of file contactSearch.hpp.

## Constructor & Destructor Documentation

## contactSearch()

contactSearch | ( | const dictionary & | dict,
|  | const box & | extDomain,
|  | const particles & | prtcl,
|  | const geometry & | geom,
|  | Timers & | timers
| ) |  |

Definition at line 26 of file contactSearch.cpp.

## ~contactSearch()

virtual ~contactSearch | ( |  | ) |

virtualdefault

## Member Function Documentation

## BroadSearch()

virtual bool BroadSearch | ( | const timeInfo & | ti,
|  | csPairContainerType & | ppPairs,
|  | csPairContainerType & | pwPairs,
|  | bool | force
| ) |  |

privatepure virtual

Implemented in ContactSearch< searchMethod >.

## BoundaryBroadSearch()

virtual bool BoundaryBroadSearch | ( | uint32 | bndryIndex,
|  | const timeInfo & | ti,
|  | csPairContainerType & | ppPairs,
|  | csPairContainerType & | pwPairs,
|  | bool | force = `false`
| ) |  |

privatepure virtual

Implemented in ContactSearch< searchMethod >.

## TypeInfo()

TypeInfo | ( | "contactSearch" |  | ) |

## create_vCtor()

create_vCtor | ( | contactSearch | ,
|  | dictionary | ,
|  | (const dictionary &dict, const box &domain, const particles &prtcl, const geometry &geom, Timers &timers) | ,
|  | (dict, domain, prtcl, geom, timers) |
| ) |  |

## performedSearch()

bool performedSearch | ( |  | ) | const

inline

Definition at line 118 of file contactSearch.hpp.

References contactSearch::performedSearch_.

## performedSearchBoundary()

bool performedSearchBoundary | ( |  | ) | const

inline

Definition at line 124 of file contactSearch.hpp.

References contactSearch::performedSearchBoundary_.

## performSearch()

bool performSearch | ( | uint32 | iter,
|  | bool | force = `false`
| ) |  | const

inline

Definition at line 130 of file contactSearch.hpp.

References contactSearch::lastUpdated_, and contactSearch::updateInterval_.

Referenced by contactSearch::enterBroadSearch().

Here is the caller graph for this function:

## enterBroadSearch()

bool enterBroadSearch | ( | const timeInfo & | ti,
|  | bool | force = `false`
| ) |  | const

inline

Definition at line 139 of file contactSearch.hpp.

References timeInfo::iter(), and contactSearch::performSearch().

Referenced by ContactSearch< searchMethod >::enterBroadSearchBoundary().

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

## enterBroadSearchBoundary()

virtual bool enterBroadSearchBoundary | ( | const timeInfo & | ti,
|  | bool | force = `false`
| ) |  | const

pure virtual

Implemented in ContactSearch< searchMethod >.

## updateInterval()

uint32 updateInterval | ( |  | ) | const

inline

Definition at line 148 of file contactSearch.hpp.

References contactSearch::updateInterval_.

## dict()

const dictionary& dict | ( |  | ) | const

inline

Definition at line 154 of file contactSearch.hpp.

References contactSearch::dict_.

Referenced by ContactSearch< searchMethod >::ContactSearch().

Here is the caller graph for this function:

## extendedDomainBox()

const box& extendedDomainBox | ( |  | ) | const

inline

Definition at line 160 of file contactSearch.hpp.

References contactSearch::extendedDomainBox_.

Referenced by ContactSearch< searchMethod >::ContactSearch().

Here is the caller graph for this function:

## Particles()

const particles& Particles | ( |  | ) | const

inline

Definition at line 166 of file contactSearch.hpp.

References contactSearch::particles_.

Referenced by ContactSearch< searchMethod >::BroadSearch(), and ContactSearch< searchMethod >::ContactSearch().

Here is the caller graph for this function:

## pStruct()

const pFlow::pointStructure & pStruct | ( |  | ) | const

Definition at line 43 of file contactSearch.cpp.

## Geometry()

const geometry& Geometry | ( |  | ) | const

inline

Definition at line 174 of file contactSearch.hpp.

References contactSearch::geometry_.

Referenced by ContactSearch< searchMethod >::ContactSearch().

Here is the caller graph for this function:

## ppTimer()

Timer& ppTimer | ( |  | ) |

inline

Definition at line 180 of file contactSearch.hpp.

References contactSearch::ppTimer_.

## bTimer()

Timer& bTimer | ( |  | ) |

inline

Definition at line 186 of file contactSearch.hpp.

References contactSearch::bTimer_.

## broadSearch()

bool broadSearch | ( | const timeInfo & | ti,
|  | csPairContainerType & | ppPairs,
|  | csPairContainerType & | pwPairs,
|  | bool | force = `false`
| ) |  |

Definition at line 49 of file contactSearch.cpp.

References fatalErrorInFunction.

## boundaryBroadSearch()

bool boundaryBroadSearch | ( | uint32 | bndryIndex,
|  | const timeInfo & | ti,
|  | csPairContainerType & | ppPairs,
|  | csPairContainerType & | pwPairs,
|  | bool | force = `false`
| ) |  |

Definition at line 82 of file contactSearch.cpp.

## sizeRatio()

virtual real sizeRatio | ( |  | ) | const

pure virtual

Implemented in ContactSearch< searchMethod >.

## cellExtent()

virtual real cellExtent | ( |  | ) | const

pure virtual

Implemented in ContactSearch< searchMethod >.

## create()

pFlow::uniquePtr< pFlow::contactSearch > create | ( | const dictionary & | dict,
|  | const box & | extDomain,
|  | const particles & | prtcl,
|  | const geometry & | geom,
|  | Timers & | timers
| ) |  |

static

Definition at line 118 of file contactSearch.cpp.

References pFlow::angleBracketsNames(), pFlow::endl(), fatalError, fatalExit, dictionary::getVal(), Green_Text, pFlow::pOutput, pFlow::printKeys(), and iOstream::space().

Here is the call graph for this function:

## Member Data Documentation

## extendedDomainBox_

const box& extendedDomainBox_

private

Definition at line 46 of file contactSearch.hpp.

Referenced by contactSearch::extendedDomainBox().

## updateInterval_

uint32 updateInterval_ = 1

private

update interval in terms of iteration numebr

Definition at line 49 of file contactSearch.hpp.

Referenced by contactSearch::performSearch(), and contactSearch::updateInterval().

## lastUpdated_

uint32 lastUpdated_ = 0

private

last iteration number which contact search has been performed

Definition at line 52 of file contactSearch.hpp.

Referenced by contactSearch::performSearch().

## performedSearch_

bool performedSearch_ = false

private

performed search?

Definition at line 55 of file contactSearch.hpp.

Referenced by contactSearch::performedSearch().

## performedSearchBoundary_

bool performedSearchBoundary_ = false

private

performed search in boundaries

Definition at line 58 of file contactSearch.hpp.

Referenced by contactSearch::performedSearchBoundary().

## particles_

const particles& particles_

private

const ref to particles

Definition at line 61 of file contactSearch.hpp.

Referenced by contactSearch::Particles().

## geometry_

const geometry& geometry_

private

const ref to geometry

Definition at line 64 of file contactSearch.hpp.

Referenced by contactSearch::Geometry().

## bTimer_

Timer bTimer_

private

Definition at line 66 of file contactSearch.hpp.

Referenced by contactSearch::bTimer().

## ppTimer_

Timer ppTimer_

private

Definition at line 68 of file contactSearch.hpp.

Referenced by contactSearch::ppTimer().

## dict_

dictionary dict_

private

Definition at line 70 of file contactSearch.hpp.

Referenced by contactSearch::dict().

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

- src/Interaction/contactSearch/contactSearch/contactSearch.hpp
- src/Interaction/contactSearch/contactSearch/contactSearch.cpp