Evaluates solution at microphones. Coefficients are calculated. This function is called when pre_calculate_coefs == 0.
343 int mpi_ncntr,mpi_nelmu;
345 int locRows,locCols,locCRows;
346 int gRows,gCols,gCRows;
361 DOUBLE bb,cc,dd,theta,thetad;
383 struct panel4* mpi_elements;
386 DOUBLE source,doublet,ratelet;
394 #ifdef _ACOUSTO_DEBUG 440 pzgemr2d_(&gCRows,&ione,
solution->
vecPsinc,&ione, &ione,descpsiu, psincvec,&ione,&ione,descgpsiu,&
runinfo->
ctxt);
441 pzgemr2d_(&gCRows,&ione,
solution->
vecPhinc,&ione, &ione,descpsiu, phincvec,&ione,&ione,descgpsiu,&
runinfo->
ctxt);
474 for(i=0;i<locRows;i++){
478 for(j=0;j<locCols;j++){
485 ielmb = ielmu + is*mpi_nelmu;
489 delaya(&thetad,ielmb,&mpi_elements[ielmb],mpi_cntr[icntr]);
490 intgba(1, 0, kode, &mpi_cntr[icntr], &mpi_elements[ielmb], &source, &doublet, &ratelet);
497 cexpo =
CEXP(-cfreq*theta);
499 psincval = psincvec[iphiu];
500 phincval = phincvec[iphiu];
502 vec_copy(&un,mpi_elements[ielmb].n);
506 gamma_over_lambda = gamma/lambda;
507 lambda_over_gamma = lambda/gamma;
518 phitcval = (func+gdotn)/gamma - lambda_over_gamma * psitcval;
519 phiscmval += bb*cexpo*psitcval + (cc + cfreq*dd)*phitcval*cexpo;
522 psitcval = psiscval + psincval;
523 phitcval = (func+gdotn)/gamma - lambda_over_gamma * psitcval;
524 phiscval = phitcval - phincval;
525 phiscmval += bb*cexpo*psiscval + (cc + cfreq*dd)*phiscval*cexpo;
535 phitcval = phiscval + phincval;
539 phiscmval += bb*cexpo*((func+gdotn)/lambda - gamma_over_lambda * phitcval) + (cc + cfreq*dd)*phitcval*cexpo;
541 phiscmval += bb*cexpo*((func+gdotn)/lambda - gamma_over_lambda * phincval - gamma_over_lambda*phiscval - psincval) + (cc+cfreq*dd)*phiscval*cexpo;
550 phitmval = phincmval + phiscmval;
555 prescmval = phiscmval;
572 #ifdef _ACOUSTO_DEBUG 574 f = fopen(fname,
"w");
575 for(i=0;i<locRows;i++){
577 fprintf(f,
" %d %f %f %f %f %f %f\n",imics,
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
int ncntr
Definition: structs.h:299
DOUBLE vsound
Definition: structs.h:102
#define CREAL(x)
Definition: functions.h:49
void delaya(DOUBLE *theta, int ielmb, struct panel4 *element, struct vector xc)
Definition: integrals.c:268
void Czgsum2d(int ctxt, char *scope, char *top, int m, int n, COMPLEX *A, int llda, int recr, int recc)
#define MPI_ACOUSTO_COMPLEX
Definition: types.h:56
Vec vecPsinc
Definition: structs.h:580
int myrow
Definition: structs.h:115
void vec_copy(struct vector *vdest, const struct vector vsrc)
Definition: math.c:158
int nprows
Definition: structs.h:111
vector struct to hold triplets.
Definition: structs.h:29
#define CIMAG(x)
Definition: functions.h:50
COMPLEX * lambda
Definition: structs.h:623
int nchief
Definition: structs.h:301
COMPLEX * sol
Definition: structs.h:607
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...
struct bc_struct bc
Definition: globals.h:54
int nelmb
Definition: structs.h:295
#define CEXP(x)
Definition: functions.h:48
Vec vecPhinc
Definition: structs.h:578
#define COMPLEX_ZERO
Definition: constants.h:44
int ctxt
Definition: structs.h:109
int knw
Definition: structs.h:446
Definition of a quadrilateral panel.
Definition: structs.h:44
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
BOOL printout
Definition: structs.h:486
struct modsol_info * modsolinfo
Definition: globals.h:44
int nmics
Definition: structs.h:304
DOUBLE z
Definition: structs.h:35
struct vector g
Definition: structs.h:626
DOUBLE vec_dot(struct vector v1, struct vector v2)
Definition: math.c:34
COMPLEX * gamma
Definition: structs.h:624
Vec vecPhium
Definition: structs.h:586
int mycol
Definition: structs.h:117
int nsymm
Definition: structs.h:97
Vec vecPrescm
Definition: structs.h:588
double DOUBLE
Definition: types.h:44
int numroc_(int *m, int *mb, int *p, int *ia, int *npr)
DOUBLE x
Definition: structs.h:31
#define CREATE_VEC(v, lsize)
Definition: allocation.h:90
int col_block_size
Definition: structs.h:121
COMPLEX * func
Definition: structs.h:625
void intgba(int kcrce, int kelem, int kode, struct vector *xcntr, struct panel4 *element, DOUBLE *source, DOUBLE *doublet, DOUBLE *ratelet)
Definition: integrals.c:40
Geometry info structure.
Definition: structs.h:161
void print_premic_on_master(COMPLEX cfreq)
Definition: pre_mic.c:604
Vec vecPretm
Definition: structs.h:590
#define MAX_PATH
Definition: constants.h:29
int row_block_size
Definition: structs.h:119
#define calloc(n, size)
Definition: allocation.h:37
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
DOUBLE y
Definition: structs.h:33
int dirneu
Definition: structs.h:444