Detailed Description

Advanced DEM kernel.

This model is a linearized version of Edward Biegert, Bernhard Vowinckel, Eckart Meiburg A collision model for grain-resolving simulations of flows over dense, mobile, polydisperse granular sediment beds https://doi.org/10.1016/j.jcp.2017.03.035

const walberla::id_t& getUid(const size_t p_idx) const;
const walberla::mesa_pd::Vec3& getPosition(const size_t p_idx) const;
const walberla::mesa_pd::Vec3& getLinearVelocity(const size_t p_idx) const;
walberla::mesa_pd::Vec3& getForceRef(const size_t p_idx);
const walberla::mesa_pd::Vec3& getAngularVelocity(const size_t p_idx) const;
walberla::mesa_pd::Vec3& getTorqueRef(const size_t p_idx);
const uint_t& getType(const size_t p_idx) const;
const std::map<walberla::id_t, walberla::mesa_pd::Vec3>& getContactHistory(const size_t p_idx) const;
void setContactHistory(const size_t p_idx, const std::map<walberla::id_t, walberla::mesa_pd::Vec3>& v);

#include <LinearSpringDashpot.h>

Public Member Functions

 LinearSpringDashpot (const uint_t numParticleTypes)
 
 LinearSpringDashpot (const LinearSpringDashpot &other)=default
 
 LinearSpringDashpot (LinearSpringDashpot &&other)=default
 
LinearSpringDashpotoperator= (const LinearSpringDashpot &other)=default
 
LinearSpringDashpotoperator= (LinearSpringDashpot &&other)=default
 
template<typename Accessor >
void operator() (const size_t p_idx1, const size_t p_idx2, Accessor &ac, const Vec3 &contactPoint, const Vec3 &contactNormal, const real_t &penetrationDepth, const real_t &dt) const
 
real_t calcCoefficientOfRestitution (const size_t type1, const size_t type2, const real_t effectiveMass)
 
real_t calcCollisionTime (const size_t type1, const size_t type2, const real_t effectiveMass)
 
void setStiffnessAndDamping (const size_t type1, const size_t type2, const real_t coefficientOfRestitution, const real_t collisionTime, const real_t kappa, const real_t effectiveMass)
 
void setStiffnessN (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setStiffnessT (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setDampingN (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setDampingT (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setFrictionCoefficientStatic (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setFrictionCoefficientDynamic (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
real_t getStiffnessN (const size_t type1, const size_t type2) const
 
real_t getStiffnessT (const size_t type1, const size_t type2) const
 
real_t getDampingN (const size_t type1, const size_t type2) const
 
real_t getDampingT (const size_t type1, const size_t type2) const
 
real_t getFrictionCoefficientStatic (const size_t type1, const size_t type2) const
 
real_t getFrictionCoefficientDynamic (const size_t type1, const size_t type2) const
 

Private Attributes

uint_t numParticleTypes_
 
std::vector< real_tstiffnessN_ {}
 
std::vector< real_tstiffnessT_ {}
 
std::vector< real_tdampingN_ {}
 
std::vector< real_tdampingT_ {}
 
std::vector< real_tfrictionCoefficientStatic_ {}
 
std::vector< real_tfrictionCoefficientDynamic_ {}
 

Constructor & Destructor Documentation

◆ LinearSpringDashpot() [1/3]

walberla::mesa_pd::kernel::LinearSpringDashpot::LinearSpringDashpot ( const uint_t  numParticleTypes)

◆ LinearSpringDashpot() [2/3]

walberla::mesa_pd::kernel::LinearSpringDashpot::LinearSpringDashpot ( const LinearSpringDashpot other)
default

◆ LinearSpringDashpot() [3/3]

walberla::mesa_pd::kernel::LinearSpringDashpot::LinearSpringDashpot ( LinearSpringDashpot &&  other)
default

Member Function Documentation

◆ calcCoefficientOfRestitution()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::calcCoefficientOfRestitution ( const size_t  type1,
const size_t  type2,
const real_t  effectiveMass 
)
inline

◆ calcCollisionTime()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::calcCollisionTime ( const size_t  type1,
const size_t  type2,
const real_t  effectiveMass 
)
inline

◆ getDampingN()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getDampingN ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getDampingT()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getDampingT ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getFrictionCoefficientDynamic()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getFrictionCoefficientDynamic ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getFrictionCoefficientStatic()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getFrictionCoefficientStatic ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getStiffnessN()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getStiffnessN ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getStiffnessT()

real_t walberla::mesa_pd::kernel::LinearSpringDashpot::getStiffnessT ( const size_t  type1,
const size_t  type2 
) const
inline

◆ operator()()

template<typename Accessor >
void walberla::mesa_pd::kernel::LinearSpringDashpot::operator() ( const size_t  p_idx1,
const size_t  p_idx2,
Accessor &  ac,
const Vec3 contactPoint,
const Vec3 contactNormal,
const real_t penetrationDepth,
const real_t dt 
) const
inline

◆ operator=() [1/2]

LinearSpringDashpot& walberla::mesa_pd::kernel::LinearSpringDashpot::operator= ( const LinearSpringDashpot other)
default

◆ operator=() [2/2]

LinearSpringDashpot& walberla::mesa_pd::kernel::LinearSpringDashpot::operator= ( LinearSpringDashpot &&  other)
default

◆ setDampingN()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setDampingN ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setDampingT()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setDampingT ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setFrictionCoefficientDynamic()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setFrictionCoefficientDynamic ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setFrictionCoefficientStatic()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setFrictionCoefficientStatic ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setStiffnessAndDamping()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setStiffnessAndDamping ( const size_t  type1,
const size_t  type2,
const real_t  coefficientOfRestitution,
const real_t  collisionTime,
const real_t  kappa,
const real_t  effectiveMass 
)
inline

◆ setStiffnessN()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setStiffnessN ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setStiffnessT()

void walberla::mesa_pd::kernel::LinearSpringDashpot::setStiffnessT ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

Member Data Documentation

◆ dampingN_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::dampingN_ {}
private

◆ dampingT_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::dampingT_ {}
private

◆ frictionCoefficientDynamic_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::frictionCoefficientDynamic_ {}
private

◆ frictionCoefficientStatic_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::frictionCoefficientStatic_ {}
private

◆ numParticleTypes_

uint_t walberla::mesa_pd::kernel::LinearSpringDashpot::numParticleTypes_
private

◆ stiffnessN_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::stiffnessN_ {}
private

◆ stiffnessT_

std::vector<real_t> walberla::mesa_pd::kernel::LinearSpringDashpot::stiffnessT_ {}
private

The documentation for this class was generated from the following file:
uint64_t id_t
Definition: DataTypes.h:109
std::size_t uint_t
Definition: DataTypes.h:133