TYCHO  1.3.0
 All Data Structures Files Functions Variables Enumerations Enumerator
/home/kapf/tycho_docu/write_ic_ifrit.c
Go to the documentation of this file.
1 /*
2  * write_ic_ifrit.c
3  *
4  * Author: Wolfgang Kapferer
5  */
6 
7 #include <stdio.h>
8 #include <stdint.h>
9 #include <stdlib.h>
10 #include <math.h>
11 
12 #include "variables_global.h"
13 #include "prototypes.h"
14 
20 int write_ic_ifrit(int x, int y, int z) {
21  FILE *fd;
22  char filename[600];
23  int i, j, k;
24  int ntemp;
25  double tmp, tmp_vx, tmp_vy, tmp_vz;
26  float data1;
27 
28  sprintf(filename, "%srho_ic.bin", output_dir);
29  fd = fopen(filename, "wb");
30  if (fd == NULL) {
31  printf("-----------------------------------\n");
32  printf("The output directory does not exist\n");
33  printf("-----------------------------------\n");
34  exit(13);
35  }
36  ntemp = 12;
37  fwrite(&ntemp, 1, sizeof (int), fd);
38  fwrite(&x, 1, sizeof (int), fd);
39  fwrite(&y, 1, sizeof (int), fd);
40  fwrite(&z, 1, sizeof (int), fd);
41  fwrite(&ntemp, 1, sizeof (int), fd);
42  ntemp = 4 * x * y * z;
43  fwrite(&ntemp, 1, sizeof (int), fd);
44  for (k = 0; k < z; k++) {
45  for (j = 0; j < y; j++) {
46  for (i = 0; i < x; i++) {
47  tmp = rho[i][j][k];
48  data1 = (float) tmp;
49  fwrite(&data1, 1, sizeof (data1), fd);
50  }
51  }
52  }
53  fwrite(&ntemp, 4, 1, fd);
54  fclose(fd);
55 
56  sprintf(filename, "%stemp_ic.bin", output_dir);
57  fd = fopen(filename, "wb");
58  if (fd == NULL) {
59  printf("-----------------------------------\n");
60  printf("The output directory does not exist\n");
61  printf("-----------------------------------\n");
62  exit(13);
63  }
64  ntemp = 12;
65  fwrite(&ntemp, 1, sizeof (int), fd);
66  fwrite(&x, 1, sizeof (int), fd);
67  fwrite(&y, 1, sizeof (int), fd);
68  fwrite(&z, 1, sizeof (int), fd);
69  fwrite(&ntemp, 1, sizeof (int), fd);
70  ntemp = 4 * x * y * z;
71  fwrite(&ntemp, 1, sizeof (int), fd);
72  for (k = 0; k < z; k++) {
73  for (j = 0; j < y; j++) {
74  for (i = 0; i < x; i++) {
75  tmp = pre[i][j][k] / (gasconstant * rho[i][j][k]);
76  data1 = (float) tmp;
77  fwrite(&data1, 1, sizeof (data1), fd);
78  }
79  }
80  }
81  fwrite(&ntemp, 1, sizeof (int), fd);
82  fclose(fd);
83 
84  sprintf(filename, "%spressure_ic.bin", output_dir);
85  fd = fopen(filename, "wb");
86  if (fd == NULL) {
87  printf("-----------------------------------\n");
88  printf("The output directory does not exist\n");
89  printf("-----------------------------------\n");
90  exit(13);
91  }
92  ntemp = 12;
93  fwrite(&ntemp, 1, sizeof (int), fd);
94  fwrite(&x, 1, sizeof (int), fd);
95  fwrite(&y, 1, sizeof (int), fd);
96  fwrite(&z, 1, sizeof (int), fd);
97  fwrite(&ntemp, 1, sizeof (int), fd);
98  ntemp = 4 * x * y * z;
99  fwrite(&ntemp, 1, sizeof (int), fd);
100  for (k = 0; k < z; k++) {
101  for (j = 0; j < y; j++) {
102  for (i = 0; i < x; i++) {
103  if (dom[i][j][k] == 0) tmp = pre[i][j][k];
104  if (dom[i][j][k] == 1) tmp = 0.0;
105  data1 = (float) tmp;
106  fwrite(&data1, 1, sizeof (data1), fd);
107  }
108  }
109  }
110  fwrite(&ntemp, 1, sizeof (int), fd);
111  fclose(fd);
112 
113  sprintf(filename, "%svel_ic.bin", output_dir);
114  fd = fopen(filename, "wb");
115  if (fd == NULL) {
116  printf("-----------------------------------\n");
117  printf("The output directory does not exist\n");
118  printf("-----------------------------------\n");
119  exit(13);
120  }
121  ntemp = 12;
122  fwrite(&ntemp, 1, sizeof (int), fd);
123  fwrite(&x, 1, sizeof (int), fd);
124  fwrite(&y, 1, sizeof (int), fd);
125  fwrite(&z, 1, sizeof (int), fd);
126  fwrite(&ntemp, 1, sizeof (int), fd);
127  ntemp = 4 * x * y*z;
128  fwrite(&ntemp, 1, sizeof (int), fd);
129  for (k = 0; k < z; k++) {
130  for (j = 0; j < y; j++) {
131  for (i = 0; i < x; i++) {
132  tmp_vx = vy[i][j][k];
133  data1 = (float) tmp_vx;
134  fwrite(&data1, 1, sizeof (data1), fd);
135  }
136  }
137  }
138  fwrite(&ntemp, 1, sizeof (int), fd);
139  fwrite(&ntemp, 1, sizeof (int), fd);
140  for (k = 0; k < z; k++) {
141  for (j = 0; j < y; j++) {
142  for (i = 0; i < x; i++) {
143  tmp_vy = vx[i][j][k];
144  data1 = (float) tmp_vy;
145  fwrite(&data1, 1, sizeof (data1), fd);
146  }
147  }
148  }
149  fwrite(&ntemp, 1, sizeof (int), fd);
150  fwrite(&ntemp, 1, sizeof (int), fd);
151  for (k = 0; k < z; k++) {
152  for (j = 0; j < y; j++) {
153  for (i = 0; i < x; i++) {
154  tmp_vz = vz[i][j][k];
155  data1 = (float) tmp_vz;
156  fwrite(&data1, 1, sizeof (data1), fd);
157  }
158  }
159  }
160  fwrite(&ntemp, 1, sizeof (int), fd);
161  fclose(fd);
162 
163  if (with_obstacles == 1) {
164  sprintf(filename, "%spressure_on_solid_ic.bin", output_dir);
165  fd = fopen(filename, "wb");
166  if (fd == NULL) {
167  printf("-----------------------------------\n");
168  printf("The output directory does not exist\n");
169  printf("-----------------------------------\n");
170  exit(13);
171  }
172  ntemp = 12;
173  fwrite(&ntemp, 1, sizeof (int), fd);
174  fwrite(&x, 1, sizeof (int), fd);
175  fwrite(&y, 1, sizeof (int), fd);
176  fwrite(&z, 1, sizeof (int), fd);
177  fwrite(&ntemp, 1, sizeof (int), fd);
178  ntemp = 4 * x * y * z;
179  fwrite(&ntemp, 1, sizeof (int), fd);
180  for (k = 0; k < z; k++) {
181  for (j = 0; j < y; j++) {
182  for (i = 0; i < x; i++) {
183  tmp = pressure_on_solid[i][j][k];
184  data1 = (float) tmp;
185  fwrite(&data1, 1, sizeof (data1), fd);
186  }
187  }
188  }
189  fwrite(&ntemp, 1, sizeof (int), fd);
190 
191  fclose(fd);
192 
193  if ((with_sound_emitter == 1) && (dB_Map_ready == 1)) {
194  sprintf(filename, "%sdB_map_ic_ic.bin", output_dir);
195  fd = fopen(filename, "wb");
196  if (fd == NULL) {
197  printf("-----------------------------------\n");
198  printf("The output directory does not exist\n");
199  printf("-----------------------------------\n");
200  exit(13);
201  }
202  ntemp = 12;
203  fwrite(&ntemp, 1, sizeof (int), fd);
204  fwrite(&x, 1, sizeof (int), fd);
205  fwrite(&y, 1, sizeof (int), fd);
206  fwrite(&z, 1, sizeof (int), fd);
207  fwrite(&ntemp, 1, sizeof (int), fd);
208  ntemp = 4 * x * y * z;
209  fwrite(&ntemp, 1, sizeof (int), fd);
210  for (k = 0; k < z; k++) {
211  for (j = 0; j < y; j++) {
212  for (i = 0; i < x; i++) {
213  tmp = dB_map[i][j][k];
214  data1 = (float) tmp;
215  fwrite(&data1, 1, sizeof (data1), fd);
216  }
217  }
218  }
219  fwrite(&ntemp, 1, sizeof (int), fd);
220 
221  fclose(fd);
222  }
223  }
224 
225  if (advection == 1) {
226 
227  sprintf(filename, "%smarker_ic.bin", output_dir);
228  fd = fopen(filename, "wb");
229  if (fd == NULL) {
230  printf("-----------------------------------\n");
231  printf("The output directory does not exist\n");
232  printf("-----------------------------------\n");
233  exit(13);
234  }
235  ntemp = 12;
236  fwrite(&ntemp, 1, sizeof (int), fd);
237  fwrite(&x, 1, sizeof (int), fd);
238  fwrite(&y, 1, sizeof (int), fd);
239  fwrite(&z, 1, sizeof (int), fd);
240  fwrite(&ntemp, 1, sizeof (int), fd);
241  ntemp = 4 * x * y * z;
242  fwrite(&ntemp, 1, sizeof (int), fd);
243  for (k = 0; k < z; k++) {
244  for (j = 0; j < y; j++) {
245  for (i = 0; i < x; i++) {
246  tmp = marker[i][j][k];
247  data1 = (float) tmp;
248  fwrite(&data1, 1, sizeof (data1), fd);
249  }
250  }
251  }
252  fwrite(&ntemp, 1, sizeof (int), fd);
253  fclose(fd);
254 
255  }
256 
257  return 0;
258 }