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 }