tset initial distance vector when first finding contacts - slidergrid - grid of elastic sliders on a frictional surface
(HTM) git clone git://src.adamsgaard.dk/slidergrid
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 13fd2f5473280a782faf7f4c94dd56a0ff2a7d41
(DIR) parent bb5690a5dfaf1895126205eceaf2f36aff4155a4
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 22 Mar 2016 14:57:50 -0700
set initial distance vector when first finding contacts
Diffstat:
M slidergrid/grid.c | 4 +++-
M slidergrid/slider.c | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/slidergrid/grid.c b/slidergrid/grid.c
t@@ -59,11 +59,13 @@ void find_and_bond_to_neighbors_n2(
#endif
if (dist_norm < cutoff) {
- sliders[i].neighbors[n_neighbors++] = j;
+ sliders[i].neighbors[n_neighbors] = j;
+ sliders[i].neighbor_distance[n_neighbors] = dist;
if (n_neighbors == MAX_NEIGHBORS - 1)
fprintf(stderr, "Error: MAX_NEIGHBORS exceeded for "
"slider %d.\n", i);
+ n_neighbors++;
}
}
}
(DIR) diff --git a/slidergrid/slider.c b/slidergrid/slider.c
t@@ -152,6 +152,7 @@ void slider_displacement(slider* s1, const slider s2,
// read previous inter-slider distance vector
const Float3 dist0 = s1->neighbor_distance[idx_neighbor];
+ // determine projected future displacement
const Float3 dist_future = subtract_float3(s1->pos_future, s2.pos_future);
// increment in inter-slider distance, divide by two to get displacement
t@@ -177,6 +178,8 @@ void slider_displacement(slider* s1, const slider s2,
// total relative displacement in inter-slider distance
s1->neighbor_relative_distance_velocity[idx_neighbor] =
multiply_float3_scalar(n, vel_n);
+
+ printf("displacement = %f %f %f\n", ddist.x, ddist.y, ddist.z);
}