tinitialize.c - simple_DEM - a simple 2D Discrete Element Method code for educational purposes
 (HTM) git clone git://src.adamsgaard.dk/simple_DEM
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
       tinitialize.c (841B)
       ---
            1 #include <stdlib.h>
            2 #include <stdio.h>
            3 #include <math.h>
            4 #include "header.h"
            5 #include "global_properties.h"
            6 
            7 void triangular_grid(grain* g)
            8 {
            9   int i;
           10   /* Initialize grain properties */
           11   for (i = 0; i < np; ++i) {
           12     g[i].R = (rand() / (double)RAND_MAX) * (rmax - rmin) + rmin;
           13     g[i].m = M_PI * rho * g[i].R * g[i].R;
           14     g[i].I = 0.5 * g[i].m * g[i].R * g[i].R;
           15     g[i].p = 0.0;
           16     g[i].ang = 0.0;
           17     g[i].angv = 0.0;
           18     g[i].anga = 0.0;
           19     g[i].ax = 0.0;
           20     g[i].ay = 0.0;
           21     g[i].vx = 0.0;
           22     g[i].vy = 0.0;
           23   }
           24 
           25   /* Initialize grain positions in a trianpular grid */
           26   for (i = 0; i < np; ++i) {
           27     int column         = i%npw;
           28     int row         = i/npw;
           29 
           30     if (row%2 == 0)         /* Even row */
           31       g[i].x = rmax + 2*column*rmax;
           32     else                 /* Odd row */
           33       g[i].x = 2*rmax + 2*column*rmax;
           34     g[i].y = rmax + 2*row*rmax;
           35   
           36   }
           37 }