QUDA
v0.5.0
A library for QCD on GPUs
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
quda
include
enum_quda.h
Go to the documentation of this file.
1
#ifndef _ENUM_QUDA_H
2
#define _ENUM_QUDA_H
3
4
#include <limits.h>
5
#define QUDA_INVALID_ENUM INT_MIN
6
7
#ifdef __cplusplus
8
extern
"C"
{
9
#endif
10
11
//
12
// Types used in QudaGaugeParam
13
//
14
15
typedef
enum
QudaLinkType_s
{
16
QUDA_SU3_LINKS
,
17
QUDA_GENERAL_LINKS
,
18
QUDA_THREE_LINKS
,
19
QUDA_MOMENTUM
,
20
QUDA_WILSON_LINKS
=
QUDA_SU3_LINKS
,
// used by wilson, clover, twisted mass, and domain wall
21
QUDA_ASQTAD_FAT_LINKS
=
QUDA_GENERAL_LINKS
,
22
QUDA_ASQTAD_LONG_LINKS
=
QUDA_THREE_LINKS
,
23
QUDA_ASQTAD_MOM_LINKS
=
QUDA_MOMENTUM
,
24
QUDA_ASQTAD_GENERAL_LINKS
=
QUDA_GENERAL_LINKS
,
25
QUDA_INVALID_LINKS
=
QUDA_INVALID_ENUM
26
}
QudaLinkType
;
27
28
typedef
enum
QudaGaugeFieldOrder_s
{
29
QUDA_FLOAT_GAUGE_ORDER
= 1,
30
QUDA_FLOAT2_GAUGE_ORDER
= 2,
// no reconstruct and double precision
31
QUDA_FLOAT4_GAUGE_ORDER
= 4,
// 8 and 12 reconstruct half and single
32
QUDA_QDP_GAUGE_ORDER
,
// expect *gauge[mu], even-odd, spacetime, row-column color
33
QUDA_CPS_WILSON_GAUGE_ORDER
,
// expect *gauge, even-odd, mu, spacetime, column-row color
34
QUDA_MILC_GAUGE_ORDER
,
// expect *gauge, even-odd, mu, spacetime, row-column order
35
QUDA_BQCD_GAUGE_ORDER
,
// expect *gauge, mu, even-odd, spacetime+halos, column-row order
36
QUDA_INVALID_GAUGE_ORDER
=
QUDA_INVALID_ENUM
37
}
QudaGaugeFieldOrder
;
38
39
typedef
enum
QudaTboundary_s
{
40
QUDA_ANTI_PERIODIC_T
= -1,
41
QUDA_PERIODIC_T
= 1,
42
QUDA_INVALID_T_BOUNDARY
=
QUDA_INVALID_ENUM
43
}
QudaTboundary
;
44
45
typedef
enum
QudaPrecision_s
{
46
QUDA_HALF_PRECISION
= 2,
47
QUDA_SINGLE_PRECISION
= 4,
48
QUDA_DOUBLE_PRECISION
= 8,
49
QUDA_INVALID_PRECISION
=
QUDA_INVALID_ENUM
50
}
QudaPrecision
;
51
52
typedef
enum
QudaReconstructType_s
{
53
QUDA_RECONSTRUCT_NO
= 18,
// store all 18 real numbers explicitly
54
QUDA_RECONSTRUCT_12
= 12,
// reconstruct from 12 real numbers
55
QUDA_RECONSTRUCT_8
= 8,
// reconstruct from 8 real numbers
56
QUDA_RECONSTRUCT_10
= 10,
// 10-number parameterization used for storing the momentum field
57
QUDA_RECONSTRUCT_INVALID
=
QUDA_INVALID_ENUM
58
}
QudaReconstructType
;
59
60
typedef
enum
QudaGaugeFixed_s
{
61
QUDA_GAUGE_FIXED_NO
,
// no gauge fixing
62
QUDA_GAUGE_FIXED_YES
,
// gauge field stored in temporal gauge
63
QUDA_GAUGE_FIXED_INVALID
=
QUDA_INVALID_ENUM
64
}
QudaGaugeFixed
;
65
66
//
67
// Types used in QudaInvertParam
68
//
69
70
typedef
enum
QudaDslashType_s
{
71
QUDA_WILSON_DSLASH
,
72
QUDA_CLOVER_WILSON_DSLASH
,
73
QUDA_DOMAIN_WALL_DSLASH
,
74
QUDA_ASQTAD_DSLASH
,
75
QUDA_TWISTED_MASS_DSLASH
,
76
QUDA_INVALID_DSLASH
=
QUDA_INVALID_ENUM
77
}
QudaDslashType
;
78
79
typedef
enum
QudaInverterType_s
{
80
QUDA_CG_INVERTER
,
81
QUDA_BICGSTAB_INVERTER
,
82
QUDA_GCR_INVERTER
,
83
QUDA_MR_INVERTER
,
84
QUDA_INVALID_INVERTER
=
QUDA_INVALID_ENUM
85
}
QudaInverterType
;
86
87
typedef
enum
QudaSolutionType_s
{
88
QUDA_MAT_SOLUTION
,
89
QUDA_MATDAG_MAT_SOLUTION
,
90
QUDA_MATPC_SOLUTION
,
91
QUDA_MATPCDAG_MATPC_SOLUTION
,
92
QUDA_INVALID_SOLUTION
=
QUDA_INVALID_ENUM
93
}
QudaSolutionType
;
94
95
typedef
enum
QudaSolveType_s
{
96
QUDA_DIRECT_SOLVE
,
97
QUDA_NORMOP_SOLVE
,
98
QUDA_DIRECT_PC_SOLVE
,
99
QUDA_NORMOP_PC_SOLVE
,
100
QUDA_NORMEQ_SOLVE
=
QUDA_NORMOP_SOLVE
,
// deprecated
101
QUDA_NORMEQ_PC_SOLVE
=
QUDA_NORMOP_PC_SOLVE
,
// deprecated
102
QUDA_INVALID_SOLVE
=
QUDA_INVALID_ENUM
103
}
QudaSolveType
;
104
105
typedef
enum
QudaSchwarzType_s
{
106
QUDA_ADDITIVE_SCHWARZ
,
107
QUDA_MULTIPLICATIVE_SCHWARZ
,
108
QUDA_INVALID_SCHWARZ
=
QUDA_INVALID_ENUM
109
}
QudaSchwarzType
;
110
111
typedef
enum
QudaResidualType_s
{
112
QUDA_L2_RELATIVE_RESIDUAL
= 1,
// the default
113
QUDA_HEAVY_QUARK_RESIDUAL
= 2,
// Fermilab heavy quark residual
114
QUDA_INVALID_RESIDUAL
=
QUDA_INVALID_ENUM
115
}
QudaResidualType
;
116
117
// Whether the preconditioned matrix is (1-k^2 Deo Doe) or (1-k^2 Doe Deo)
118
//
119
// For the clover-improved Wilson Dirac operator, QUDA_MATPC_EVEN_EVEN
120
// defaults to the "symmetric" form, (1 - k^2 A_ee^-1 D_eo A_oo^-1 D_oe),
121
// and likewise for QUDA_MATPC_ODD_ODD.
122
//
123
// For the "asymmetric" form, (A_ee - k^2 D_eo A_oo^-1 D_oe), select
124
// QUDA_MATPC_EVEN_EVEN_ASYMMETRIC.
125
//
126
typedef
enum
QudaMatPCType_s
{
127
QUDA_MATPC_EVEN_EVEN
,
128
QUDA_MATPC_ODD_ODD
,
129
QUDA_MATPC_EVEN_EVEN_ASYMMETRIC
,
130
QUDA_MATPC_ODD_ODD_ASYMMETRIC
,
131
QUDA_MATPC_INVALID
=
QUDA_INVALID_ENUM
132
}
QudaMatPCType
;
133
134
typedef
enum
QudaDagType_s
{
135
QUDA_DAG_NO
,
136
QUDA_DAG_YES
,
137
QUDA_DAG_INVALID
=
QUDA_INVALID_ENUM
138
}
QudaDagType
;
139
140
typedef
enum
QudaMassNormalization_s
{
141
QUDA_KAPPA_NORMALIZATION
,
142
QUDA_MASS_NORMALIZATION
,
143
QUDA_ASYMMETRIC_MASS_NORMALIZATION
,
144
QUDA_INVALID_NORMALIZATION
=
QUDA_INVALID_ENUM
145
}
QudaMassNormalization
;
146
147
typedef
enum
QudaPreserveSource_s
{
148
QUDA_PRESERVE_SOURCE_NO
,
// use the source for the residual
149
QUDA_PRESERVE_SOURCE_YES
,
// keep the source intact
150
QUDA_PRESERVE_SOURCE_INVALID
=
QUDA_INVALID_ENUM
151
}
QudaPreserveSource
;
152
153
typedef
enum
QudaDiracFieldOrder_s
{
154
QUDA_INTERNAL_DIRAC_ORDER
,
// internal dirac order used by QUDA, varies depending on precision and dslash type
155
QUDA_DIRAC_ORDER
,
// even-odd, color inside spin
156
QUDA_QDP_DIRAC_ORDER
,
// even-odd, spin inside color
157
QUDA_CPS_WILSON_DIRAC_ORDER
,
// odd-even, color inside spin
158
QUDA_LEX_DIRAC_ORDER
,
// lexicographical order, color inside spin
159
QUDA_INVALID_DIRAC_ORDER
=
QUDA_INVALID_ENUM
160
}
QudaDiracFieldOrder
;
161
162
typedef
enum
QudaCloverFieldOrder_s
{
163
QUDA_INTERNAL_CLOVER_ORDER
,
// internal clover order use by QUDA.
164
QUDA_PACKED_CLOVER_ORDER
,
// even-odd, packed
165
QUDA_LEX_PACKED_CLOVER_ORDER
,
// lexicographical order, packed
166
QUDA_BQCD_CLOVER_ORDER
,
// even-odd, super-diagonal packed and reordered
167
QUDA_INVALID_CLOVER_ORDER
=
QUDA_INVALID_ENUM
168
}
QudaCloverFieldOrder
;
169
170
typedef
enum
QudaVerbosity_s
{
171
QUDA_SILENT
,
172
QUDA_SUMMARIZE
,
173
QUDA_VERBOSE
,
174
QUDA_DEBUG_VERBOSE
,
175
QUDA_INVALID_VERBOSITY
=
QUDA_INVALID_ENUM
176
}
QudaVerbosity
;
177
178
typedef
enum
QudaTune_s
{
179
QUDA_TUNE_NO
,
180
QUDA_TUNE_YES
,
181
QUDA_TUNE_INVALID
=
QUDA_INVALID_ENUM
182
}
QudaTune
;
183
184
typedef
enum
QudaPreserveDirac_s
{
185
QUDA_PRESERVE_DIRAC_NO
,
186
QUDA_PRESERVE_DIRAC_YES
,
187
QUDA_PRESERVE_DIRAC_INVALID
=
QUDA_INVALID_ENUM
188
}
QudaPreserveDirac
;
189
190
//
191
// Type used for "parity" argument to dslashQuda()
192
//
193
194
typedef
enum
QudaParity_s
{
195
QUDA_EVEN_PARITY
= 0,
196
QUDA_ODD_PARITY
,
197
QUDA_INVALID_PARITY
=
QUDA_INVALID_ENUM
198
}
QudaParity
;
199
200
//
201
// Types used only internally
202
//
203
204
typedef
enum
QudaDiracType_s
{
205
QUDA_WILSON_DIRAC
,
206
QUDA_WILSONPC_DIRAC
,
207
QUDA_CLOVER_DIRAC
,
208
QUDA_CLOVERPC_DIRAC
,
209
QUDA_DOMAIN_WALL_DIRAC
,
210
QUDA_DOMAIN_WALLPC_DIRAC
,
211
QUDA_ASQTAD_DIRAC
,
212
QUDA_ASQTADPC_DIRAC
,
213
QUDA_TWISTED_MASS_DIRAC
,
214
QUDA_TWISTED_MASSPC_DIRAC
,
215
QUDA_INVALID_DIRAC
=
QUDA_INVALID_ENUM
216
}
QudaDiracType
;
217
218
// Where the field is stored
219
typedef
enum
QudaFieldLocation_s
{
220
QUDA_CPU_FIELD_LOCATION
= 1,
221
QUDA_CUDA_FIELD_LOCATION
= 2,
222
QUDA_INVALID_FIELD_LOCATION
=
QUDA_INVALID_ENUM
223
}
QudaFieldLocation
;
224
225
// Which sites are included
226
typedef
enum
QudaSiteSubset_s
{
227
QUDA_FULL_SITE_SUBSET
,
228
QUDA_PARITY_SITE_SUBSET
,
229
QUDA_INVALID_SITE_SUBSET
=
QUDA_INVALID_ENUM
230
}
QudaSiteSubset
;
231
232
// Site ordering (always t-z-y-x, with rightmost varying fastest)
233
typedef
enum
QudaSiteOrder_s
{
234
QUDA_LEXICOGRAPHIC_SITE_ORDER
,
// lexicographic ordering
235
QUDA_EVEN_ODD_SITE_ORDER
,
// QUDA and QDP use this
236
QUDA_ODD_EVEN_SITE_ORDER
,
// CPS uses this
237
QUDA_INVALID_SITE_ORDER
=
QUDA_INVALID_ENUM
238
}
QudaSiteOrder
;
239
240
// Degree of freedom ordering
241
typedef
enum
QudaFieldOrder_s
{
242
QUDA_FLOAT_FIELD_ORDER
= 1,
// spin-color-complex-space
243
QUDA_FLOAT2_FIELD_ORDER
= 2,
// (spin-color-complex)/2-space-(spin-color-complex)%2
244
QUDA_FLOAT4_FIELD_ORDER
= 4,
// (spin-color-complex)/4-space-(spin-color-complex)%4
245
QUDA_SPACE_SPIN_COLOR_FIELD_ORDER
,
// CPS/QDP++ ordering
246
QUDA_SPACE_COLOR_SPIN_FIELD_ORDER
,
// QLA ordering (spin inside color)
247
QUDA_QOP_DOMAIN_WALL_FIELD_ORDER
,
// QOP domain-wall ordering
248
QUDA_INVALID_FIELD_ORDER
=
QUDA_INVALID_ENUM
249
}
QudaFieldOrder
;
250
251
typedef
enum
QudaFieldCreate_s
{
252
QUDA_NULL_FIELD_CREATE
,
// create new field
253
QUDA_ZERO_FIELD_CREATE
,
// create new field and zero it
254
QUDA_COPY_FIELD_CREATE
,
// create copy to field
255
QUDA_REFERENCE_FIELD_CREATE
,
// create reference to field
256
QUDA_INVALID_FIELD_CREATE
=
QUDA_INVALID_ENUM
257
}
QudaFieldCreate
;
258
259
typedef
enum
QudaGammaBasis_s
{
260
QUDA_DEGRAND_ROSSI_GAMMA_BASIS
,
261
QUDA_UKQCD_GAMMA_BASIS
,
262
QUDA_INVALID_GAMMA_BASIS
=
QUDA_INVALID_ENUM
263
}
QudaGammaBasis
;
264
265
typedef
enum
QudaSourceType_s
{
266
QUDA_POINT_SOURCE
,
267
QUDA_RANDOM_SOURCE
,
268
QUDA_INVALID_SOURCE
=
QUDA_INVALID_ENUM
269
}
QudaSourceType
;
270
271
typedef
enum
QudaTwistFlavorType_s
{
272
QUDA_TWIST_MINUS
= -1,
273
QUDA_TWIST_PLUS
= +1,
274
QUDA_TWIST_NONDEG_DOUBLET
= +2,
275
QUDA_TWIST_DEG_DOUBLET
= -2,
276
QUDA_TWIST_NO
= 0,
277
QUDA_TWIST_INVALID
=
QUDA_INVALID_ENUM
278
}
QudaTwistFlavorType
;
279
280
typedef
enum
QudaTwistGamma5Type_s
{
281
QUDA_TWIST_GAMMA5_DIRECT
,
282
QUDA_TWIST_GAMMA5_INVERSE
,
283
QUDA_TWIST_GAMMA5_INVALID
=
QUDA_INVALID_ENUM
284
}
QudaTwistGamma5Type
;
285
286
typedef
enum
QudaUseInitGuess_s
{
287
QUDA_USE_INIT_GUESS_NO
,
288
QUDA_USE_INIT_GUESS_YES
,
289
QUDA_USE_INIT_GUESS_INVALID
=
QUDA_INVALID_ENUM
290
}
QudaUseInitGuess
;
291
292
typedef
enum
QudaDirection_s
{
293
QUDA_BACKWARDS
= -1,
294
QUDA_FORWARDS
= +1
295
}
QudaDirection
;
296
297
typedef
enum
QudaComputeFatMethod_s
{
298
QUDA_COMPUTE_FAT_STANDARD
,
299
QUDA_COMPUTE_FAT_EXTENDED_VOLUME
,
300
QUDA_COMPUTE_FAT_INVALID
=
QUDA_INVALID_ENUM
301
}
QudaComputeFatMethod
;
302
303
typedef
enum
QudaFatLinkFlag_s
{
304
QUDA_FAT_PRESERVE_CPU_GAUGE
=1,
305
QUDA_FAT_PRESERVE_GPU_GAUGE
=2,
306
QUDA_FAT_PRESERVE_COMM_MEM
=4
307
}
QudaFatLinkFlag
;
308
309
typedef
enum
QudaFieldGeometry_s
{
310
QUDA_SCALAR_GEOMETRY
,
311
QUDA_VECTOR_GEOMETRY
,
312
QUDA_TENSOR_GEOMETRY
,
313
QUDA_INVALID_GEOMETRY
=
QUDA_INVALID_ENUM
314
}
QudaFieldGeometry
;
315
316
#ifdef __cplusplus
317
}
318
#endif
319
320
#endif // _ENUM_QUDA_H
Generated on Wed Mar 20 2013 12:52:14 for QUDA by
1.8.2