Introduction
Introduction Statistics Contact Development Disclaimer Help
tfix minor implementation errors - sphere - GPU-based 3D discrete element metho…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit ea358821f5b6bd7e654e769b5b8e3b844d8a3618
parent ab4f66ef7e057437d51be8d867b0a1eb4ffe6f21
Author: Anders Damsgaard Christensen <[email protected]>
Date: Tue, 16 Aug 2016 11:56:29 -0700
fix minor implementation errors
Diffstat:
M src/contactmodels.cuh | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
---
diff --git a/src/contactmodels.cuh b/src/contactmodels.cuh
t@@ -57,10 +57,8 @@ __device__ Float contactLinear_wall(
// 2013) based on Young's modulus if params.E > 0.0.
// Use the calculated stiffness for normal and tangential components.
Float k_n = devC_params.k_n;
- Float k_t = devC_params.k_t;
if (devC_params.E > .001) {
- k_n = 3.141592654/2.0 * devC_params.E * (radius_a + radius_b)/2.;
- k_t = k_n;
+ k_n = 3.141592654/2.0 * devC_params.E * radius_a;
}
// Normal force component: Elastic - viscous damping
t@@ -182,10 +180,8 @@ __device__ void contactLinearViscous(
// 2013) based on Young's modulus if params.E > 0.0.
// Use the calculated stiffness for normal and tangential components.
Float k_n = devC_params.k_n;
- Float k_t = devC_params.k_t;
if (devC_params.E > .001) {
k_n = 3.141592654/2.0 * devC_params.E * (radius_a + radius_b)/2.;
- k_t = k_n;
}
// Normal force component: Elastic - viscous damping
t@@ -323,6 +319,16 @@ __device__ void contactLinear(
// New tangential displacement vector
Float3 delta_t;
+ // Use scale-invariant contact model (Ergenzinger et al 2010, Obermayr et …
+ // 2013) based on Young's modulus if params.E > 0.0.
+ // Use the calculated stiffness for normal and tangential components.
+ Float k_n = devC_params.k_n;
+ Float k_t = devC_params.k_t;
+ if (devC_params.E > .001) {
+ k_n = 3.141592654/2.0 * devC_params.E * (radius_a + radius_b)/2.;
+ k_t = k_n;
+ }
+
// Normal force component: Elastic - viscous damping
f_n = fmax(0.0, -k_n*delta + devC_params.gamma_n * vel_n) * n;
Float f_n_length = length(f_n);
t@@ -558,8 +564,7 @@ __device__ void contactHertz(
// Shear friction heat production rate:
// The energy lost from the tangential spring is dissipated as heat
//*es_dot += -dot(vel_t_ab, f_t);
- *es_dot += length(delta_t0 - delta_t) * k_t / devC_dt; // Seen in
- EsyS-Particle
+ *es_dot += length(delta_t0 - delta_t) * k_t / devC_dt; // Seen in …
//*es_dot += fabs(dot(delta_t0 - delta_t, f_t)) / devC_dt;
} else { // Static case
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.