Init the datastructures for a contact for later use of the HCSITS-Solver.
Call this kernel on all contacts that you want to treat with HCSITS before performing any relaxation timesteps. Use setErp() to set the error reduction parameter, which defines the share of the overlap that is resolved in one step (0 meaning after the relaxation the overlap is the same, 1 meaning the particles will have no overlap after relaxation). Use setFriction(a,b, cof) to define the coefficient of friction cof between materials a and b. It is assumed to be symmetric w.r.t. the materials.
#include <InitContactsForHCSITS.h>
Public Member Functions | |
InitContactsForHCSITS (const uint_t numParticleTypes) | |
const real_t & | getErp () const |
void | setErp (real_t v) |
const real_t & | getMaximumPenetration () const |
void | setMaximumPenetration (real_t v) |
void | setFriction (const size_t type1, const size_t type2, const real_t &val) |
real_t | getFriction (const size_t type1, const size_t type2) const |
template<typename CAccessor , typename PAccessor > | |
void | operator() (size_t c, CAccessor &ca, PAccessor &pa) |
Public Attributes | |
std::vector< real_t > | friction_ {} |
Private Attributes | |
const uint_t | numParticleTypes_ |
real_t | erp_ |
real_t | maximumPenetration_ |
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
std::vector<real_t> walberla::mesa_pd::kernel::InitContactsForHCSITS::friction_ {} |
|
private |
|
private |