Detailed Description

Advanced DEM kernel.

This model is the model from 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 <NonLinearSpringDashpot.h>

Public Member Functions

 NonLinearSpringDashpot (const uint_t numParticleTypes, const real_t collisionTime)
 
 NonLinearSpringDashpot (const NonLinearSpringDashpot &other)=default
 
 NonLinearSpringDashpot (NonLinearSpringDashpot &&other)=default
 
NonLinearSpringDashpotoperator= (const NonLinearSpringDashpot &other)=default
 
NonLinearSpringDashpotoperator= (NonLinearSpringDashpot &&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
 
void setCOR (const size_t type1, const size_t type2, const real_t &val)
 
void setLnCORsqr (const size_t type1, const size_t type2, const real_t &val)
 assumes this parameter is symmetric More...
 
void setMeff (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 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 getLnCORsqr (const size_t type1, const size_t type2) const
 
real_t getMeff (const size_t type1, const size_t type2) const
 
real_t getStiffnessT (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_
 
real_t collisionTime_
 
std::vector< real_tlnCORsqr_ {}
 
std::vector< real_tmeff_ {}
 
std::vector< real_tstiffnessT_ {}
 
std::vector< real_tdampingT_ {}
 
std::vector< real_tfrictionCoefficientStatic_ {}
 
std::vector< real_tfrictionCoefficientDynamic_ {}
 

Constructor & Destructor Documentation

◆ NonLinearSpringDashpot() [1/3]

walberla::mesa_pd::kernel::NonLinearSpringDashpot::NonLinearSpringDashpot ( const uint_t  numParticleTypes,
const real_t  collisionTime 
)

◆ NonLinearSpringDashpot() [2/3]

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

◆ NonLinearSpringDashpot() [3/3]

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

Member Function Documentation

◆ getDampingT()

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

◆ getFrictionCoefficientDynamic()

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

◆ getFrictionCoefficientStatic()

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

◆ getLnCORsqr()

real_t walberla::mesa_pd::kernel::NonLinearSpringDashpot::getLnCORsqr ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getMeff()

real_t walberla::mesa_pd::kernel::NonLinearSpringDashpot::getMeff ( const size_t  type1,
const size_t  type2 
) const
inline

◆ getStiffnessT()

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

◆ operator()()

template<typename Accessor >
void walberla::mesa_pd::kernel::NonLinearSpringDashpot::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]

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

◆ operator=() [2/2]

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

◆ setCOR()

void walberla::mesa_pd::kernel::NonLinearSpringDashpot::setCOR ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

◆ setDampingT()

void walberla::mesa_pd::kernel::NonLinearSpringDashpot::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::NonLinearSpringDashpot::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::NonLinearSpringDashpot::setFrictionCoefficientStatic ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setLnCORsqr()

void walberla::mesa_pd::kernel::NonLinearSpringDashpot::setLnCORsqr ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setMeff()

void walberla::mesa_pd::kernel::NonLinearSpringDashpot::setMeff ( const size_t  type1,
const size_t  type2,
const real_t val 
)
inline

assumes this parameter is symmetric

◆ setStiffnessT()

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

assumes this parameter is symmetric

Member Data Documentation

◆ collisionTime_

real_t walberla::mesa_pd::kernel::NonLinearSpringDashpot::collisionTime_
private

◆ dampingT_

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

◆ frictionCoefficientDynamic_

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

◆ frictionCoefficientStatic_

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

◆ lnCORsqr_

std::vector<real_t> walberla::mesa_pd::kernel::NonLinearSpringDashpot::lnCORsqr_ {}
private

◆ meff_

std::vector<real_t> walberla::mesa_pd::kernel::NonLinearSpringDashpot::meff_ {}
private

◆ numParticleTypes_

uint_t walberla::mesa_pd::kernel::NonLinearSpringDashpot::numParticleTypes_
private

◆ stiffnessT_

std::vector<real_t> walberla::mesa_pd::kernel::NonLinearSpringDashpot::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