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

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

## Public Types

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

| 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
virtual bool | grainGrainInteraction (real dt, const ContactForceModel &cfModel, uint32 step)
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)

## Static Public Member Functions

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

void | allocatePPPairs ()
void | allocatePWPairs ()

## Private Attributes

const GeometryMotionModel & | geometryMotion_
const grainParticles & | grnParticles_
| const reference to sphere particles More...
uniquePtr< ContactListType > | ppPairs_ = nullptr
uniquePtr< ContactListType > | pwPairs_ = nullptr

## Detailed Description

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

Definition at line 32 of file boundaryGrainInteraction.hpp.

## Member Typedef Documentation

## BoundaryGrainInteractionType

using BoundaryGrainInteractionType = boundaryGrainInteraction<contactForceModel, geometryMotionModel>

Definition at line 39 of file boundaryGrainInteraction.hpp.

## GeometryMotionModel

using GeometryMotionModel = geometryMotionModel

Definition at line 41 of file boundaryGrainInteraction.hpp.

## ContactForceModel

using ContactForceModel = contactForceModel

Definition at line 43 of file boundaryGrainInteraction.hpp.

## MotionModel

using MotionModel = typename geometryMotionModel::MotionModel

Definition at line 45 of file boundaryGrainInteraction.hpp.

## ModelStorage

using ModelStorage = typename ContactForceModel::contactForceStorage

Definition at line 47 of file boundaryGrainInteraction.hpp.

## IdType

using IdType = uint32

Definition at line 49 of file boundaryGrainInteraction.hpp.

## IndexType

using IndexType = uint32

Definition at line 51 of file boundaryGrainInteraction.hpp.

## ContactListType

using ContactListType = sortedContactList<ModelStorage, DefaultExecutionSpace, IdType>

Definition at line 54 of file boundaryGrainInteraction.hpp.

## Constructor & Destructor Documentation

## boundaryGrainInteraction()

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

Definition at line 38 of file boundaryGrainInteraction.cpp.

## ~boundaryGrainInteraction()

~boundaryGrainInteraction | ( |  | ) |

overridedefault

## Member Function Documentation

## allocatePPPairs()

void allocatePPPairs

protected

Definition at line 23 of file boundaryGrainInteraction.cpp.

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

Here is the caller graph for this function:

## allocatePWPairs()

void allocatePWPairs

protected

Definition at line 30 of file boundaryGrainInteraction.cpp.

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

Here is the caller graph for this function:

## TypeInfoTemplate12()

TypeInfoTemplate12 | ( | "boundaryGrainInteraction< contactForceModel, geometryMotionModel >" | ,
|  | ContactForceModel | ,
|  | MotionModel |
| ) |  |

## create_vCtor()

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

## add_vCtor()

add_vCtor | ( | BoundaryGrainInteractionType | ,
|  | BoundaryGrainInteractionType | ,
|  | boundaryBase |
| ) |  |

## grnParticles()

const auto& grnParticles | ( |  | ) | const

inline

Definition at line 103 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::grnParticles_.

## geometryMotion()

const auto& geometryMotion | ( |  | ) | const

inline

Definition at line 108 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::geometryMotion_.

## ppPairs() [1/2]

ContactListType& ppPairs | ( |  | ) |

inline

Definition at line 113 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::ppPairs_.

## ppPairs() [2/2]

const ContactListType& ppPairs | ( |  | ) | const

inline

Definition at line 118 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::ppPairs_.

## pwPairs() [1/2]

ContactListType& pwPairs | ( |  | ) |

inline

Definition at line 123 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::pwPairs_.

## pwPairs() [2/2]

const ContactListType& pwPairs | ( |  | ) | const

inline

Definition at line 128 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::pwPairs_.

## ppPairsAllocated()

bool ppPairsAllocated | ( |  | ) | const

inline

Definition at line 133 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::ppPairs_.

## pwPairsAllocated()

bool pwPairsAllocated | ( |  | ) | const

inline

Definition at line 139 of file boundaryGrainInteraction.hpp.

References boundaryGrainInteraction< contactForceModel, geometryMotionModel >::pwPairs_.

## grainGrainInteraction()

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

inlinevirtual

Reimplemented in periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel >.

Definition at line 146 of file boundaryGrainInteraction.hpp.

## hearChanges()

bool hearChanges | ( | real | t,
|  | real | dt,
|  | uint32 | iter,
|  | const message & | msg,
|  | const anyList & | varList
| ) |  |

inlineoverridevirtual

Implements observer.

Definition at line 158 of file boundaryGrainInteraction.hpp.

References generalBoundary::boundaryName(), pFlow::endl(), pFlow::pOutput, and generalBoundary::type().

Here is the call graph for this function:

## create()

pFlow::uniquePtr< pFlow::boundaryGrainInteraction< cFM, gMM > > create | ( | const boundaryBase & | boundary,
|  | const grainParticles & | sphPrtcls,
|  | const GeometryMotionModel & | geomMotion
| ) |  |

static

Definition at line 50 of file boundaryGrainInteraction.cpp.

References pFlow::angleBracketsNames2(), pFlow::angleBracketsNames3(), END_REPORT, fatalError, fatalExit, Green_Text, boundaryBase::name(), pFlow::pOutput, pFlow::printKeys(), iOstream::space(), and boundaryBase::type().

Here is the call graph for this function:

## Member Data Documentation

## geometryMotion_

const GeometryMotionModel& geometryMotion_

private

Definition at line 58 of file boundaryGrainInteraction.hpp.

Referenced by boundaryGrainInteraction< contactForceModel, geometryMotionModel >::geometryMotion().

## grnParticles_

const grainParticles& grnParticles_

private

const reference to sphere particles

Definition at line 61 of file boundaryGrainInteraction.hpp.

Referenced by boundaryGrainInteraction< contactForceModel, geometryMotionModel >::grnParticles().

## ppPairs_

uniquePtr<ContactListType> ppPairs_ = nullptr

private

Definition at line 63 of file boundaryGrainInteraction.hpp.

Referenced by boundaryGrainInteraction< contactForceModel, geometryMotionModel >::ppPairs(), and boundaryGrainInteraction< contactForceModel, geometryMotionModel >::ppPairsAllocated().

## pwPairs_

uniquePtr<ContactListType> pwPairs_ = nullptr

private

Definition at line 65 of file boundaryGrainInteraction.hpp.

Referenced by boundaryGrainInteraction< contactForceModel, geometryMotionModel >::pwPairs(), and boundaryGrainInteraction< contactForceModel, geometryMotionModel >::pwPairsAllocated().

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

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