Introduction
Introduction Statistics Contact Development Disclaimer Help
tgrains.c: fix and optimize grain-grain interaction - granular - granular dynam…
git clone git://src.adamsgaard.dk/granular
Log
Files
Refs
README
LICENSE
---
commit b5116979a34a77b651a34b8e51665749e20dd2f0
parent f457ddb46d693870cf3f73a76057f606e94415ec
Author: Anders Damsgaard <[email protected]>
Date: Thu, 22 Apr 2021 13:47:47 +0200
grains.c: fix and optimize grain-grain interaction
Diffstat:
M grains.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/grains.c b/grains.c
t@@ -135,7 +135,7 @@ grains_interact(struct grain *g_i, struct grain *g_j, int …
d_i, d_j,
r_ij[3], r_ij_norm,
m_i, m_j, m_ij,
- E_ij, nu_ij, mu_ij,
+ mu_ij,
gamma_n_ij, gamma_t_ij,
k_n_ij, k_t_ij, A_ij,
angvel_ij[3], u_t_dot_v_ij,
t@@ -171,14 +171,14 @@ grains_interact(struct grain *g_i, struct grain *g_j, in…
v_t_ij[d] = v_ij[d] - v_n_ij[d] - 0.5 * angvel_cross_r_ij[d];
}
- E_ij = fmin(g_i->youngs_modulus, g_j->youngs_modulus);
- nu_ij = fmin(g_i->poissons_ratio, g_j->poissons_ratio);
mu_ij = fmin(g_i->friction_coeff, g_j->friction_coeff);
gamma_n_ij = fmin(g_i->damping_n, g_j->damping_n);
gamma_t_ij = fmin(g_i->damping_t, g_j->damping_t);
- k_n_ij = 2.0 / 3.0 * E_ij / (1.0 - pow(nu_ij, 2.0));
- k_t_ij = 2.0 * E_ij / (1.0 + nu_ij) * (2.0 - nu_ij);
+ k_n_ij = fmin(grain_stiffness_normal(g_i),
+ grain_stiffness_normal(g_j));
+ k_t_ij = fmin(grain_stiffness_tangential(g_i),
+ grain_stiffness_tangential(g_j));
A_ij = sqrt(delta_ij) * sqrt(d_i * d_j / (2.0 * (d_i + d_j)));
t@@ -204,8 +204,10 @@ grains_interact(struct grain *g_i, struct grain *g_j, int…
g_i->contacts[ic].age += dt;
u_t_dot_v_ij = dot(g_i->contacts[ic].tandisp, v_ij, 3);
for (d = 0; d < 3; d++)
- g_i->contacts[ic].tandisp[d] += v_t_ij[d] * dt
- - u_t_dot_v_ij / (r_ij_norm * r_…
+ g_i->contacts[ic].tandisp[d] += (v_t_ij[d]
+ - u_t_dot_v_ij * r_ij[d]
+ / (r…
+ * dt;
free(angvel_cross_r_ij);
free(f_t_cross_r_ij);
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.