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

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

## Public Member Functions

| TypeInfo ("boundary<exit>")
| boundaryExit (const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex)
virtual | ~boundaryExit ()=default
| add_vCtor (boundaryBase, boundaryExit, dictionary)
bool | beforeIteration (uint32 step, const timeInfo &ti, bool updateIter, bool iterBeforeUpdate, bool &callAgain) final
bool | iterate (const timeInfo &ti) final
bool | afterIteration (const timeInfo &ti) final
Public Member Functions inherited from boundaryBase
uint32 | markInNegativeSide (const word &name, uint32Vector_D &markedIndices) const
| TypeInfo ("boundaryBase")
| boundaryBase (const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex)
| boundaryBase (const boundaryBase &)=delete
boundaryBase & | operator= (const boundaryBase &)=delete
| boundaryBase (boundaryBase &&)=default
boundaryBase & | operator= (boundaryBase &&)=default
| ~boundaryBase () override=default
| create_vCtor (boundaryBase, dictionary,(const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex),(dict, bplane, internal, bndrs, thisIndex))
real | neighborLengthIntoInternal () const
| The length from boundary plane into the domain where beyond that distance internal points exist. More...
virtual real | neighborLength () const
| The distance length from boundary plane where neighbor particles still exist in that distance. More...
virtual realx3 | boundaryExtensionLength () const
| The extention length (in vector form) for the boundary as required by each boundary type. More...
bool | performBoundarytUpdate () const
| Is this iter the right time for updating bounday list. More...
bool | iterBeforeBoundaryUpdate () const
const word & | type () const
const word & | name () const
bool | empty () const
auto | size () const
auto | capacity () const
int | neighborProcessorNo () const
int | thisProcessorNo () const
bool | isBoundaryMaster () const
uint32 | thisBoundaryIndex () const
uint32 | mirrorBoundaryIndex () const
const internalPoints & | internal () const
internalPoints & | internal ()
const pointStructure & | pStruct () const
const Time & | time () const
const auto & | indexList () const
const auto & | indexListHost () const
boundaryBase & | mirrorBoundary ()
const boundaryBase & | mirrorBoundary () const
const plane & | boundaryPlane () const
| the actual boundary plane of this boundary More...
virtual realx3 | displacementVectroToMirror () const
| displacement vector that transfers points to a distance that is equal to the distance between this plane and the mirror plane, the vector points from this plane to mirror plane More...
pointFieldAccessType | thisPoints () const
virtual uint32 | neighborProcSize () const
| Return number of points in the neighbor processor boundary. More...
virtual realx3Vector_D & | neighborProcPoints ()
| Return a reference to point positions in the neighbor processor boundary. More...
virtual const realx3Vector_D & | neighborProcPoints () const
| Return a const reference to point positions in the neighbor processor boundary. More...
virtual uint32 | numToTransfer () const
virtual uint32 | numToRecieve () const
Public Member Functions inherited from subscriber
| subscriber (const word &name)
| subscriber (const subscriber &)
| Copy constructor, only copies the name, not the list. More...
| subscriber (subscriber &&)
| Move constructor, moves the name and the list, also change the subriber of the object in the list More...
subscriber & | operator= (const subscriber &)
| Copy assignemnt, only assign the name, do not assign the list. More...
subscriber & | operator= (subscriber &&)
| Move assignment, move assign name and list, also change the subcriber of the object in the list More...
virtual | ~subscriber ()
virtual bool | subscribe (message msg, observer *obsevr) const
virtual bool | unsubscribe (observer *obsevr) const
bool | notify (uint32 iter, real t, real dt, const message msg, const anyList &varList)
bool | notify (const timeInfo &ti, const message msg, const anyList &varList)
const word & | subscriberName () const

## Protected Attributes

real | exitMarginLength_ = 0
| Length of margin in the negative side of boundary to still allow points stay in the simulation. More...
uint32 | checkForExitInterval_ = 1
| between successive check for particle exit (iteration-based). More...

## Additional Inherited Members

Public Types inherited from boundaryBase
using | pointFieldAccessType = deviceScatteredFieldAccess< realx3 >
Static Public Member Functions inherited from boundaryBase
static uniquePtr< boundaryBase > | create (const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex)
Protected Member Functions inherited from boundaryBase
virtual void | setSize (uint32 newSize)
| Set the size of indexList. More...
void | setUpdateTime (bool val)
void | setNewIndices (const uint32Vector_D &newIndices)
bool | appendNewIndices (const uint32Vector_D &newIndices)
bool | removeIndices (uint32 numRemove, const uint32Vector_D &removeMask)
bool | setRemoveKeepIndices (const uint32Vector_D &removeIndices, const uint32Vector_D &keepIndices)
bool | transferPointsToMirror (uint32 numTransfer, const uint32Vector_D &transferMask, uint32 transferBoundaryIndex, realx3 transferVector)
void | unSyncLists ()
void | syncLists () const
virtual bool | updataBoundaryData (int step)
| Update this boundary data in two steps (1 and 2). More...
virtual bool | transferData (uint32 iter, int step, bool &callAgain)
| This method is called when a transfer of data is to be performed between processors (in afterIteration). More...

## Detailed Description

Definition at line 30 of file boundaryExit.hpp.

## Constructor & Destructor Documentation

## boundaryExit()

boundaryExit | ( | const dictionary & | dict,
|  | const plane & | bplane,
|  | internalPoints & | internal,
|  | boundaryList & | bndrs,
|  | uint32 | thisIndex
| ) |  |

Definition at line 27 of file boundaryExit.cpp.

References dictionary::getValOrSet(), and pFlow::algorithms::KOKKOS::max().

Here is the call graph for this function:

## ~boundaryExit()

virtual ~boundaryExit | ( |  | ) |

virtualdefault

## Member Function Documentation

## TypeInfo()

TypeInfo | ( | "boundary<exit>" |  | ) |

## add_vCtor()

add_vCtor | ( | boundaryBase | ,
|  | boundaryExit | ,
|  | dictionary |
| ) |  |

## beforeIteration()

bool beforeIteration | ( | uint32 | step,
|  | const timeInfo & | ti,
|  | bool | updateIter,
|  | bool | iterBeforeUpdate,
|  | bool & | callAgain
| ) |  |

finalvirtual

Reimplemented from boundaryBase.

Definition at line 44 of file boundaryExit.cpp.

References VectorSingle< T, MemorySpace >::deviceViewAll(), VectorSingle< T, MemorySpace >::fill(), and LAMBDA_HD.

Here is the call graph for this function:

## iterate()

bool iterate | ( | const timeInfo & | ti | ) |

finalvirtual

Implements boundaryBase.

Definition at line 113 of file boundaryExit.cpp.

## afterIteration()

bool afterIteration | ( | const timeInfo & | ti | ) |

finalvirtual

Implements boundaryBase.

Definition at line 118 of file boundaryExit.cpp.

## Member Data Documentation

## exitMarginLength_

real exitMarginLength_ = 0

protected

Length of margin in the negative side of boundary to still allow points stay in the simulation.

Definition at line 39 of file boundaryExit.hpp.

## checkForExitInterval_

uint32 checkForExitInterval_ = 1

protected

between successive check for particle exit (iteration-based).

Definition at line 43 of file boundaryExit.hpp.

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

- src/phasicFlow/structuredData/boundaries/boundaryExit/boundaryExit.hpp
- src/phasicFlow/structuredData/boundaries/boundaryExit/boundaryExit.cpp