HARM
harm and utilities
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Macros
Pages
global.structs.h
Go to the documentation of this file.
1
9
10
struct
blink
{
11
int
num
;
// must stay int since used as argument to MPI functions that assume int -- so this limits number of elements one can pass.
12
struct
blink
*
np
;
13
// only used by cpu=0
14
int
cpu
;
// which cpu
15
int
i
,
j
,
k
,
col
;
// starting values for cpu=0
16
int
ri
,
rj
,
rk
,
rcol
;
// reference values for first cpu in sequence of nodes for a single buffer
17
int
end
;
18
};
19
20
21
25
#define interiorofgeompart1a \
26
int i,j,k,p;
27
28
29
#if(WHICHEOM==WITHGDET)
30
#define interiorofgeompart1b \
31
FTYPE gdet;
32
#else
33
#define interiorofgeompart1b \
34
FTYPE gdet; \
35
FTYPE eomfunc[NPR];
36
#endif
37
38
// FTYPE gcov[SYMMATRIXNDIM]; \
39
40
#define interiorofgeompart1c \
41
FTYPE gcov[SYMMATRIXNDIM]; \
42
FTYPE gcovpert[NDIM]; \
43
FTYPE alphalapse; \
44
FTYPE betasqoalphasq; \
45
FTYPE beta[NDIM];
46
47
#if(WHICHEOM==WITHGDET)
48
49
#define interiorofgeompart2 \
50
FTYPE igdetnosing;
51
#else
52
#define interiorofgeompart2 \
53
FTYPE igdetnosing; \
54
FTYPE ieomfuncnosing[NPR];
55
#endif
56
57
// FTYPE gcon[SYMMATRIXNDIM];
58
59
#if(GDETVOLDIFF)
60
#define interiorofgeompart3 \
61
FTYPE gdetvol;
62
#else
63
#define interiorofgeompart3
64
#endif
65
66
#define interiorofgeompart4 \
67
FTYPE gcon[SYMMATRIXNDIM];
68
69
// done with parts of structure
70
71
#define interiorofgeom \
72
interiorofgeompart1a \
73
interiorofgeompart1b \
74
interiorofgeompart1c \
75
interiorofgeompart2 \
76
interiorofgeompart3 \
77
interiorofgeompart4
78
79
#define interiorofgdetgeom \
80
interiorofgeompart1b \
81
interiorofgeompart2
82
83
84
86
struct
of_compgeom
{
87
88
interiorofgeom
89
90
};
91
92
93
94
95
96
#if(GETGEOMUSEPOINTER==0)
97
100
#define of_geom of_compgeom
101
102
struct
of_allgeom
{
103
104
interiorofgeom
105
106
// extra in "allgeom"
107
FTYPE
X
[
NDIM
];
108
FTYPE
V
[
NDIM
];
109
FTYPE
dxdxp
[
NDIM
][
NDIM
];
110
};
111
112
113
#else
114
115
116
struct
of_geom
{
117
118
// dummy space for gset() version
119
FTYPE
gengcov
[
SYMMATRIXNDIM
];
120
FTYPE
gengcovpert[
NDIM
];
121
FTYPE
alphalapse;
122
FTYPE
betasqoalphasq;
123
FTYPE
beta
[
NDIM
];
124
FTYPE
gengcon
[
SYMMATRIXNDIM
];
125
126
// bit faster since not all values always used
127
FTYPE
*
gcov
;
128
FTYPE
*
gcon
;
129
FTYPE
*gcovpert;
130
131
FTYPE
gdet
,igdetnosing;
132
#if(GDETVOLDIFF)
133
FTYPE
gdetvol;
134
#endif
135
#if(WHICHEOM!=WITHGDET)
136
FTYPE
eomfunc[NPR],ieomfuncnosing[NPR];
137
#endif
138
int
i
,
j
,k,
p
;
139
};
140
141
142
struct
of_allgeom
{
143
144
#if(GETGEOMUSEPOINTER==0)
145
FTYPE
gcov
[
SYMMATRIXNDIM
];
146
FTYPE
gcovpert[
NDIM
];
147
FTYPE
alphalapse;
148
FTYPE
betasqoalphasq;
149
FTYPE
beta
[
NDIM
];
150
FTYPE
gcon
[
SYMMATRIXNDIM
];
151
#else
152
// dummy space for gset() version
153
FTYPE
gengcon
[
SYMMATRIXNDIM
];
154
FTYPE
gengcov
[
SYMMATRIXNDIM
];
155
FTYPE
gengcovpert[
NDIM
];
156
157
// bit faster since not all values always used
158
FTYPE
*
gcov
;
159
FTYPE
*gcovpert;
160
FTYPE
alphalapse;
161
FTYPE
betasqoalphasq;
162
FTYPE
beta
[
NDIM
];
163
FTYPE
*
gcon
;
164
#endif
165
166
FTYPE
gdet
,igdetnosing;
167
#if(GDETVOLDIFF)
168
FTYPE
gdetvol;
169
#endif
170
#if(WHICHEOM!=WITHGDET)
171
FTYPE
eomfunc[NPR],ieomfuncnosing[NPR];
172
#endif
173
int
i
,
j
,k,
p
;
174
175
// extra in "allgeom"
176
FTYPE
X
[
NDIM
];
177
FTYPE
V
[
NDIM
];
178
FTYPE
dxdxp
[
NDIM
][
NDIM
];
179
};
180
#endif
181
182
183
184
#if(NEWMETRICSTORAGE)
185
186
struct
of_gdetgeom
{
187
188
interiorofgdetgeom
189
190
};
191
#else
192
#define of_gdetgeom of_compgeom
193
#endif
194
195
196
197
203
struct
of_state
{
204
FTYPE
ucon
[
NDIM
];
205
FTYPE
ucov
[
NDIM
];
206
#if(EOMRADTYPE!=EOMRADNONE)
207
FTYPE
uradcon
[
NDIM
];
208
FTYPE
uradcov
[
NDIM
];
209
#else
210
FTYPE
*
uradcon
;
211
FTYPE
*
uradcov
;
212
#endif
213
FTYPE
bcon
[
NDIM
];
214
FTYPE
bcov
[
NDIM
];
215
FTYPE
pressure
;
// aux thermodynamical quantity
216
FTYPE
bsq
;
// b^2 that is often used
217
FTYPE
entropy
;
//aux thermodynamical quantity
218
FTYPE
ifremoverestplus1ud0elseud0
;
// 1+u_t
219
// OPTMARK: If don't use bcon,bcov, store Bcon/u^t and Bcov/u^t so avoid catastrophic cancellation but still avoid divisions.
220
221
FTYPE
others
[
NUMOTHERSTATERESULTS
];
222
223
#if(EOMRADTYPE!=EOMRADNONE)
224
FTYPE
othersrad
[
NUMOTHERSTATERESULTS
];
225
#else
226
FTYPE
*
othersrad
;
227
#endif
228
229
230
#if(MERGEDC2EA2CMETHOD)
231
// for merged method and stored by compute_and_store_???() functions
232
233
FTYPE
gdet
;
234
#if(WHICHEOM!=WITHGDET)
235
FTYPE
eomfunc[NPR];
// eomfunc
236
#endif
237
FTYPE
prim[NPR];
238
FTYPE
Blower[
NDIM
];
239
FTYPE
vcon[
NDIM
];
240
FTYPE
gdetBcon[
NDIM
];
241
FTYPE
overut;
242
243
#else
244
// avoid allocating since expensive for cache misses
245
// don't take more memory than needed for pointer references for code to compile
246
// FTYPE gdet;
247
//#if(WHICHEOM!=WITHGDET)
248
// FTYPE *eomfunc;
249
//#endif
250
// FTYPE *prim;
251
// FTYPE *Blower;
252
// FTYPE *gdetBcon; // for FLUXB==FLUXCTSTAG
253
// FTYPE *vcon; // for FLUXB==FLUXCTSTAG
254
// FTYPE overut;
255
256
#endif
257
};
258
259
260
261
262
struct
of_loop
{
263
int
is
,
ie
;
264
int
js
,
je
;
265
int
ks
,
ke
;
266
int
dir
,
intdir
;
267
int
ps
,
pe
;
268
int
bs
,
be
;
269
int
di
,
dj
,
dk
;
270
};
271
272
struct
of_newtonstats
{
273
// outputs
274
FTYPE
lerrx
;
275
int
lntries
;
276
int
nstroke
;
277
FTYPE
invproperty
[
NUMINVPROPERTY
];
278
char
invpropertytext
[
NUMINVPROPERTY
][10];
279
// inputs
280
FTYPE
tryconv
;
// default is from u2p_defs.h: NEWT_TOL
281
FTYPE
tryconvultrarel
;
// default is from u2p_defs.h: NEWT_TOL_ULTRAREL
282
FTYPE
mintryconv
;
// default is from u2p_defs.h: MIN_NEWT_TOL
283
int
maxiter
;
// default is from u2p_defs.h: MAX_NEWT_ITER
284
int
extra_newt_iter
;
// EXTRA_NEWT_ITER
285
int
extra_newt_iter_ultrarel
;
// EXTRA_NEWT_ITER_ULTRAREL
286
};
287
288
struct
of_trueijkp
{
289
int
i
,
j
,
k
,
p
,
dir
,
iter
,
interporflux
;
290
};
Generated on Fri May 20 2016 15:52:33 for HARM by
1.8.3.1