# PhasicFlow: MotionModel< Model, Component >::ModelInterface 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.

MotionModel< Model, Component >::ModelInterface Class Reference

Motion model class to be passed to computational units/kernels for transfing points and returning velocities at various positions. More...

## Public Member Functions

INLINE_FUNCTION_HD | ModelInterface (deviceViewType1D< ModelComponent > Comps, uint32 numComp)
INLINE_FUNCTION_HD | ModelInterface (const ModelInterface &)=default
INLINE_FUNCTION_HD ModelInterface & | operator= (const ModelInterface &)=default
INLINE_FUNCTION_HD | ModelInterface (ModelInterface &&) noexcept=default
INLINE_FUNCTION_HD ModelInterface & | operator= (ModelInterface &&) noexcept=default
INLINE_FUNCTION_HD | ~ModelInterface ()=default
INLINE_FUNCTION_HD realx3 | pointVelocity (uint32 n, const realx3 &p) const
INLINE_FUNCTION_HD realx3 | operator() (uint32 n, const realx3 &p) const
INLINE_FUNCTION_HD realx3 | transferPoint (uint32 n, const realx3 p, real dt) const
INLINE_FUNCTION_HD uint32 | size () const

## Private Attributes

deviceViewType1D< ModelComponent > | components_
uint32 | numComponents_ =0

## Detailed Description

### template<typename Model, typename Component>
class pFlow::MotionModel< Model, Component >::ModelInterface

Motion model class to be passed to computational units/kernels for transfing points and returning velocities at various positions.

Definition at line 52 of file MotionModel.hpp.

## Constructor & Destructor Documentation

## ModelInterface() [1/3]

INLINE_FUNCTION_HD ModelInterface | ( | deviceViewType1D< ModelComponent > | Comps,
|  | uint32 | numComp
| ) |  |

inline

Definition at line 64 of file MotionModel.hpp.

## ModelInterface() [2/3]

INLINE_FUNCTION_HD ModelInterface | ( | const ModelInterface & |  | ) |

default

## ModelInterface() [3/3]

INLINE_FUNCTION_HD ModelInterface | ( | ModelInterface && |  | ) |

defaultnoexcept

## ~ModelInterface()

INLINE_FUNCTION_HD ~ModelInterface | ( |  | ) |

default

## Member Function Documentation

## operator=() [1/2]

INLINE_FUNCTION_HD ModelInterface& operator= | ( | const ModelInterface & |  | ) |

default

## operator=() [2/2]

INLINE_FUNCTION_HD ModelInterface& operator= | ( | ModelInterface && |  | ) |

defaultnoexcept

## pointVelocity()

INLINE_FUNCTION_HD realx3 pointVelocity | ( | uint32 | n,
|  | const realx3 & | p
| ) |  | const

inline

Definition at line 88 of file MotionModel.hpp.

References MotionModel< Model, Component >::ModelInterface::components_, and n.

Referenced by MotionModel< Model, Component >::ModelInterface::operator()().

Here is the caller graph for this function:

## operator()()

INLINE_FUNCTION_HD realx3 operator() | ( | uint32 | n,
|  | const realx3 & | p
| ) |  | const

inline

Definition at line 94 of file MotionModel.hpp.

References n, and MotionModel< Model, Component >::ModelInterface::pointVelocity().

Here is the call graph for this function:

## transferPoint()

INLINE_FUNCTION_HD realx3 transferPoint | ( | uint32 | n,
|  | const realx3 | p,
|  | real | dt
| ) |  | const

inline

Definition at line 100 of file MotionModel.hpp.

References MotionModel< Model, Component >::ModelInterface::components_, and n.

## size()

INLINE_FUNCTION_HD uint32 size | ( |  | ) | const

inline

Definition at line 106 of file MotionModel.hpp.

References MotionModel< Model, Component >::ModelInterface::numComponents_.

## Member Data Documentation

## components_

deviceViewType1D<ModelComponent> components_

private

Definition at line 56 of file MotionModel.hpp.

Referenced by MotionModel< Model, Component >::ModelInterface::pointVelocity(), and MotionModel< Model, Component >::ModelInterface::transferPoint().

## numComponents_

uint32 numComponents_ =0

private

Definition at line 58 of file MotionModel.hpp.

Referenced by MotionModel< Model, Component >::ModelInterface::size().

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

- src/MotionModel/MotionModel/MotionModel.hpp