AcouSTO  version 2.0

◆ fr_print_pre_mic()

void fr_print_pre_mic ( FILE *  file,
int  imic,
int  icounter,
COMPLEX  cfreq 
)
151  {
152 
153  Vec gPhiscm = NULL;
154  Vec gPhincm = NULL;
155  int locRows;
156  int gRows;
157  int mm,nn;
158  int descl[9];
159  int descg[9];
160  int izero=0;
161  int ione=1;
162  int info;
163  COMPLEX rho_s;
164 
165 
166  logger(LOG_DEBUG,"Collecting solution at microphones to print frequency response file...\n");
167  rho_s = cfreq*modsolinfo->rho;
168 
169  if (0 == rank) gPhiscm = calloc(modgeominfo->nmics,sizeof(COMPLEX));
170  if (0 == rank) gPhincm = calloc(modgeominfo->nmics,sizeof(COMPLEX));
171 
172  gRows = modgeominfo->nmics;
173  locRows = numroc_(&gRows ,&runinfo->mics_block_size,&runinfo->myrow,&izero,&runinfo->nprows);
174 
175 
176  // Gathering vectors on node 0
177  mm = gRows;// * runinfo->nprows;
178  nn = runinfo->npcols;
179  descinit_(descl , &gRows ,&ione, &runinfo->mics_block_size ,&ione,&izero,&izero,&runinfo->ctxt,&gRows ,&info);
180  descinit_(descg , &mm ,&ione, &gRows ,&ione,&izero,&izero,&runinfo->ctxt,&gRows ,&info);
181 
182  pzgemr2d_(&gRows,&ione,solution->vecPhium ,&ione, &ione,descl, gPhiscm ,&ione,&ione,descg,&runinfo->ctxt);
183  pzgemr2d_(&gRows,&ione,solution->vecPhincm ,&ione, &ione,descl, gPhincm ,&ione,&ione,descg,&runinfo->ctxt);
184 
185  if(0 == rank){
186  fprintf(file,"%d %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E %10.8E\n",
187  icounter,
188  CIMAG(cfreq),
189  HZFREQ(cfreq),
190  CREAL(gPhincm[imic]),
191  CIMAG(gPhincm[imic]),
192  CABS (gPhincm[imic]),
193  CREAL(gPhiscm[imic]),
194  CIMAG(gPhiscm[imic]),
195  CABS (gPhiscm[imic]),
196  CREAL(gPhincm[imic]+gPhiscm[imic]),
197  CIMAG(gPhincm[imic]+gPhiscm[imic]),
198  CABS (gPhincm[imic]+gPhiscm[imic])
199  );
200  }
201  logger(LOG_DEBUG,"Done.\n");
202 
203  if(0 == rank && NULL != gPhiscm) free(gPhiscm);
204  if(0 == rank && NULL != gPhincm) free(gPhincm);
205 }
struct run_info * runinfo
Definition: globals.h:34
#define Vec
Definition: types.h:63
int npcols
Definition: structs.h:113
#define CREAL(x)
Definition: functions.h:49
int myrow
Definition: structs.h:115
int nprows
Definition: structs.h:111
#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
DOUBLE rho
Definition: structs.h:476
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
struct modsol_info * modsolinfo
Definition: globals.h:44
int nmics
Definition: structs.h:304
#define HZFREQ(x)
Definition: functions.h:28
#define LOG_DEBUG
Definition: logger.h:27
Vec vecPhium
Definition: structs.h:586
int numroc_(int *m, int *mb, int *p, int *ia, int *npr)
int rank
Definition: globals.h:79
void logger(int level, char *msg,...)
Definition: logger.c:56
#define calloc(n, size)
Definition: allocation.h:37
struct modgeom_info * modgeominfo
Definition: globals.h:38