Files
@ 215974bd7440
Branch filter:
Location: MD/arcos/include/cstream.h
215974bd7440
3.4 KiB
text/x-chdr
Edited file README via RhodeCode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | /** @file cstream.h
* @brief Global header file
*/
#ifndef _CSTREAM_H_
#include "tree.h"
#include "assert.h"
#include "stdlib.h"
#ifdef _OPENMP
# include "omp.h"
#endif
#ifndef TRUE
# define TRUE 1
#endif
#ifndef FALSE
# define FALSE 0
#endif
#ifdef DEBUG_LEVEL
# ifdef _OPENMP
# define debug(level, ...) if (DEBUG_LEVEL >= level) { \
fprintf (stderr,"[%d] %s:%d: ", omp_get_thread_num(), \
__FILE__, __LINE__); \
fprintf (stderr,__VA_ARGS__); \
}
# else /*_OPENMP*/
# define debug(level, ...) if (DEBUG_LEVEL >= level) { \
fprintf (stderr,"%s:%d: ", __FILE__, __LINE__); \
fprintf (stderr,__VA_ARGS__); \
}
# endif
#else
# define debug(level, ...)
# define NDEBUG /* To supress the asserts */
#endif
#define warning(...) do{ \
fprintf (stderr, "%s: Warning: ", invok_name); \
fprintf (stderr, ## __VA_ARGS__); \
} while(0)
#define fatal(...) do{ \
fprintf (stderr, "%s: Fatal error: ", invok_name); \
fprintf (stderr, ## __VA_ARGS__); \
exit(-1); \
} while(0)
/* Useful to debug. */
#define show_double(VAR_) printf (#VAR_ " = %g\n", VAR_)
#define show_int(VAR_) printf (#VAR_ " = %d\n", VAR_)
/* Beware of side-effects! */
#define MYMAX(X_, Y_) ((X_) > (Y_)? (X_): (Y_))
#define MYMIN(X_, Y_) ((X_) < (Y_)? (X_): (Y_))
#define MAX_AT_LEVEL(X_, Y_, L_) MYMAX(X_, (Y_) << (L_))
#define MIN_AT_LEVEL(X_, Y_, L_) MYMIN(X_, (Y_) << (L_))
#define MAX_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_) \
MYMAX(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))
#define MIN_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_) \
MYMIN(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))
#define XCHG(X1_, X2_) do { \
typeof(X1_) TMP_; \
TMP_ = X1_; \
X1_ = X2_; \
X2_ = TMP_; \
} while(0)
#define SQ(X_) ((X_) * (X_))
///** @brief Information about each program parameter. */
//typedef struct param_t param_t;
//struct param_t {
//char *name;
//char *desc;
//char *type;
//void *value;
//};
/** @brief These are the types for the global parameters. */
typedef char* string;
typedef double* doublep;
//#ifdef ALLOC_PARAMS
//# define decl_param(TYPE, NAME, DESC, DEFAULT) \
//TYPE NAME = DEFAULT; \
//param_t NAME ## _st = { \
//#NAME, \
//DESC, \
//#TYPE, \
//(void *) &NAME};
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT) \
//TYPE NAME; \
//param_t NAME ## _st = { \
//#NAME, \
//DESC, \
//"deprecated", \
//NULL};
//#else
//# define decl_param(TYPE, NAME, DESC, DEFAULT) \
//extern TYPE NAME; \
//extern param_t NAME ## _st;
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT) \
//decl_param(TYPE, NAME, DESC, DEFAULT)
//#endif
typedef double REAL;
extern double *dr, *dz, dtheta;
/*!< The grid sizes */
extern double *w2k, *wk;
/*!< See cstream.c */
#define decl_field_comp(_DIR) \
double (*ext_e_ ## _DIR) (double r, double z, double theta)
/*!< The three components of the external field: ext_e_r, ext_e_z and
* ext_e_theta. */
extern decl_field_comp(r);
extern decl_field_comp(z);
extern decl_field_comp(theta);
extern char *invok_name;
extern const double twopi;
extern const double invfourpi;
extern const double invpi32;
/**********
* misc.c *
**********/
void *xmalloc (size_t size);
void *xrealloc (void *ptr, size_t size);
void *xcalloc (size_t count, size_t size);
#define _CSTREAM_H_
#endif
|