tAdded wall viscosities to wall contact model, added static/dynamic frictions - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit f07848d9a5dda616d45ce0e8fe5696882370b9fc
(DIR) parent af2de06847aae3374f42f0ba99feeb25149ae8dc
(HTM) Author: Anders Damsgaard <adc@geo.au.dk>
Date: Wed, 31 Oct 2012 08:57:19 +0100
Added wall viscosities to wall contact model, added static/dynamic frictions
Diffstat:
M src/contactmodels.cuh | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/src/contactmodels.cuh b/src/contactmodels.cuh
t@@ -44,7 +44,7 @@ __device__ Float contactLinear_wall(Float3* F, Float3* T, Float* es_dot,
//Float3 f_n = -devC_params.k_n * delta * n;
// Normal force component: Elastic - viscous damping
- Float3 f_n = (-devC_params.k_n * delta - devC_params.gamma_n * vel_n) * n;
+ Float3 f_n = (-devC_params.k_n * delta - devC_params.gamma_wn * vel_n) * n;
// Make sure the viscous damping doesn't exceed the elastic component,
// i.e. the damping factor doesn't exceed the critical damping, 2*sqrt(m*k_n)
t@@ -61,8 +61,15 @@ __device__ Float contactLinear_wall(Float3* F, Float3* T, Float* es_dot,
// divide by zero (producing a NaN)
if (vel_t_length > 0.f) {
- Float f_t_visc = devC_params.gamma_t * vel_t_length; // Tangential force by viscous model
- Float f_t_limit = devC_params.mu_s * f_n_length; // Max. friction
+ Float f_t_visc = devC_params.gamma_wt * vel_t_length; // Tangential force by viscous model
+
+ // Determine max. friction
+ Float f_t_limit;
+ if (vel_t_length > 0.001f) { // Dynamic
+ f_t_limit = devC_params.mu_rd * f_n_length;
+ } else { // Static
+ f_t_limit = devC_params.mu_rs * f_n_length;
+ }
// If the shear force component exceeds the friction,
// the particle slips and energy is dissipated