14 #define INVALID_INT QUDA_INVALID_ENUM 15 #define INVALID_DOUBLE DBL_MIN 19 #if defined INIT_PARAM 20 #define P(x, val) ret.x = val 21 #elif defined CHECK_PARAM 22 #define P(x, val) if (param->x == val) errorQuda("Parameter " #x " undefined") 23 #elif defined PRINT_PARAM 25 { if (val == INVALID_DOUBLE) printfQuda(#x " = %g\n", (double)param->x); \ 26 else printfQuda(#x " = %d\n", (int)param->x); } 28 #error INIT_PARAM, CHECK_PARAM, and PRINT_PARAM all undefined in check_params.h 34 #if defined INIT_PARAM 37 #elif defined CHECK_PARAM 44 #if defined INIT_PARAM 52 #if defined INIT_PARAM 72 #if defined INIT_PARAM 92 #if defined INIT_PARAM 99 #if defined INIT_PARAM 101 P(staggered_phase_applied, 0);
111 #if defined INIT_PARAM 113 P(use_resident_gauge, 0);
114 P(use_resident_mom, 0);
115 P(make_resident_gauge, 0);
116 P(make_resident_mom, 0);
117 P(return_result_gauge, 1);
118 P(return_result_mom, 1);
139 #if defined INIT_PARAM 142 #elif defined CHECK_PARAM 149 #if defined INIT_PARAM 154 P(Stp_residual, 0.0);
172 #if defined INIT_PARAM 184 #if defined INIT_PARAM 188 #elif defined CHECK_PARAM 198 #if defined INIT_PARAM 243 P(use_sloppy_partial_accumulator, 0);
245 P(max_res_increase, 1);
246 P(max_res_increase_total, 10);
247 P(heavy_quark_check, 10);
264 P(compute_action, 0);
265 P(compute_true_res, 1);
271 if (
param->num_offset > 0) {
273 for (
int i=0;
i<
param->num_offset;
i++) {
302 #if defined INIT_PARAM 313 #if defined INIT_PARAM 327 #if defined INIT_PARAM 335 #if defined INIT_PARAM 345 #if defined INIT_PARAM 347 P(preconditioner, 0);
352 P(precondition_cycle, 1);
361 P(precondition_cycle, 0);
384 #if defined INIT_PARAM 387 P(compute_clover_trlog, 0);
389 P(compute_clover_inverse, 0);
391 P(return_clover_inverse, 0);
395 param->clover_cuda_prec_sloppy =
param->clover_cuda_prec;
397 param->clover_cuda_prec_precondition =
param->clover_cuda_prec_sloppy;
422 #elif defined(PRINT_PARAM) 440 #if defined INIT_PARAM 465 #if defined INIT_PARAM 466 P(use_resident_solution, 0);
467 P(make_resident_solution, 0);
474 #if defined INIT_PARAM 475 P(use_resident_chrono, 0);
476 P(make_resident_chrono, 0);
477 P(max_chrono_dim, 0);
486 #if defined INIT_PARAM 498 #if defined INIT_PARAM 501 #elif defined CHECK_PARAM 510 #elif defined CHECK_PARAM 511 checkInvertParam(
param->invert_param);
521 int n_level =
param->n_level;
524 for (
int i=0;
i<n_level;
i++) {
577 for (
int i=1;
i<n_level-1;
i++)
579 errorQuda(
"n_vec %d != %d must be equal on all levels if generate_all_levels == false",
589 #elif defined(PRINT_PARAM) 604 #undef INVALID_DOUBLE QudaDslashType dslash_type
QudaReconstructType reconstruct_sloppy
QudaMultigridParam newQudaMultigridParam(void)
QudaReconstructType reconstruct_precondition
QudaInverterType inv_type
double mu_factor[QUDA_MAX_MG_LEVEL]
void printQudaInvertParam(QudaInvertParam *param)
void printQudaGaugeParam(QudaGaugeParam *param)
QudaPrecision & cuda_prec_precondition
void printQudaEigParam(QudaEigParam *param)
QudaPrecision & cuda_prec_ritz
int geo_block_size[QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM]
QudaPrecision & cuda_prec_sloppy
VOLATILE spinorFloat kappa
int solution_accumulator_pipeline
QudaInvertParam newQudaInvertParam(void)
QudaPrecision cuda_prec_precondition
QudaPrecision cuda_prec_sloppy
QudaReconstructType reconstruct
void printQudaMultigridParam(QudaMultigridParam *param)
QudaGaugeFieldOrder gauge_order
#define QUDA_MAX_MG_LEVEL
Maximum number of multi-grid levels. This number may be increased if needed.
QudaMemoryType mem_type_ritz
QudaTwistFlavorType twist_flavor
QudaEigParam newQudaEigParam(void)
QudaGaugeParam newQudaGaugeParam(void)