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

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

## Public Member Functions

| TypeInfo ("boundary<periodic>")
| boundaryPeriodic (const dictionary &dict, const plane &bplane, internalPoints &internal, boundaryList &bndrs, uint32 thisIndex)
| ~boundaryPeriodic () override=default
| add_vCtor (boundaryBase, boundaryPeriodic, dictionary)
real | neighborLength () const override
| The distance length from boundary plane where neighbor particles still exist in that distance. More...
realx3 | boundaryExtensionLength () const override
| The extention length (in vector form) for the boundary as required by each boundary type. More...
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...
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

## Private Attributes

uint32 | mirrorBoundaryIndex_
real | extensionLength_ = 0.1

## 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 boundaryPeriodic.hpp.

## Constructor & Destructor Documentation

## boundaryPeriodic()

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

Definition at line 27 of file boundaryPeriodic.cpp.

References pFlow::algorithms::KOKKOS::max().

Here is the call graph for this function:

## ~boundaryPeriodic()

~boundaryPeriodic | ( |  | ) |

overridedefault

## Member Function Documentation

## TypeInfo()

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

## add_vCtor()

add_vCtor | ( | boundaryBase | ,
|  | boundaryPeriodic | ,
|  | dictionary |
| ) |  |

## neighborLength()

pFlow::real neighborLength | ( |  | ) | const

overridevirtual

The distance length from boundary plane where neighbor particles still exist in that distance.

This length may be modified in each boundary type as required. In this case the boundaryExtensionLength method should also be modified accordingly.

Reimplemented from boundaryBase.

Definition at line 42 of file boundaryPeriodic.cpp.

References boundaryPeriodic::extensionLength_, and boundaryBase::neighborLengthIntoInternal().

Here is the call graph for this function:

## boundaryExtensionLength()

pFlow::realx3 boundaryExtensionLength | ( |  | ) | const

overridevirtual

The extention length (in vector form) for the boundary as required by each boundary type.

It is allowed for each boundary type to be extended outward to allow particles to stay more in its list before being removed from its list.

Reimplemented from boundaryBase.

Definition at line 47 of file boundaryPeriodic.cpp.

References boundaryBase::boundaryPlane(), and infinitePlane::normal().

Here is the call graph for this function:

## beforeIteration()

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

finalvirtual

Reimplemented from boundaryBase.

Definition at line 53 of file boundaryPeriodic.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 125 of file boundaryPeriodic.cpp.

## afterIteration()

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

finalvirtual

Implements boundaryBase.

Definition at line 130 of file boundaryPeriodic.cpp.

## Member Data Documentation

## mirrorBoundaryIndex_

uint32 mirrorBoundaryIndex_

private

Definition at line 36 of file boundaryPeriodic.hpp.

## extensionLength_

real extensionLength_ = 0.1

private

Definition at line 38 of file boundaryPeriodic.hpp.

Referenced by boundaryPeriodic::neighborLength().

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

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