VOBOZ/SingleHalo: single_halo.c

File single_halo.c, 1.5 KB (added by rpwagner, 23 months ago)
Line 
1#include <stdio.h>
2#include <stdlib.h>
3
4int main(void){
5
6  FILE *fout = fopen("single_halo.raw","wb");
7  int i, j, k, counter = 0, np = 4*4*4 + 30;
8  float *x_buf, *y_buf, *z_buf;
9  float x, y, z;
10  fwrite(&np,sizeof(int),1,fout);
11
12  x_buf = (float *)malloc(np*sizeof(float));
13  y_buf = (float *)malloc(np*sizeof(float));
14  z_buf = (float *)malloc(np*sizeof(float));
15
16  /* uniform grid */
17  for(i = 0; i < 4; i++){
18    x = ((float)i)/4.0+1.0/8.0;
19    for(j = 0; j < 4; j++){
20      y = ((float)j)/4.0+1.0/8.0;
21      for(k = 0; k < 4; k++){
22        z = ((float)k)/4.0+1.0/8.0;
23        x_buf[counter] = x;
24        y_buf[counter] = y;
25        z_buf[counter++] = z;
26      }
27    }   
28  }
29
30  /* blob around (0.25, 0.25, 0.25) */
31  for(j = 1; j < 4; j++){
32    for(i = 0; i < 10; i++){
33      x = 0.25 + j*0.05*(1.0 - 2.0*rand()/((float)RAND_MAX));
34      y = 0.25 + j*0.05*(1.0 - 2.0*rand()/((float)RAND_MAX));
35      z = 0.25 + j*0.05*(1.0 - 2.0*rand()/((float)RAND_MAX));
36      x_buf[counter] = x;
37      y_buf[counter] = y;
38      z_buf[counter++] = z;
39    }
40  }
41
42  fwrite(x_buf,sizeof(float),np,fout);
43  fwrite(y_buf,sizeof(float),np,fout);
44  fwrite(z_buf,sizeof(float),np,fout);
45
46  free(y_buf);
47  free(z_buf);
48
49  fclose(fout);
50
51  /* velocities */
52  fout = fopen("single_halo_vel.raw","wb"); 
53  fwrite(&np,sizeof(int),1,fout);
54  for(i = 0; i < np; i++){
55    x_buf[i] = 0.0;
56  }
57
58  fwrite(x_buf,sizeof(float),np,fout);
59  fwrite(x_buf,sizeof(float),np,fout);
60  fwrite(x_buf,sizeof(float),np,fout);
61  fclose(fout);
62
63  return 0;
64}