Routine mshoutm(icounter, cfreq). Produces the file 'runname.mics.fHz.msh', which can bee used to visualize the solution at the microphones array with Gmsh. Arguments: 'icounter' is the frequency index (equal to ifreq); 'cfreq' is the complex frequency (the Laplace variable). Scalar fields included are:
42 int i, ive1, ive2, ive3, ive4;
58 int info, celltype, cellvrtx;
78 pzgemr2d_(&gRows,&ione,
solution->
vecPhium ,&ione, &ione,descl, gPhiscm ,&ione,&ione,descg,&
runinfo->
ctxt);
79 pzgemr2d_(&gRows,&ione,
solution->
vecPhincm ,&ione, &ione,descl, gPhincm ,&ione,&ione,descg,&
runinfo->
ctxt);
81 if (0 !=
rank)
return;
85 fprintf(f,
"$MeshFormat\n");
86 fprintf(f,
"2.2 0 %d \n",(
int)
sizeof(
double));
87 fprintf(f,
"$EndMeshFormat\n");
89 fprintf(f,
"$Nodes\n");
94 fprintf(f,
"$EndNodes\n");
96 fprintf(f,
"$Elements\n");
107 fprintf(f,
"$EndElements\n");
109 fprintf(f,
"$NodeData\n");
110 fprintf(f,
"%d \n",1);
111 fprintf(f,
"\"Mics Re(Incident_Field)\"\n");
112 fprintf(f,
"%d \n",1);
113 fprintf(f,
"%f \n",
HZFREQ(cfreq));
114 fprintf(f,
"%d \n",3);
115 fprintf(f,
"%d \n",icounter);
116 fprintf(f,
"%d \n",1);
120 fprintf(f,
"%d %f\n",i+1,
CREAL(val));
122 fprintf(f,
"$EndNodeData\n");
124 fprintf(f,
"$NodeData\n");
125 fprintf(f,
"%d \n",1);
126 fprintf(f,
"\"Mics Im(Incident_Field)\"\n");
127 fprintf(f,
"%d \n",1);
128 fprintf(f,
"%f \n",
HZFREQ(cfreq));
129 fprintf(f,
"%d \n",3);
130 fprintf(f,
"%d \n",icounter);
131 fprintf(f,
"%d \n",1);
135 fprintf(f,
"%d %f\n",i+1,
CIMAG(val));
137 fprintf(f,
"$EndNodeData\n");
139 fprintf(f,
"$NodeData\n");
140 fprintf(f,
"%d \n",1);
141 fprintf(f,
"\"Mics Abs(Incident_Field)\"\n");
142 fprintf(f,
"%d \n",1);
143 fprintf(f,
"%f \n",
HZFREQ(cfreq));
144 fprintf(f,
"%d \n",3);
145 fprintf(f,
"%d \n",icounter);
146 fprintf(f,
"%d \n",1);
150 fprintf(f,
"%d %f\n",i+1,
CABS(val));
152 fprintf(f,
"$EndNodeData\n");
154 fprintf(f,
"$NodeData\n");
155 fprintf(f,
"%d \n",1);
156 fprintf(f,
"\"Mics Re(Scattered_Field)\"\n");
157 fprintf(f,
"%d \n",1);
158 fprintf(f,
"%f \n",
HZFREQ(cfreq));
159 fprintf(f,
"%d \n",3);
160 fprintf(f,
"%d \n",icounter);
161 fprintf(f,
"%d \n",1);
165 fprintf(f,
"%d %f\n",i+1,
CREAL(val));
167 fprintf(f,
"$EndNodeData\n");
169 fprintf(f,
"$NodeData\n");
170 fprintf(f,
"%d \n",1);
171 fprintf(f,
"\"Mics Im(Scattered_Field)\"\n");
172 fprintf(f,
"%d \n",1);
173 fprintf(f,
"%f \n",
HZFREQ(cfreq));
174 fprintf(f,
"%d \n",3);
175 fprintf(f,
"%d \n",icounter);
176 fprintf(f,
"%d \n",1);
180 fprintf(f,
"%d %f\n",i+1,
CIMAG(val));
182 fprintf(f,
"$EndNodeData\n");
184 fprintf(f,
"$NodeData\n");
185 fprintf(f,
"%d \n",1);
186 fprintf(f,
"\"Mics Abs(Scattered_Field)\"\n");
187 fprintf(f,
"%d \n",1);
188 fprintf(f,
"%f \n",
HZFREQ(cfreq));
189 fprintf(f,
"%d \n",3);
190 fprintf(f,
"%d \n",icounter);
191 fprintf(f,
"%d \n",1);
195 fprintf(f,
"%d %f\n",i+1,
CABS(val));
197 fprintf(f,
"$EndNodeData\n");
199 fprintf(f,
"$NodeData\n");
200 fprintf(f,
"%d \n",1);
201 fprintf(f,
"\"Mics Re(Total_Field)\"\n");
202 fprintf(f,
"%d \n",1);
203 fprintf(f,
"%f \n",
HZFREQ(cfreq));
204 fprintf(f,
"%d \n",3);
205 fprintf(f,
"%d \n",icounter);
206 fprintf(f,
"%d \n",1);
209 val = gPhiscm[i] + gPhincm[i];
210 fprintf(f,
"%d %f\n",i+1,
CREAL(val));
212 fprintf(f,
"$EndNodeData\n");
214 fprintf(f,
"$NodeData\n");
215 fprintf(f,
"%d \n",1);
216 fprintf(f,
"\"Mics Im(Total_Field)\"\n");
217 fprintf(f,
"%d \n",1);
218 fprintf(f,
"%f \n",
HZFREQ(cfreq));
219 fprintf(f,
"%d \n",3);
220 fprintf(f,
"%d \n",icounter);
221 fprintf(f,
"%d \n",1);
224 val = gPhiscm[i] + gPhincm[i];
225 fprintf(f,
"%d %f\n",i+1,
CIMAG(val));
227 fprintf(f,
"$EndNodeData\n");
229 fprintf(f,
"$NodeData\n");
230 fprintf(f,
"%d \n",1);
231 fprintf(f,
"\"Mics Abs(Total_Field)\"\n");
232 fprintf(f,
"%d \n",1);
233 fprintf(f,
"%f \n",
HZFREQ(cfreq));
234 fprintf(f,
"%d \n",3);
235 fprintf(f,
"%d \n",icounter);
236 fprintf(f,
"%d \n",1);
239 val = gPhiscm[i] + gPhincm[i];
240 fprintf(f,
"%d %f\n",i+1,
CABS(val));
242 fprintf(f,
"$EndNodeData\n");
244 fprintf(f,
"$NodeData\n");
245 fprintf(f,
"%d \n",1);
246 fprintf(f,
"\"Mics Insertion Loss\"\n");
247 fprintf(f,
"%d \n",1);
248 fprintf(f,
"%f \n",
HZFREQ(cfreq));
249 fprintf(f,
"%d \n",3);
250 fprintf(f,
"%d \n",icounter);
251 fprintf(f,
"%d \n",1);
254 prat =
CABS(gPhincm[i]+gPhiscm[i])/
CABS(gPhincm[i]);
255 iloss = 20.0*log10(1./prat);
256 fprintf(f,
"%d %f\n",i+1,iloss);
258 fprintf(f,
"$EndNodeData\n");
260 fprintf(f,
"$NodeData\n");
261 fprintf(f,
"%d \n",1);
262 fprintf(f,
"\"Mics SPL\"\n");
263 fprintf(f,
"%d \n",1);
264 fprintf(f,
"%f \n",
HZFREQ(cfreq));
265 fprintf(f,
"%d \n",3);
266 fprintf(f,
"%d \n",icounter);
267 fprintf(f,
"%d \n",1);
270 prat = 0.70710678*
CABS(gPhiscm[i]+gPhincm[i])/0.00002;
271 spl = 20.0*log10(prat);
272 fprintf(f,
"%d %f\n",i+1,spl);
274 fprintf(f,
"$EndNodeData\n");
struct run_info * runinfo
Definition: globals.h:34
#define Vec
Definition: types.h:63
int npcols
Definition: structs.h:113
#define VecDestroy(v)
Definition: allocation.h:111
const char * title
Definition: structs.h:135
#define CREAL(x)
Definition: functions.h:49
int nemics
Definition: structs.h:305
int myrow
Definition: structs.h:115
int nprows
Definition: structs.h:111
void get_filename(char *filename, const char *format,...)
Definition: utils.c:59
#define CIMAG(x)
Definition: functions.h:50
int mics_block_size
Definition: structs.h:124
void pzgemr2d_(int *m, int *n, COMPLEX *A, int *ia, int *ja, int *desca, COMPLEX *B, int *ib, int *jb, int *descb, int *ictxt)
Copies a (m x n) submatrix of A from element (ia,ja) on a submatrix of B from element (ib...
int ctxt
Definition: structs.h:109
void descinit_(int *desc, int *m, int *n, int *mb, int *nb, int *ia, int *ja, int *ictxt, int *llda, int *info)
struct solution_struct * solution
Definition: globals.h:52
#define COMPLEX
Definition: types.h:48
Vec vecPhincm
Definition: structs.h:582
#define CABS(x)
Definition: functions.h:51
int nmics
Definition: structs.h:304
#define HZFREQ(x)
Definition: functions.h:28
Vec vecPhium
Definition: structs.h:586
double DOUBLE
Definition: types.h:44
int numroc_(int *m, int *mb, int *p, int *ia, int *npr)
int rank
Definition: globals.h:79
struct run_details * rundetails
Definition: globals.h:36
Geometry info structure.
Definition: structs.h:161
#define MAX_PATH
Definition: constants.h:29
#define calloc(n, size)
Definition: allocation.h:37
struct modgeom_info * modgeominfo
Definition: globals.h:38