tRemoved rolling radius, substituted with radius_a - 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 507464b4e3dc102985c1490e416d5ee0da7925f0
(DIR) parent 4bd862bc4ff2de3e91848eada8ce04ef62fa2888
(HTM) Author: Anders Damsgaard <adc@geo.au.dk>
Date: Sun, 30 Sep 2012 21:51:47 +0200
Removed rolling radius, substituted with radius_a
Diffstat:
M src/contactmodels.cuh | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
---
(DIR) diff --git a/src/contactmodels.cuh b/src/contactmodels.cuh
t@@ -155,7 +155,7 @@ __device__ void contactLinearViscous(Float3* F, Float3* T, Float* es_dot, Float*
//Float k_n_ab = k_n_a * k_n_b / (k_n_a + k_n_b);
// Calculate rolling radius
- Float R_bar = (radius_a + radius_b) / 2.0f;
+ //Float R_bar = (radius_a + radius_b) / 2.0f;
// Normal force component: linear-elastic approximation (Augier 2009, eq. 3)
// with velocity dependant damping
t@@ -235,7 +235,8 @@ __device__ void contactLinearViscous(Float3* F, Float3* T, Float* es_dot, Float*
// Add force components from this collision to total force for particle
*F += f_n + f_t + f_c;
- *T += -R_bar * cross(n_ab, f_t) + T_res;
+ //*T += -R_bar * cross(n_ab, f_t) + T_res;
+ *T += -radius_a * cross(n_ab, f_t) + T_res;
// Pressure excerted onto the particle from this contact
*p += f_n_length / (4.0f * PI * radius_a*radius_a);
t@@ -313,7 +314,7 @@ __device__ void contactLinear(Float3* F, Float3* T,
//Float k_n_ab = k_n_a * k_n_b / (k_n_a + k_n_b);
// Calculate rolling radius
- Float R_bar = (radius_a + radius_b) / 2.0f;
+ //Float R_bar = (radius_a + radius_b) / 2.0f;
// Normal force component: Elastic
//f_n = -devC_k_n * delta_ab * n_ab;
t@@ -390,14 +391,18 @@ __device__ void contactLinear(Float3* F, Float3* T,
//T_res = -angvel_ab/angvel_ab_length * devC_mu_r * R_bar * length(f_n);
// New rolling resistance model
- T_res = -1.0f * fmin(devC_gamma_r * R_bar * angvel_ab_length,
+ /*T_res = -1.0f * fmin(devC_gamma_r * R_bar * angvel_ab_length,
devC_mu_r * R_bar * f_n_length)
+ * angvel_ab/angvel_ab_length;*/
+ T_res = -1.0f * fmin(devC_gamma_r * radius_a * angvel_ab_length,
+ devC_mu_r * radius_a * f_n_length)
* angvel_ab/angvel_ab_length;
}
// Add force components from this collision to total force for particle
*F += f_n + f_t + f_c;
- *T += -R_bar * cross(n_ab, f_t) + T_res;
+ //*T += -R_bar * cross(n_ab, f_t) + T_res;
+ *T += -radius_a * cross(n_ab, f_t) + T_res;
// Pressure excerted onto the particle from this contact
*p += f_n_length / (4.0f * PI * radius_a*radius_a);