AcouSTO  version 2.0

◆ eval_nw()

void eval_nw ( COMPLEX  freq,
int  icounter 
)

This routine evaluates the boundary conditions, according to the formulation to be used.

Parameters
[in]freqCOMPLEX frequency
[in]icounterfrequency index
279  {
280 
281  int i;
282  int ipsiu,npsiu;
283  COMPLEX psiuval;
284 
285 
286  int locRows;
287  int gRows;
288  int izero = 0;
289 #ifdef _ACOUSTO_DEBUG
290  FILE *f;
291  char fname[MAX_PATH];
292 #endif
293 
294 
295  npsiu = modgeominfo->ncntr;
296  gRows = npsiu;
297 
298  locRows = numroc_(&gRows,&runinfo->row_block_size,&runinfo->myrow,&izero,&runinfo->nprows);
299 
300 
301  if(icounter == 0){
302  CREATE_VEC(solution->vecPsiu ,locRows);
303  }
304  VecZeroEntries(solution->vecPsiu,locRows);
305 
306  if(runinfo->mycol != 0){ // vectors are distributed only on first col of grid
307  return;
308  }
309 
310  for(i=0;i<locRows;i++){
312  if(2 == modsolinfo->knw){
313  psiuval = solution->vecPsinc[i];
314  solution->vecPsiu[i] -= psiuval;
315  }
316  }
317 
318 
319 #ifdef _ACOUSTO_DEBUG
320  sprintf(fname,"psiu.%d%d",runinfo->myrow,runinfo->mycol);
321  f = fopen(fname,"w");
322  for(i=0;i<locRows;i++){
324  fprintf(f," %d %f %f\n",ipsiu,
326  );
327  }
328  fclose(f);
329 #endif
330 
331 
332 }
struct run_info * runinfo
Definition: globals.h:34
int ncntr
Definition: structs.h:299
#define CREAL(x)
Definition: functions.h:49
Vec vecPsinc
Definition: structs.h:580
int myrow
Definition: structs.h:115
int nprows
Definition: structs.h:111
#define CIMAG(x)
Definition: functions.h:50
int knw
Definition: structs.h:446
struct solution_struct * solution
Definition: globals.h:52
#define COMPLEX
Definition: types.h:48
Vec vecPsiu
Definition: structs.h:584
struct modsol_info * modsolinfo
Definition: globals.h:44
int mycol
Definition: structs.h:117
int numroc_(int *m, int *mb, int *p, int *ia, int *npr)
#define CREATE_VEC(v, lsize)
Definition: allocation.h:90
#define MAX_PATH
Definition: constants.h:29
int row_block_size
Definition: structs.h:119
struct modgeom_info * modgeominfo
Definition: globals.h:38
void sc_l2g(int il, int p, int n, int np, int nb, int *i)
Definition: matutils.c:116
#define VecZeroEntries(V, n)
Definition: allocation.h:99