# PhasicFlow: periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel > Class Template 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.

periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel > Class Template Reference
Inheritance diagram for periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >:
[legend]
Collaboration diagram for periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >:
[legend]

## Public Types

using | PBSInteractionType = periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >
using | BSInteractionType = boundaryGrainInteraction< contactForceModel, geometryMotionModel >
using | GeometryMotionModel = typename BSInteractionType::GeometryMotionModel
using | ContactForceModel = typename BSInteractionType::ContactForceModel
using | MotionModel = typename geometryMotionModel::MotionModel
using | ModelStorage = typename ContactForceModel::contactForceStorage
using | IdType = typename BSInteractionType::IdType
using | IndexType = typename BSInteractionType::IndexType
using | ContactListType = typename BSInteractionType::ContactListType
Public Types inherited from boundaryGrainInteraction< contactForceModel, geometryMotionModel >
using | BoundaryGrainInteractionType = boundaryGrainInteraction< contactForceModel, geometryMotionModel >
using | GeometryMotionModel = geometryMotionModel
using | ContactForceModel = contactForceModel
using | MotionModel = typename geometryMotionModel::MotionModel
using | ModelStorage = typename ContactForceModel::contactForceStorage
using | IdType = uint32
using | IndexType = uint32
using | ContactListType = sortedContactList< ModelStorage, DefaultExecutionSpace, IdType >

## Public Member Functions

| TypeInfoTemplate22 ("boundaryGrainInteraction", "periodic", ContactForceModel, MotionModel)
| periodicBoundaryGrainInteraction (const boundaryBase &boundary, const grainParticles &grnPrtcls, const GeometryMotionModel &geomMotion)
| add_vCtor (BSInteractionType, PBSInteractionType, boundaryBase)
| ~periodicBoundaryGrainInteraction () override=default
bool | grainGrainInteraction (real dt, const ContactForceModel &cfModel, uint32 step) override
Public Member Functions inherited from boundaryGrainInteraction< contactForceModel, geometryMotionModel >
| TypeInfoTemplate12 ("boundaryGrainInteraction", ContactForceModel, MotionModel)
| boundaryGrainInteraction (const boundaryBase &boundary, const grainParticles &grnPrtcls, const GeometryMotionModel &geomMotion)
| create_vCtor (BoundaryGrainInteractionType, boundaryBase,(const boundaryBase &boundary, const grainParticles &grnPrtcls, const GeometryMotionModel &geomMotion),(boundary, grnPrtcls, geomMotion))
| add_vCtor (BoundaryGrainInteractionType, BoundaryGrainInteractionType, boundaryBase)
| ~boundaryGrainInteraction () override=default
const auto & | grnParticles () const
const auto & | geometryMotion () const
ContactListType & | ppPairs ()
const ContactListType & | ppPairs () const
ContactListType & | pwPairs ()
const ContactListType & | pwPairs () const
bool | ppPairsAllocated () const
bool | pwPairsAllocated () const
bool | hearChanges (real t, real dt, uint32 iter, const message &msg, const anyList &varList) override
Public Member Functions inherited from generalBoundary
| TypeInfo ("generalBoundary")
| generalBoundary (const boundaryBase &boundary, const pointStructure &pStruct, const word &dataType, const word &option)
| ~generalBoundary () override=default
uint32 | thisBoundaryIndex () const
uint32 | mirrorBoundaryindex () const
auto | size () const
auto | capacity () const
auto | neighborProcSize () const
int | neighborProcessorNo () const
int | thisProcessorNo () const
const auto & | boundary () const
const auto & | indexList () const
const auto & | mirrorBoundary () const
const word & | boundaryName () const
const word & | type () const
const auto & | pStruct () const
bool | isBoundaryMaster () const
const Time & | time () const
Public Member Functions inherited from observer
| observer (message msg)
| observer (const subscriber *subscrbr, message msg)
virtual | ~observer ()
void | subscribe (const subscriber *subscrbr, message msg)
observer & | addEvent (message::EVENT event)
bool | subscribed () const
void | addToSubscriber (const subscriber *subscrbr, message msg)
bool | addToSubscriber (const subscriber &subscriber)

## Private Attributes

realx3 | transferVec_
bool | masterInteraction_

## Additional Inherited Members

