Go to the documentation of this file. 15 #define DEBUG_FUNC_BEG(a) \ 16 char d_funcName[64]; \ 17 sprintf (d_funcName,"%s",a); \ 19 if (d_condition) { printLog("%*c", d_indent, ' '); \ 20 printLog (">>[%s]\n",a ); } 22 #define DEBUG_FUNC_END(a) \ 23 if (d_condition) {print("%*c", d_indent, ' '); \ 24 printLog("<<[%s]\n",a ); } \ 27 #define DEBUG_FUNC_NAME d_funcName 30 #define DEBUG_FUNC_BEG(a) 31 #define DEBUG_FUNC_END(a) 32 #define DEBUG_FUNC_NAME "Not Set" 35 #define POW2(x) ((x)*(x)) 36 #define POW3(x) ((x)*(x)*(x)) 37 #define POW4(x) ((x)*(x)*(x)*(x)) 38 #define SECH(x) ((x) > 30.0 ? 0.0:1.0/cosh(x)) 55 #define IBEG_LOOP(i) for ((i) = IBEG; (i)--; ) 56 #define JBEG_LOOP(j) for ((j) = JBEG; (j)--; ) 57 #define KBEG_LOOP(k) for ((k) = KBEG; (k)--; ) 59 #define IEND_LOOP(i) for ((i) = IEND + 1; (i) < NX1_TOT; (i)++) 60 #define JEND_LOOP(j) for ((j) = JEND + 1; (j) < NX2_TOT; (j)++) 61 #define KEND_LOOP(k) for ((k) = KEND + 1; (k) < NX3_TOT; (k)++) 63 #define IDOM_LOOP(i) for ((i) = IBEG; (i) <= IEND; (i)++) 64 #define JDOM_LOOP(j) for ((j) = JBEG; (j) <= JEND; (j)++) 65 #define KDOM_LOOP(k) for ((k) = KBEG; (k) <= KEND; (k)++) 67 #define ITOT_LOOP(i) for ((i) = 0; (i) < NX1_TOT; (i)++) 68 #define JTOT_LOOP(j) for ((j) = 0; (j) < NX2_TOT; (j)++) 69 #define KTOT_LOOP(k) for ((k) = 0; (k) < NX3_TOT; (k)++) 71 #define DOM_LOOP(k,j,i) KDOM_LOOP(k) JDOM_LOOP(j) IDOM_LOOP(i) 73 #define TOT_LOOP(k,j,i) KTOT_LOOP(k) JTOT_LOOP(j) ITOT_LOOP(i) 75 #define X1_BEG_LOOP(k,j,i) KTOT_LOOP(k) JTOT_LOOP(j) IBEG_LOOP(i) 76 #define X2_BEG_LOOP(k,j,i) KTOT_LOOP(k) JBEG_LOOP(j) ITOT_LOOP(i) 77 #define X3_BEG_LOOP(k,j,i) KBEG_LOOP(k) JTOT_LOOP(j) ITOT_LOOP(i) 79 #define X1_END_LOOP(k,j,i) KTOT_LOOP(k) JTOT_LOOP(j) IEND_LOOP(i) 80 #define X2_END_LOOP(k,j,i) KTOT_LOOP(k) JEND_LOOP(j) ITOT_LOOP(i) 81 #define X3_END_LOOP(k,j,i) KEND_LOOP(k) JTOT_LOOP(j) ITOT_LOOP(i) 93 #define BOX_LOOP(B,k,j,i) \ 94 for ((B)->dk = ((k=(B)->kbeg) <= (B)->kend ? 1:-1); k != (B)->kend+(B)->dk; k += (B)->dk)\ 95 for ((B)->dj = ((j=(B)->jbeg) <= (B)->jend ? 1:-1); j != (B)->jend+(B)->dj; j += (B)->dj)\ 96 for ((B)->di = ((i=(B)->ibeg) <= (B)->iend ? 1:-1); i != (B)->iend+(B)->di; i += (B)->di) 99 #define IBOX_LOOP(B,i) \ 100 for ((B)->di = ((i=(B)->ibeg) <= (B)->iend ? 1:-1); i != (B)->iend+(B)->di; i += (B)->di) 102 #define JBOX_LOOP(B,j) \ 103 for ((B)->dj = ((j=(B)->jbeg) <= (B)->jend ? 1:-1); j != (B)->jend+(B)->dj; j += (B)->dj) 105 #define KBOX_LOOP(B,k) \ 106 for ((B)->dk = ((k=(B)->kbeg) <= (B)->kend ? 1:-1); k != (B)->kend+(B)->dk; k += (B)->dk) 108 #define BOX_TRANSVERSE_LOOP(box,k,j,i) \ 109 if (g_dir == IDIR) {(box)->n = &i; (box)->t = &j; (box)->b = &k;} \ 110 else if (g_dir == JDIR) {(box)->n = &j; (box)->t = &i; (box)->b = &k;} \ 111 else if (g_dir == KDIR) {(box)->n = &k; (box)->t = &i; (box)->b = &j;} \ 112 for (*((box)->b) = *(box)->bbeg; *((box)->b) <= *(box)->bend; *((box)->b) +=1) \ 113 for (*((box)->t) = *(box)->tbeg; *((box)->t) <= *(box)->tend; *((box)->t) +=1) 129 #define FOR_EACH(nv, list) \ 130 for ((list)->i = 0, nv = (list)->indx[0]; \ 131 (list)->i < (list)->nvar; \ 132 nv = (list)->indx[++((list)->i)]) 138 #define INT_FLOOR(z) ((int)((z) + 32768.) - 32768) 141 #define MAX(a,b) ( (a) >= (b) ? (a) : (b) ) 144 #define MIN(a,b) ( (a) <= (b) ? (a) : (b) ) 147 #define ABS_MIN(a,b) (fabs(a) < fabs(b) ? (a):(b)) 150 #define DSIGN(x) ( (x) >= 0.0 ? (1.0) : (-1.0)) 151 #define DSIGN2(x) ( (x == 0) ? 0.5:((x) > 0.0 ? (1.0) : (-1.0))) 154 #define MINMOD_LIMITER(a,b) ((a)*(b) > 0.0 ? (fabs(a) < fabs(b) ? (a):(b)):0.0) 155 #define VANLEER_LIMITER(a,b) ((a)*(b) > 0.0 ? 2.0*(a)*(b)/((a)+(b)):0.0) 156 #define MC_LIMITER(a,b) (MINMOD_LIMITER(0.5*((a)+(b)), 2.0*MINMOD_LIMITER((a),(b)))) 157 #define SWAP_VAR(x) SwapEndian(&x, sizeof(x)); 165 #define QUIT_PLUTO(e_code) \ 166 {error("Abort"); MPI_Abort(MPI_COMM_WORLD, e_code); exit(e_code);} 168 #define QUIT_PLUTO(e_code) \ 169 {error("Abort"); exit(e_code);} 174 #define QUIT_PLUTO(e_code) \ 175 {printLog ("! Abort\n"); \ 177 MPI_Abort(MPI_COMM_WORLD, e_code); \ 181 #define QUIT_PLUTO(e_code) exit(e_code); 228 #define INCLUDE_IDIR TRUE 229 #define INCLUDE_JDIR FALSE 230 #define INCLUDE_KDIR FALSE 232 #define DIM_EXPAND(a,b,c) a 233 #define DIM_SELECT(a,b,c) a 237 #define INCLUDE_IDIR TRUE 239 #define INCLUDE_JDIR TRUE 242 #define INCLUDE_KDIR FALSE 246 #define DIM_EXPAND(a,b,c) a b 247 #define DIM_SELECT(a,b,c) b 250 #if !INCLUDE_JDIR && INCLUDE_KDIR 251 #define DIM_EXPAND(a,b,c) a c 252 #define DIM_SELECT(a,b,c) c 258 #define INCLUDE_IDIR TRUE 260 #define INCLUDE_JDIR TRUE 263 #define INCLUDE_KDIR TRUE 266 #if INCLUDE_JDIR == TRUE 267 #define DIM_EXPAND(a,b,c) a b c 268 #define DIM_SELECT(a,b,c) c 270 #define DIM_EXPAND(a,b,c) a c 271 #define DIM_SELECT(a,b,c) c 283 #if DIMENSIONS == 3 || DIMENSIONS == 1 284 #define DIM_LOOP(d) for ((d) = 0; (d) < DIMENSIONS; \ 285 (d) += 2*INCLUDE_IDIR - INCLUDE_JDIR) 287 #define DIM_LOOP(d) for ((d) = 0; \ 288 (d) < MAX(3*INCLUDE_KDIR, MAX(INCLUDE_IDIR,2*INCLUDE_JDIR)); \ 289 (d) += 2*INCLUDE_IDIR - INCLUDE_JDIR) 293 #define DOT_PRODUCT(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]) 295 #if WARNING_MESSAGES == YES 314 #define FDIFF_X1(Q,k,j,i) (Q[k][j][i+1] - Q[k][j][i]) 315 #define CDIFF_X1(Q,k,j,i) (0.5*(Q[k][j][i+1] - Q[k][j][i-1])) 317 #define FDIFF_X1(Q,k,j,i) (0.0) 318 #define CDIFF_X1(Q,k,j,i) (0.0) 322 #define FDIFF_X2(Q,k,j,i) (Q[k][j+1][i] - Q[k][j][i]) 323 #define CDIFF_X2(Q,k,j,i) (0.5*(Q[k][j+1][i] - Q[k][j-1][i])) 325 #define FDIFF_X2(Q,k,j,i) (0.0) 326 #define CDIFF_X2(Q,k,j,i) (0.0) 330 #define FDIFF_X3(Q,k,j,i) (Q[k+1][j][i] - Q[k][j][i]) 331 #define CDIFF_X3(Q,k,j,i) (0.5*(Q[k+1][j][i] - Q[k-1][j][i])) 333 #define FDIFF_X3(Q,k,j,i) (0.0) 334 #define CDIFF_X3(Q,k,j,i) (0.0) 350 #define AVERAGE_X(q,k,j,i) (0.5*(q[k][j][i] + q[k][j][i+1])) 352 #define AVERAGE_X(q,k,j,i) (q[k][j][i]) 356 #define AVERAGE_Y(q,k,j,i) (0.5*(q[k][j][i] + q[k][j+1][i])) 357 #define AVERAGE_XY(q,k,j,i) (0.5*(AVERAGE_X(q,k,j,i) + AVERAGE_X(q,k,j+1,i))); 359 #define AVERAGE_Y(q,k,j,i) (q[k][0][i]) 360 #define AVERAGE_XY(q,k,j,i) AVERAGE_X(q,k,0,i) 364 #define AVERAGE_Z(q,k,j,i) (0.5*(q[k][j][i] + q[k+1][j][i])) 365 #define AVERAGE_XZ(q,k,j,i) (0.5*(AVERAGE_X(q,k,j,i) + AVERAGE_X(q,k+1,j,i))) 366 #define AVERAGE_YZ(q,k,j,i) (0.5*(AVERAGE_Y(q,k,j,i) + AVERAGE_Y(q,k+1,j,i))) 367 #define AVERAGE_XYZ(q,k,j,i) (0.5*(AVERAGE_XY(q,k,j,i) + AVERAGE_XY(q,k+1,j,i))) 369 #define AVERAGE_Z(q,k,j,i) (q[0][j][i]) 370 #define AVERAGE_XZ(q,k,j,i) AVERAGE_X(q,0,j,i) 371 #define AVERAGE_YZ(q,k,j,i) AVERAGE_Y(q,0,j,i) 372 #define AVERAGE_XYZ(q,k,j,i) AVERAGE_XY(q,0,j,i)