tenable shear resisting forces - slidergrid - grid of elastic sliders on a fric… | |
git clone git://src.adamsgaard.dk/slidergrid | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 0098826894734f6e3f5db2e76a707860f42c8c7e | |
parent bb119cc1c3bf9c0fe083b7137eadd76e39f0d0f5 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Tue, 5 Apr 2016 14:16:13 -0700 | |
enable shear resisting forces | |
Diffstat: | |
M slidergrid/main.c | 3 ++- | |
M slidergrid/slider.c | 47 ++++++++++++++++-------------… | |
M slidergrid/slider.h | 3 ++- | |
M tests/elasticity/normal.c | 2 +- | |
4 files changed, 29 insertions(+), 26 deletions(-) | |
--- | |
diff --git a/slidergrid/main.c b/slidergrid/main.c | |
t@@ -154,7 +154,8 @@ int main(int argc, char** argv) | |
&sim.sliders[i], | |
sim.sliders, | |
sim.N, | |
- sim.iteration); | |
+ sim.iteration, | |
+ sim.dt); | |
#ifdef DEBUG_SLIDER_FORCE_TORQUE_AND_NEIGHBORS | |
int j; | |
diff --git a/slidergrid/slider.c b/slidergrid/slider.c | |
t@@ -251,10 +251,10 @@ void bond_normal_deformation(slider* s1, const slider s2, | |
// Find the bond deformation | |
void bond_deformation(slider* s1, const slider s2, | |
- const int idx_neighbor, const int iteration) | |
+ const int idx_neighbor, const int iteration, const Float dt) | |
{ | |
bond_parallel_deformation(s1, s2, idx_neighbor, iteration); | |
- //bond_normal_deformation(s1, s2, idx_neighbor, iteration); | |
+ bond_normal_deformation(s1, s2, idx_neighbor, iteration, dt); | |
} | |
t@@ -322,34 +322,34 @@ void bond_shear_kelvin_voigt(slider* s1, const slider s2, | |
+ 1.0e-40); | |
// bond-parallel Kelvin-Voigt elasticity | |
- const Float3 f_n_elastic = | |
+ const Float3 f_t_elastic = | |
multiply_scalar_float3(bond_shear_kv_stiffness, | |
- s1->neighbor_relative_distance_displacement[idx_neighbor]); | |
+ s1->neighbor_relative_tangential_displacement[idx_neighbor]); | |
// bond-parallel Kelvin-Voigt viscosity | |
- const Float3 f_n_viscous = | |
+ const Float3 f_t_viscous = | |
multiply_scalar_float3(bond_shear_kv_viscosity, | |
- s1->neighbor_relative_distance_velocity[idx_neighbor]); | |
+ s1->neighbor_relative_tangential_velocity[idx_neighbor]); | |
// bond-parallel Kelvin-Voigt force, counteracts tension and compression | |
- const Float3 f_n = multiply_scalar_float3(-1.0, | |
- add_float3(f_n_elastic, f_n_viscous)); | |
+ const Float3 f_t = multiply_scalar_float3(-1.0, | |
+ add_float3(f_t_elastic, f_t_viscous)); | |
// add bond-parallel Kelvin-Voigt force to sum of forces on slider | |
- s1->force = add_float3(s1->force, f_n); | |
+ s1->force = add_float3(s1->force, f_t); | |
#ifdef DEBUG_SLIDER_FORCE_COMPONENTS | |
- printf("slider_interaction KV-shear: f_n = %f %f %f, " | |
- "f_n_elastic = %f %f %f, f_n_viscous = %f %f %f\n", | |
- f_n.x, | |
- f_n.y, | |
- f_n.z, | |
- f_n_elastic.x, | |
- f_n_elastic.y, | |
- f_n_elastic.z, | |
- f_n_viscous.x, | |
- f_n_viscous.y, | |
- f_n_viscous.z); | |
+ printf("slider_interaction KV-shear: f_t = %f %f %f, " | |
+ "f_t_elastic = %f %f %f, f_t_viscous = %f %f %f\n", | |
+ f_t.x, | |
+ f_t.y, | |
+ f_t.z, | |
+ f_t_elastic.x, | |
+ f_t_elastic.y, | |
+ f_t_elastic.z, | |
+ f_t_viscous.x, | |
+ f_t_viscous.y, | |
+ f_t_viscous.z); | |
#endif | |
} | |
t@@ -358,7 +358,7 @@ void bond_shear_kelvin_voigt(slider* s1, const slider s2, | |
void slider_interaction(slider* s1, const slider s2, const int idx_neighbor) | |
{ | |
bond_parallel_kelvin_voigt(s1, s2, idx_neighbor); | |
- //bond_normal_kelvin_voigt(s1, s2, idx_neighbor); | |
+ bond_shear_kelvin_voigt(s1, s2, idx_neighbor); | |
} | |
t@@ -367,7 +367,8 @@ void slider_neighbor_interaction( | |
slider* s, | |
const slider* sliders, | |
const int N, | |
- const int iteration) | |
+ const int iteration, | |
+ const Float dt) | |
{ | |
int idx_neighbor; | |
for (idx_neighbor=0; idx_neighbor<MAX_NEIGHBORS; idx_neighbor++) { | |
t@@ -384,7 +385,7 @@ void slider_neighbor_interaction( | |
bond_deformation( | |
s, sliders[s->neighbors[idx_neighbor]], | |
- idx_neighbor, iteration); | |
+ idx_neighbor, iteration, dt); | |
/*printf("- %d: rel_disp = %f %f %f\n", | |
idx_neighbor, | |
diff --git a/slidergrid/slider.h b/slidergrid/slider.h | |
t@@ -69,7 +69,8 @@ void slider_neighbor_interaction( | |
slider* s, | |
const slider* sliders, | |
const int N, | |
- const int iteration); | |
+ const int iteration, | |
+ const Float dt); | |
void slider_viscous_damping(slider* s); | |
void slider_nonviscous_damping(slider* s); | |
diff --git a/tests/elasticity/normal.c b/tests/elasticity/normal.c | |
t@@ -39,7 +39,7 @@ simulation setup_simulation() | |
// set temporal parameters | |
sim.time = 0.0; | |
- sim.time_end = 1000.0; | |
+ sim.time_end = 100.0; | |
sim.file_interval = 1.0; | |
return sim; |