tadd time loop - 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 bbe4664bdeb5aaaabec87ef1036e9ff95562e00d
 (DIR) parent fd19f30421f1a2866fbe554a73b8eff43f786ec5
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Tue, 15 Mar 2016 14:19:45 -0700
       
       add time loop
       
       Diffstat:
         M main.c                              |      19 +++++++++++++++++++
         M slider.c                            |       2 +-
         M slider.h                            |       2 +-
       
       3 files changed, 21 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/main.c b/main.c
       t@@ -6,13 +6,32 @@
        int main(int argc, char** argv)
        {
        
       +    // initialize grid of sliders
            int nx = 4;
            int ny = 4;
            int nz = 4;
       +    const int N = nx*ny*nz;
            slider* sliders = create_regular_slider_grid(nx, ny, nz, 1.0, 1.0, 1.0);
        
       +    // set slider masses
       +    int i;
       +    for (i=0; i<N; i++)
       +        sliders[i].mass = 1.;
        
       +    // temporal loop
       +    Float t = 0.;
       +    const Float t_end = 1.;
       +    //Float dt = calculate_time_step();
       +    Float dt = 1.0;
       +    long int iteration = 0;
       +    for (t=0.0; t<=t_end; t+=dt) {
       +        for (i=0; i<N; i++) {
       +            update_kinematics(sliders[i], dt, iteration);
       +        }
       +        iteration++;
       +    }
        
       +    // end program
            free(sliders);
            return EXIT_SUCCESS;
        }
 (DIR) diff --git a/slider.c b/slider.c
       t@@ -11,7 +11,7 @@ void print_slider_position(slider s)
        /* Explicit temporal integration scheme based on three-term Taylor expansion.
         * Truncation error O(dt^4) for positions, O(dt^3) for velocities.  Acceleration 
         * change is approximated by backwards differences. */
       -void integrate_kinematics(slider s, Float dt, int iteration)
       +void update_kinematics(slider s, Float dt, long int iteration)
        {
            s.acc = divide_float3_scalar(s.force, s.mass);
        
 (DIR) diff --git a/slider.h b/slider.h
       t@@ -16,6 +16,6 @@ typedef struct {
        
        void print_slider_position(slider s);
        
       -void integrate_kinematics(slider s, Float dt, int iteration);
       +void update_kinematics(slider s, Float dt, long int iteration);
        
        #endif