HARM
harm and utilities
 All Data Structures Files Functions Variables Typedefs Macros Pages
global.variousmacros.h
Go to the documentation of this file.
1 
2 
15 #define MYDMIN(a,b) (mydminarg1=(a),mydminarg2=(b),(mydminarg1) < (mydminarg2) ? \
16  (mydminarg1) : (mydminarg2))
17 
18 #define delta(i,j) ((i == j) ? 1. : 0.)
19 #define dot(a,b) (a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3])
20 
21 #define mink(I,J) (I != J ? (0.) : (I == 0 ? (-1.) : (1.)))
22 
23 #define pfixupeach(pr,i,j,k,which,min) {if(pr[which]<min){ fladd[which]+=dV*MYGDET(i,j,k,CENT)*(min-pr[which]); pr[which]=min;}}
24 
25 #define pfixup(pr,i,j,k) {pfixupeach(pr,i,j,k,RHO,RHOMIN); pfixupeach(pr,i,j,k,UU,UUMIN); }
26 
27 // #define FAILSTATEMENT(file,function,number) {fprintf(fail_file,"%s
28 // %d-%s(): failure\n",file,number,function); fflush(fail_file);
29 // dualfprintf(fail_file,"MAC(rho,i,j,k): %21.15g MAC(uu,i,j,k): %21.15g MAC(rho2,i,j,k):
30 // %21.15g MAC(uu2,i,j,k): %21.15g i: %d j: %d pl:
31 // %d\n",MACP0A1(p,i,j,k,RHO),MACP0A1(p,i,j,k,UU),MACP0A1(ph,i,j,k,RHO),MACP0A1(ph,i,j,k,UU),i,j,pl);
32 // return(1);}
33 
34 #define FAILSTATEMENTVOID(file,function,number) {if(debugfail>=1){ dualfprintf(fail_file,"%s %d-%s(): failure\n",file,number,function);} }
35 
36 #if(USEOPENMP==0)
37 #define FAILSTATEMENT(file,function,number) {if(debugfail>=1){ dualfprintf(fail_file,"%s %d-%s(): failure\n",file,number,function);} return(1);}
38 #else
39 // can't have return in OpenMP parallel section, so use this:
40 #define FAILSTATEMENT(file,function,number) FAILSTATEMENTVOID(file,function,number)
41 #endif
42 
43 
44 
45 #if(JONCHECKS2 && PRODUCTION==0 && (USEOPENMP==0))
46 #define MYFUN(fun,one,two,three) if(fun>=1){ FAILSTATEMENT(one,two,three);}
47 #else
48 // if PRODUCTION>0 then avoid if statement
49 #define MYFUN(fun,one,two,three) {fun;}
50 #endif
51 
52 
53 #if(PRODUCTION>1)
54 
55 #define error_check(wherefrom) (0)
56 #endif
57 
58 
59 //https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
60 #if(PRODUCTION>0)
61 #define prod0dualfprintf(cond,...) if(cond){ dualfprintf(__VA_ARGS__); }
62 #else
63 #define prod0dualfprintf(cond,...)
64 #endif
65 
66 
67