treset force balance on each iteration - granular - granular dynamics simulation | |
git clone git://src.adamsgaard.dk/granular | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit ac0900f4a7a870c7b5636bb32a0b5de012ba6736 | |
parent fce305fb77886ba66ae39544d7f829048ec3da3a | |
Author: Anders Damsgaard <[email protected]> | |
Date: Fri, 23 Apr 2021 09:24:49 +0200 | |
reset force balance on each iteration | |
Diffstat: | |
M grain.c | 9 +++++++++ | |
M grain.h | 1 + | |
M simulation.c | 9 +++++++++ | |
M simulation.h | 1 + | |
4 files changed, 20 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/grain.c b/grain.c | |
t@@ -291,6 +291,15 @@ grain_zero_kinematics(struct grain *g) | |
} | |
} | |
+void | |
+grain_force_reset(struct grain *g) | |
+{ | |
+ int d; | |
+ | |
+ for (d = 0; d < 3; d++) | |
+ g->force[d] = 0.0; | |
+} | |
+ | |
double | |
grain_translational_kinetic_energy(const struct grain *g) | |
{ | |
diff --git a/grain.h b/grain.h | |
t@@ -52,6 +52,7 @@ double grain_volume(const struct grain *g); | |
double grain_mass(const struct grain *g); | |
double grain_moment_of_inertia(const struct grain *g); | |
void grain_zero_kinematics(struct grain *g); | |
+void grain_force_reset(struct grain *g); | |
double grain_translational_kinetic_energy(const struct grain *g); | |
double grain_rotational_kinetic_energy(const struct grain *g); | |
double grain_kinetic_energy(const struct grain *g); | |
diff --git a/simulation.c b/simulation.c | |
t@@ -143,6 +143,14 @@ sim_check_add_contact(struct simulation *sim, size_t i, s… | |
} | |
void | |
+sim_force_reset(struct simulation *sim) | |
+{ | |
+ size_t i; | |
+ for (i = 0; i < sim->ng; i++) | |
+ grain_force_reset(&sim->grains[i]); | |
+} | |
+ | |
+void | |
sim_add_acceleration_scalar(struct simulation *sim, double acc, int dimension) | |
{ | |
size_t i; | |
t@@ -202,6 +210,7 @@ sim_step_time(struct simulation *sim) | |
{ | |
size_t i; | |
+ sim_force_reset(sim); | |
sim_detect_contacts(sim); | |
sim_resolve_interactions(sim); | |
diff --git a/simulation.h b/simulation.h | |
t@@ -42,6 +42,7 @@ void sim_print_grains(FILE *stream, const struct simulation … | |
void sim_print_grains_vtk(FILE *stream, const struct simulation *sim); | |
void sim_write_output_files(struct simulation *sim); | |
+void sim_force_reset(struct simulation *sim); | |
void sim_add_acceleration_scalar(struct simulation *sim, double acc, int dimen… | |
void sim_set_timestep(struct simulation *sim); | |
void sim_detect_contacts(struct simulation *sim); |