tadd const keywords, suppress some debug output - 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 c6e2a96799b3fc1b5c926bace6763524480d5417 (DIR) parent 651d6ad14183acc05109edf9fb4569dda244cde1 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk> Date: Tue, 22 Mar 2016 15:15:23 -0700 add const keywords, suppress some debug output Diffstat: M slidergrid/main.c | 13 +++++++------ M slidergrid/slider.c | 7 +++++-- M slidergrid/vector_math.c | 34 ++++++++++++++++---------------- 3 files changed, 29 insertions(+), 25 deletions(-) --- (DIR) diff --git a/slidergrid/main.c b/slidergrid/main.c t@@ -128,23 +128,23 @@ int main(int argc, char** argv) sim.time <= sim.time_end; sim.time += sim.dt) { - for (i=0; i<sim.N; i++) + /*for (i=0; i<sim.N; i++) printf("%d: vel = %f %f %f\n", i, sim.sliders[i].vel.x, sim.sliders[i].vel.y, - sim.sliders[i].vel.z); + sim.sliders[i].vel.z);*/ for (i=0; i<sim.N; i++) project_slider_position(&sim.sliders[i], sim.dt, sim.iteration); - for (i=0; i<sim.N; i++) + /*for (i=0; i<sim.N; i++) printf("%d: pos = %f %f %f, pos_future = %f %f %f\n", i, sim.sliders[i].pos.x, sim.sliders[i].pos.y, sim.sliders[i].pos.z, sim.sliders[i].pos_future.x, sim.sliders[i].pos_future.y, - sim.sliders[i].pos_future.z); + sim.sliders[i].pos_future.z);*/ // resolve slider-to-slider interaction for (i=0; i<sim.N; i++) { t@@ -157,14 +157,15 @@ int main(int argc, char** argv) #ifdef DEBUG_SLIDER_FORCE_TORQUE_AND_NEIGHBORS int j; - printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, contacts = ", + printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, mass = %f, contacts = ", i, sim.sliders[i].force.x, sim.sliders[i].force.y, sim.sliders[i].force.z, sim.sliders[i].torque.x, sim.sliders[i].torque.y, - sim.sliders[i].torque.z); + sim.sliders[i].torque.z, + sim.sliders[i].mass); for (j=0; j<MAX_NEIGHBORS; j++) if (sim.sliders[i].neighbors[j] >= 0) printf("%d ", sim.sliders[i].neighbors[j]); (DIR) diff --git a/slidergrid/slider.c b/slidergrid/slider.c t@@ -244,6 +244,7 @@ void slider_neighbor_interaction( // reset sum of forces and torques on slider s->force = make_float3(0., 0., 0.); s->torque = make_float3(0., 0., 0.); + //s->mass = 1.0; if (s->neighbors[idx_neighbor] != -1) { t@@ -251,15 +252,17 @@ void slider_neighbor_interaction( s, sliders[s->neighbors[idx_neighbor]], idx_neighbor, iteration); - printf("- %d: rel_disp = %f %f %f\n", + /*printf("- %d: rel_disp = %f %f %f\n", idx_neighbor, s->neighbor_relative_distance_displacement[idx_neighbor].x, s->neighbor_relative_distance_displacement[idx_neighbor].y, s->neighbor_relative_distance_displacement[idx_neighbor].z - ); + );*/ slider_interaction( s, sliders[s->neighbors[idx_neighbor]], idx_neighbor); + + s->force = make_float3(123, 456, 789); printf("s.force = %f %f %f\n", s->force.x, s->force.y, s->force.z); } (DIR) diff --git a/slidergrid/vector_math.c b/slidergrid/vector_math.c t@@ -3,7 +3,7 @@ // constructors -inline Float3 make_float3(Float x, Float y, Float z) +inline Float3 make_float3(const Float x, const Float y, const Float z) { Float3 v = {.x = x, .y = y, .z = z}; return v; t@@ -21,39 +21,39 @@ inline Float3 ones_float3() // single-vector operations -inline Float3 copy_float3(Float3 v) +inline Float3 copy_float3(const Float3 v) { return make_float3(v.x, v.y, v.z); } -inline Float norm_float3(Float3 v) +inline Float norm_float3(const Float3 v) { return sqrt(v.x*v.x + v.y*v.y + v.z*v.z); } // vector-vector operations -inline Float3 add_float3(Float3 v1, Float3 v2) +inline Float3 add_float3(const Float3 v1, const Float3 v2) { return make_float3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z); } -inline Float3 subtract_float3(Float3 v1, Float3 v2) +inline Float3 subtract_float3(const Float3 v1, const Float3 v2) { return make_float3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z); } -inline Float3 multiply_float3(Float3 v1, Float3 v2) +inline Float3 multiply_float3(const Float3 v1, const Float3 v2) { return make_float3(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z); } -inline Float3 divide_float3(Float3 v1, Float3 v2) +inline Float3 divide_float3(const Float3 v1, const Float3 v2) { return make_float3(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z); } -inline Float3 cross_float3(Float3 v1, Float3 v2) +inline Float3 cross_float3(const Float3 v1, const Float3 v2) { return make_float3( v1.y*v2.z - v1.z*v2.y, t@@ -61,48 +61,48 @@ inline Float3 cross_float3(Float3 v1, Float3 v2) v1.x*v2.y - v1.y*v2.x); } -inline Float dot_float3(Float3 v1, Float3 v2) +inline Float dot_float3(const Float3 v1, const Float3 v2) { return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z; } // vector-scalar operations -inline Float3 add_float3_scalar(Float3 v, Float s) +inline Float3 add_float3_scalar(const Float3 v, const Float s) { return make_float3(v.x + s, v.y + s, v.z + s); } -inline Float3 add_scalar_float3(Float s, Float3 v) +inline Float3 add_scalar_float3(const Float s, const Float3 v) { return add_float3_scalar(v, s); } -inline Float3 subtract_float3_scalar(Float3 v, Float s) +inline Float3 subtract_float3_scalar(const Float3 v, const Float s) { return make_float3(v.x - s, v.y - s, v.z - s); } -inline Float3 subtract_scalar_float3(Float s, Float3 v) +inline Float3 subtract_scalar_float3(const Float s, const Float3 v) { return make_float3(s - v.x, s - v.y, s - v.z); } -inline Float3 multiply_float3_scalar(Float3 v, Float s) +inline Float3 multiply_float3_scalar(const Float3 v, const Float s) { return make_float3(v.x*s, v.y*s, v.z*s); } -inline Float3 multiply_scalar_float3(Float s, Float3 v) +inline Float3 multiply_scalar_float3(const Float s, const Float3 v) { return multiply_float3_scalar(v, s); } -inline Float3 divide_float3_scalar(Float3 v, Float s) +inline Float3 divide_float3_scalar(const Float3 v, const Float s) { return make_float3(v.x/s, v.y/s, v.z/s); } -inline Float3 divide_scalar_float3(Float s, Float3 v) +inline Float3 divide_scalar_float3(const Float s, const Float3 v) { return make_float3(s/v.x, s/v.y, s/v.z); }