-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathquda_dummy_types.h
More file actions
109 lines (95 loc) · 3.39 KB
/
quda_dummy_types.h
File metadata and controls
109 lines (95 loc) · 3.39 KB
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
/***************************************************************************
* Copyright (C) 2017 Bartosz Kostrzewa
*
* This file is part of tmLQCD.
*
* tmLQCD is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* tmLQCD is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with tmLQCD. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef QUDA_DUMMY_TYPES_H
#define QUDA_DUMMY_TYPES_H
#include "solver/solver_types.h"
// some definitions which are found in quda.h must be reproduced in case
// we are compiling without it, such that tm_QudaParams_t can be
// defined properly anyway
#define QUDA_MAX_MG_LEVEL 4
#define QUDA_BOOLEAN_YES 1
#define QUDA_BOOLEAN_NO 0
#include <limits.h>
#define QUDA_INVALID_ENUM INT_MIN
// these exist only in case we are compiling without QUDA support, such that the
// input file reader can be compiled
typedef enum QudaInverterType_s {
QUDA_BICGSTAB_INVERTER = BICGSTAB,
QUDA_CG_INVERTER = CG,
QUDA_MR_INVERTER = MR,
QUDA_GCR_INVERTER = GCR,
QUDA_CA_GCR_INVERTER = CA_GCR
} QudaInverterType;
typedef enum QudaPolynomialBasis_s {
QUDA_POWER_BASIS,
QUDA_CHEBYSHEV_BASIS,
QUDA_INVALID_BASIS = QUDA_INVALID_ENUM
} QudaPolynomialBasis;
typedef enum QudaEigSpectrumType_s {
QUDA_SPECTRUM_SR_EIG,
QUDA_SPECTRUM_LR_EIG,
QUDA_SPECTRUM_SM_EIG,
QUDA_SPECTRUM_LM_EIG,
QUDA_SPECTRUM_SI_EIG,
QUDA_SPECTRUM_LI_EIG,
QUDA_SPECTRUM_INVALID = QUDA_INVALID_ENUM
} QudaEigSpectrumType;
typedef enum QudaEigType_s {
QUDA_EIG_TR_LANCZOS, // Thick restarted lanczos solver
QUDA_EIG_IR_ARNOLDI, // Implicitly Restarted Arnoldi solver (not implemented)
QUDA_EIG_INVALID = QUDA_INVALID_ENUM
} QudaEigType;
typedef enum QudaVerbosity_s {
QUDA_SILENT,
QUDA_SUMMARIZE,
QUDA_VERBOSE,
QUDA_DEBUG_VERBOSE,
QUDA_INVALID_VERBOSITY = QUDA_INVALID_ENUM
} QudaVerbosity;
typedef enum QudaPrecision_s {
QUDA_QUARTER_PRECISION = 1,
QUDA_HALF_PRECISION = 2,
QUDA_SINGLE_PRECISION = 4,
QUDA_DOUBLE_PRECISION = 8,
QUDA_INVALID_PRECISION = QUDA_INVALID_ENUM
} QudaPrecision;
typedef struct QudaGaugeParam_s {
QudaPrecision cuda_prec;
QudaPrecision cuda_prec_sloppy;
QudaPrecision cuda_prec_refinement_sloppy;
QudaPrecision cuda_prec_precondition;
QudaPrecision cuda_prec_eigensolver;
} QudaGaugeParam;
typedef struct QudaInverParam_s {
QudaPrecision clover_cuda_prec;
QudaPrecision clover_cuda_prec_sloppy;
QudaPrecision clover_cuda_prec_refinement_sloppy;
QudaPrecision clover_cuda_prec_precondition;
QudaPrecision clover_cuda_prec_eigensolver;
} QudaInvertParam;
typedef enum QudaNullVectorSetupType_s {
QUDA_SETUP_NULL_VECTOR_INVERSE_ITERATIONS,
QUDA_SETUP_NULL_VECTOR_CHEBYSHEV_FILTER,
QUDA_SETUP_NULL_VECTOR_EIGENVECTORS,
QUDA_SETUP_NULL_VECTOR_TEST_VECTORS,
QUDA_SETUP_NULL_VECTOR_RESTRICT_FINE,
QUDA_SETUP_NULL_VECTOR_FREE_FIELD,
QUDA_SETUP_NULL_VECTOR_INVALID = QUDA_INVALID_ENUM
} QudaNullVectorSetupType;
#endif