TYCHO  1.3.0
 All Data Structures Files Functions Variables Enumerations Enumerator
/home/kapf/tycho_docu/array_mallocater_global.c
Go to the documentation of this file.
1 /*
2  * array_callocater_global.c
3  *
4  * Author: Wolfgang Kapferer
5  */
6 
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include "variables_global.h"
10 
19 int callocate_arrays_global(int x, int y, int z) {
20 
21  int i, j;
22 
23  // allocate density
24  rho = calloc(x, sizeof *rho);
25 
26  for (i = 0; i < x; i++) {
27  rho[i] = calloc(y, sizeof **rho);
28  for (j = 0; j < y; j++) {
29  rho[i][j] = calloc(z, sizeof ***rho);
30  }
31  }
32 
33  printf("Density array memory allocated\n");
34 
35  // allocate pressure
36  pre = calloc(x, sizeof * pre);
37 
38  for (i = 0; i < x; i++) {
39  pre[i] = calloc(y, sizeof **pre);
40  for (j = 0; j < y; j++) {
41  pre[i][j] = calloc(z, sizeof ***pre);
42  }
43  }
44 
45  printf("Pressure array memory allocated\n");
46 
47  // allocate domain
48  dom = calloc(x, sizeof *dom);
49 
50  for (i = 0; i < x; i++) {
51  dom[i] = calloc(y, sizeof **dom);
52  for (j = 0; j < y; j++) {
53  dom[i][j] = calloc(z, sizeof ***dom);
54  }
55  }
56 
57  // allocate pressure on solid
58  pressure_on_solid = calloc(x, sizeof *pressure_on_solid);
59 
60  for (i = 0; i < x; i++) {
61  pressure_on_solid[i] = calloc(y, sizeof **pressure_on_solid);
62  for (j = 0; j < y; j++) {
63  pressure_on_solid[i][j] = calloc(z, sizeof ***pressure_on_solid);
64  }
65  }
66 
67 
68  printf("Domain array and pressure on solid memory allocated\n");
69 
70  // allocate energy
71  eng = calloc(x, sizeof * eng);
72 
73  for (i = 0; i < x; i++) {
74  eng[i] = calloc(y, sizeof **eng);
75  for (j = 0; j < y; j++) {
76  eng[i][j] = calloc(z, sizeof ***eng);
77  }
78  }
79 
80  e_in = calloc(x, sizeof * e_in);
81 
82  for (i = 0; i < x; i++) {
83  e_in[i] = calloc(y, sizeof **e_in);
84  for (j = 0; j < y; j++) {
85  e_in[i][j] = calloc(z, sizeof ***e_in);
86  }
87  }
88 
89  printf("Energy and Temperature array memory allocated\n");
90 
91  // allocate velocities
92  vx = calloc(x, sizeof * vx);
93 
94  for (i = 0; i < x; i++) {
95  vx[i] = calloc(y, sizeof **vx);
96  for (j = 0; j < y; j++) {
97  vx[i][j] = calloc(z, sizeof ***vx);
98  }
99  }
100 
101  vy = calloc(x, sizeof * vy);
102 
103  for (i = 0; i < x; i++) {
104  vy[i] = calloc(y, sizeof **vy);
105  for (j = 0; j < y; j++) {
106  vy[i][j] = calloc(z, sizeof ***vy);
107  }
108  }
109 
110  vz = calloc(x, sizeof * vz);
111 
112  for (i = 0; i < x; i++) {
113  vz[i] = calloc(y, sizeof **vz);
114  for (j = 0; j < y; j++) {
115  vz[i][j] = calloc(z, sizeof ***vz);
116  }
117  }
118 
119  printf("Velocities array memory allocated\n");
120 
121  if (advection == 1) {
122  // allocate marker
123  marker = calloc(x, sizeof *marker);
124 
125  for (i = 0; i < x; i++) {
126  marker[i] = calloc(y, sizeof **marker);
127  for (j = 0; j < y; j++) {
128  marker[i][j] = calloc(z, sizeof ***marker);
129  }
130  }
131 
132  printf("Marker array memory allocated\n");
133  }
134 
135  if (wind_on_off == 1) {
136  // allocate marker
137  wind_marker = calloc(x, sizeof *wind_marker);
138 
139  for (i = 0; i < x; i++) {
140  wind_marker[i] = calloc(y, sizeof **wind_marker);
141  for (j = 0; j < y; j++) {
142  wind_marker[i][j] = calloc(z, sizeof ***wind_marker);
143  }
144  }
145 
146  printf("Wind_marker array memory allocated\n");
147  }
148 
149 
150 
151  //only if viscosity is switched on
152  if (viscosity_on_off == 1) {
153  // allocate density
154  rho_visc = calloc(x, sizeof *rho_visc);
155 
156  for (i = 0; i < x; i++) {
157  rho_visc[i] = calloc(y, sizeof **rho_visc);
158  for (j = 0; j < y; j++) {
159  rho_visc[i][j] = calloc(z, sizeof ***rho_visc);
160  }
161  }
162 
163  // allocate velocities
164  vx_visc = calloc(x, sizeof * vx_visc);
165 
166  for (i = 0; i < x; i++) {
167  vx_visc[i] = calloc(y, sizeof **vx_visc);
168  for (j = 0; j < y; j++) {
169  vx_visc[i][j] = calloc(z, sizeof ***vx_visc);
170  }
171  }
172 
173  vy_visc = calloc(x, sizeof * vy_visc);
174 
175  for (i = 0; i < x; i++) {
176  vy_visc[i] = calloc(y, sizeof **vy_visc);
177  for (j = 0; j < y; j++) {
178  vy_visc[i][j] = calloc(z, sizeof ***vy_visc);
179  }
180  }
181 
182  vz_visc = calloc(x, sizeof * vz_visc);
183 
184  for (i = 0; i < x; i++) {
185  vz_visc[i] = calloc(y, sizeof **vz_visc);
186  for (j = 0; j < y; j++) {
187  vz_visc[i][j] = calloc(z, sizeof ***vz_visc);
188  }
189  }
190 
191  printf("viscosity arrays are allocated\n");
192  }
193 
194  if (with_sound_emitter == 1) {
195  // allocate soundemitter
196  soundemitter = calloc(x, sizeof *soundemitter);
197  for (i = 0; i < x; i++) {
198  soundemitter[i] = calloc(y, sizeof **soundemitter);
199  for (j = 0; j < y; j++) {
200  soundemitter[i][j] = calloc(z, sizeof ***soundemitter);
201  }
202  }
203  // allocate old pressure
204  pre_old = calloc(x, sizeof *pre_old);
205 
206  for (i = 0; i < x; i++) {
207  pre_old[i] = calloc(y, sizeof **pre_old);
208  for (j = 0; j < y; j++) {
209  pre_old[i][j] = calloc(z, sizeof ***pre_old);
210  }
211  }
212 
213  // allocate pressure_integrated
214  pressure_integrated = calloc(x, sizeof *pressure_integrated);
215 
216  for (i = 0; i < x; i++) {
217  pressure_integrated[i] = calloc(y, sizeof **pressure_integrated);
218  for (j = 0; j < y; j++) {
219  pressure_integrated[i][j] = calloc(z, sizeof ***pressure_integrated);
220  }
221  }
222 
223  // allocate dB_map
224  dB_map = calloc(x, sizeof *dB_map);
225 
226  for (i = 0; i < x; i++) {
227  dB_map[i] = calloc(y, sizeof **dB_map);
228  for (j = 0; j < y; j++) {
229  dB_map[i][j] = calloc(z, sizeof ***dB_map);
230  }
231  }
232 
233  printf("dB-Map allocated\n");
234 
235  printf("Soundemitter, pressure old array, pressure integrated and dB-Map memory allocated\n");
236  }
237 
238  // allocate arrays for grid initiate
239  zxa = calloc(x, sizeof * zxa);
240  zxc = calloc(x, sizeof * zxc);
241  zdx = calloc(x, sizeof * zdx);
242 
243  zya = calloc(y, sizeof * zya);
244  zyc = calloc(y, sizeof * zyc);
245  zdy = calloc(y, sizeof * zdy);
246 
247  zza = calloc(z, sizeof * zza);
248  zzc = calloc(z, sizeof * zzc);
249  zdz = calloc(z, sizeof * zdz);
250 
251 
252  return 0;
253 }