Static Public Member Functions inherited from boundaryGrainInteraction< contactForceModel, geometryMotionModel >
static uniquePtr< BoundaryGrainInteractionType > | create (const boundaryBase &boundary, const grainParticles &sphPrtcls, const GeometryMotionModel &geomMotion)
Static Public Member Functions inherited from observer
static constexpr auto | numEvents ()
Protected Member Functions inherited from boundaryGrainInteraction< contactForceModel, geometryMotionModel >
void | allocatePPPairs ()
void | allocatePWPairs ()

## Detailed Description

### template<typename contactForceModel, typename geometryMotionModel>
class pFlow::periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >

Definition at line 30 of file periodicBoundaryGrainInteraction.hpp.

## Member Typedef Documentation

## PBSInteractionType

using PBSInteractionType = periodicBoundaryGrainInteraction<contactForceModel,geometryMotionModel>

Definition at line 37 of file periodicBoundaryGrainInteraction.hpp.

## BSInteractionType

using BSInteractionType = boundaryGrainInteraction<contactForceModel, geometryMotionModel>

Definition at line 40 of file periodicBoundaryGrainInteraction.hpp.

## GeometryMotionModel

using GeometryMotionModel = typename BSInteractionType::GeometryMotionModel

Definition at line 42 of file periodicBoundaryGrainInteraction.hpp.

## ContactForceModel

using ContactForceModel = typename BSInteractionType::ContactForceModel

Definition at line 44 of file periodicBoundaryGrainInteraction.hpp.

## MotionModel

using MotionModel = typename geometryMotionModel::MotionModel

Definition at line 46 of file periodicBoundaryGrainInteraction.hpp.

## ModelStorage

using ModelStorage = typename ContactForceModel::contactForceStorage

Definition at line 48 of file periodicBoundaryGrainInteraction.hpp.

## IdType

using IdType = typename BSInteractionType::IdType

Definition at line 50 of file periodicBoundaryGrainInteraction.hpp.

## IndexType

using IndexType = typename BSInteractionType::IndexType

Definition at line 52 of file periodicBoundaryGrainInteraction.hpp.

## ContactListType

using ContactListType = typename BSInteractionType::ContactListType

Definition at line 54 of file periodicBoundaryGrainInteraction.hpp.

## Constructor & Destructor Documentation

## periodicBoundaryGrainInteraction()

periodicBoundaryGrainInteraction | ( | const boundaryBase & | boundary,
|  | const grainParticles & | grnPrtcls,
|  | const GeometryMotionModel & | geomMotion
| ) |  |

Definition at line 24 of file periodicBoundaryGrainInteraction.cpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::allocatePPPairs(), boundaryGrainInteraction< contactForceModel, geometryMotionModel >::allocatePWPairs(), generalBoundary::boundary(), and periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >::masterInteraction_.

Here is the call graph for this function:

## ~periodicBoundaryGrainInteraction()

~periodicBoundaryGrainInteraction | ( |  | ) |

overridedefault

## Member Function Documentation

## TypeInfoTemplate22()

TypeInfoTemplate22 | ( | "boundaryGrainInteraction" | ,
|  | "periodic" | ,
|  | ContactForceModel | ,
|  | MotionModel |
| ) |  |

## add_vCtor()

add_vCtor | ( | BSInteractionType | ,
|  | PBSInteractionType | ,
|  | boundaryBase |
| ) |  |

## grainGrainInteraction()

bool grainGrainInteraction | ( | real | dt,
|  | const ContactForceModel & | cfModel,
|  | uint32 | step
| ) |  |

overridevirtual

Reimplemented from boundaryGrainInteraction< contactForceModel, geometryMotionModel >.

Definition at line 46 of file periodicBoundaryGrainInteraction.cpp.

References pFlow::periodicBoundarySIKernels::grainGrainInteraction(), and grnParticles.

Here is the call graph for this function:

## Member Data Documentation

## transferVec_

realx3 transferVec_

private

Definition at line 58 of file periodicBoundaryGrainInteraction.hpp.

## masterInteraction_

bool masterInteraction_

private

Definition at line 60 of file periodicBoundaryGrainInteraction.hpp.

Referenced by periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >::periodicBoundaryGrainInteraction().

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

- src/Interaction/grainInteraction/boundaries/periodicBoundaryGrainInteraction/periodicBoundaryGrainInteraction.hpp
- src/Interaction/grainInteraction/boundaries/periodicBoundaryGrainInteraction/periodicBoundaryGrainInteraction.cpp