Streamer fluid modeling - An overview of ARCoS
1.0
Main Page
Related Pages
Data Types List
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
include
cstream.h
Go to the documentation of this file.
1
5
#ifndef _CSTREAM_H_
6
7
#include "
tree.h
"
8
#include "assert.h"
9
#include "stdlib.h"
10
11
#ifdef _OPENMP
12
# include "omp.h"
13
#endif
14
15
#ifndef TRUE
16
# define TRUE 1
17
#endif
18
19
#ifndef FALSE
20
# define FALSE 0
21
#endif
22
23
24
#ifdef DEBUG_LEVEL
25
# ifdef _OPENMP
26
# define debug(level, ...) if (DEBUG_LEVEL >= level) { \
27
fprintf (stderr,"[%d] %s:%d: ", omp_get_thread_num(), \
28
__FILE__, __LINE__); \
29
fprintf (stderr,__VA_ARGS__); \
30
}
31
# else
/*_OPENMP*/
32
# define debug(level, ...) if (DEBUG_LEVEL >= level) { \
33
fprintf (stderr,"%s:%d: ", __FILE__, __LINE__); \
34
fprintf (stderr,__VA_ARGS__); \
35
}
36
# endif
37
#else
38
# define debug(level, ...)
39
# define NDEBUG
/* To supress the asserts */
40
#endif
41
42
#define warning(...) do{ \
43
fprintf (stderr, "%s: Warning: ", invok_name); \
44
fprintf (stderr, ## __VA_ARGS__); \
45
} while(0)
46
47
#define fatal(...) do{ \
48
fprintf (stderr, "%s: Fatal error: ", invok_name); \
49
fprintf (stderr, ## __VA_ARGS__); \
50
exit(-1); \
51
} while(0)
52
53
/* Useful to debug. */
54
#define show_double(VAR_) printf (#VAR_ " = %g\n", VAR_)
55
#define show_int(VAR_) printf (#VAR_ " = %d\n", VAR_)
56
57
/* Beware of side-effects! */
58
#define MYMAX(X_, Y_) ((X_) > (Y_)? (X_): (Y_))
59
#define MYMIN(X_, Y_) ((X_) < (Y_)? (X_): (Y_))
60
#define MAX_AT_LEVEL(X_, Y_, L_) MYMAX(X_, (Y_) << (L_))
61
#define MIN_AT_LEVEL(X_, Y_, L_) MYMIN(X_, (Y_) << (L_))
62
#define MAX_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_) \
63
MYMAX(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))
64
#define MIN_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_) \
65
MYMIN(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))
66
67
#define XCHG(X1_, X2_) do { \
68
typeof(X1_) TMP_; \
69
TMP_ = X1_; \
70
X1_ = X2_; \
71
X2_ = TMP_; \
72
} while(0)
73
74
75
#define SQ(X_) ((X_) * (X_))
76
78
//typedef struct param_t param_t;
79
//struct param_t {
80
//char *name;
81
//char *desc;
82
//char *type;
83
//void *value;
84
//};
85
87
typedef
char
*
string
;
88
typedef
double
*
doublep
;
89
90
//#ifdef ALLOC_PARAMS
91
//# define decl_param(TYPE, NAME, DESC, DEFAULT) \
92
//TYPE NAME = DEFAULT; \
93
//param_t NAME ## _st = { \
94
//#NAME, \
95
//DESC, \
96
//#TYPE, \
97
//(void *) &NAME};
98
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT) \
99
//TYPE NAME; \
100
//param_t NAME ## _st = { \
101
//#NAME, \
102
//DESC, \
103
//"deprecated", \
104
//NULL};
105
//#else
106
//# define decl_param(TYPE, NAME, DESC, DEFAULT) \
107
//extern TYPE NAME; \
108
//extern param_t NAME ## _st;
109
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT) \
110
//decl_param(TYPE, NAME, DESC, DEFAULT)
111
//#endif
112
113
typedef
double
REAL
;
114
115
extern
double
*
dr
, *
dz
,
dtheta
;
117
extern
double
*
w2k
, *
wk
;
120
#define decl_field_comp(_DIR) \
121
double (*ext_e_ ## _DIR) (double r, double z, double theta)
122
125
extern
decl_field_comp
(r);
126
extern
decl_field_comp
(z);
127
extern
decl_field_comp
(theta);
128
129
extern
char
*
invok_name
;
130
131
extern
const
double
twopi
;
132
extern
const
double
invfourpi
;
133
extern
const
double
invpi32
;
134
135
/**********
136
* misc.c *
137
**********/
138
void
*
xmalloc
(
size_t
size);
139
void
*
xrealloc
(
void
*ptr,
size_t
size);
140
void
*
xcalloc
(
size_t
count,
size_t
size);
141
142
#define _CSTREAM_H_
143
#endif
Generated on Fri Jul 4 2014 15:40:19 for Streamer fluid modeling - An overview of ARCoS by
1.8.2