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