Frictional contact (surface)
Template parameters
field_value_t
primary field type
real_t
scalar field type
Constructor arguments
size_t n_part
number of particles in the system
real_t k
normal stiffness
real_t gamma_n
normal damping coefficient
real_t k_t
tangential stiffness
real_t gamma_t
tangential damping coefficient
real_t mu_s
static friction coefficient for sticking/sliding
real_t phi_d
dynamic-to-static friction ratio for sticking/sliding
real_t k_r
rolling resistance stiffness
real_t gamma_r
rolling resistance damping coefficient
real_t mu_r
static friction coefficient for rolling resistance
real_t phi_r
dynamic-to-static friction ratio for rolling resistance
real_t k_o
torsion resistance stiffness
real_t gamma_o
torsion resistance damping coefficient
real_t mu_o
static friction coefficient for torsion resistance
real_t phi_o
dynamic-to-static friction ratio for torsion resistance
real_t r_part
particle radius
real_t mass
particle mass
real_t inertia
particle moment of inertia
real_t dt
integration time step
field_value_t field_zero
zero-valued primary field
real_t real_zero
zero-valued scalar field
Public member functions
operator ()
Synopsis:
Called by the triangular facet to compute the acceleration of particle i due to its frictional contact with the triangular facet
Arguments:
size_t i
index of the particle that is being accelerated
field_value_t const & x_facet
point on the facet closest to the center of particle i
std::vector<fielv_value_t> const & x
const reference to the position buffer
std::vector<fielv_value_t> const & v
const reference to the velocity buffer
std::vector<fielv_value_t> const & theta
const reference to the orientation buffer
std::vector<fielv_value_t> const & omega
const reference to the angular velocity buffer
real_t t
simulation time
Return value:
std::pair<field_value_t, field_value_t>
translational acceleration and angular acceleration of particle i due to its frictional contact with particle j