62 pad_size = std::max({x_face_size, y_face_size, z_face_size, t_face_size});
106 pad_size = std::max({x_face_size, y_face_size, z_face_size, t_face_size});
144 for (
int k = 0; k <
Lsdim; k++) {
194 errorQuda(
"qudaInvert: requesting zero residual\n");
269 errorQuda(
"Only real spectrum type (LR or SR) can be passed to Lanczos type solver.");
384 printfQuda(
"Twisted-mass doublet non supported (yet)\n");
399 for (
int i = 0; i < mg_param.
n_level; i++) {
400 for (
int j = 0; j < 4; j++) {
568 for (
int i = 0; i < mg_param.
n_level; i++) {
655 printfQuda(
"Twisted-mass doublet non supported (yet)\n");
718 errorQuda(
"Only real spectrum type (LR or SR) can be passed to the a Lanczos type solver");
733 errorQuda(
"Can not deflate more than nvec[%d] eigenvectors.", mg_eig_param.
n_conv);
808 errorQuda(
"qudaInvert: requesting zero residual\n");
890 errorQuda(
"qudaInvert: requesting zero residual\n");
992 for (
int i = 0; i < mg_param.
n_level; i++) {
993 for (
int j = 0; j < 4; j++) {
1106 errorQuda(
"Mismatch between top-level MG solve type %s and outer solve type %s",
1160 for (
int i = 0; i < mg_param.
n_level; i++) {
1214 if (
kappa == -1.0) {
1228 printfQuda(
"Twisted-mass doublet non supported (yet)\n");
1345 warningQuda(
"The full spinor staggered operator (test 0) can't be inverted with (P)CG. Switching to BiCGstab.\n");
1378 errorQuda(
"Preconditioning is currently not supported in multi-shift solver solvers");
1386 printfQuda(
"Note: epsilon-naik != 0, testing epsilon correction links.\n");
1389 printfQuda(
"Not computing fat-long, ignoring epsilon correction.\n");
1392 printfQuda(
"Note: epsilon-naik = 0, testing original HISQ links.\n");
1431 printfQuda(
"Note: epsilon-naik != 0, testing epsilon correction links.\n");
1434 printfQuda(
"Not computing fat-long, ignoring epsilon correction.\n");
1437 printfQuda(
"Note: epsilon-naik = 0, testing original HISQ links.\n");
QudaTransferType staggered_transfer_type
QudaInverterType precon_type
QudaPrecision prec_refinement_sloppy
quda::mgarray< int > num_setup_iter
bool eig_io_parity_inflate
quda::mgarray< int > mg_eig_poly_deg
QudaInverterType inv_type
quda::mgarray< QudaEigType > mg_eig_type
QudaReconstructType link_recon_sloppy
quda::mgarray< int > mg_eig_check_interval
quda::mgarray< char[256]> mg_vec_outfile
quda::mgarray< double > setup_ca_lambda_max
QudaExtLibType solver_ext_lib
QudaReconstructType link_recon
quda::mgarray< int > mg_eig_n_ev_deflate
quda::mgarray< bool > mg_eig
QudaPrecision eig_save_prec
quda::mgarray< QudaInverterType > coarse_solver
QudaReconstructType link_recon_precondition
quda::mgarray< QudaCABasis > coarse_solver_ca_basis
quda::mgarray< int > n_block_ortho
QudaTwistFlavorType twist_flavor
quda::mgarray< int > coarse_solver_maxiter
quda::mgarray< char[256]> mg_vec_infile
quda::mgarray< int > nu_post
quda::mgarray< int > nu_pre
quda::mgarray< int > setup_ca_basis_size
quda::mgarray< int > mg_eig_n_kr
quda::mgarray< int > coarse_solver_ca_basis_size
char eig_vec_outfile[256]
quda::mgarray< double > mg_eig_amin
quda::mgarray< QudaVerbosity > mg_verbosity
quda::mgarray< double > setup_ca_lambda_min
quda::mgarray< int > setup_maxiter
quda::mgarray< int > nvec
quda::mgarray< QudaCABasis > setup_ca_basis
quda::mgarray< QudaSchwarzType > mg_schwarz_type
QudaMemoryType mem_type_ritz
quda::mgarray< QudaEigSpectrumType > mg_eig_spectrum
quda::mgarray< int > mg_eig_max_restarts
QudaSolutionType solution_type
QudaDslashType dslash_type
QudaTboundary fermion_t_boundary
quda::mgarray< bool > mg_eig_use_dagger
quda::mgarray< double > mu_factor
QudaExtLibType deflation_ext_lib
quda::mgarray< double > coarse_solver_ca_lambda_max
bool alternative_reliable
int solution_accumulator_pipeline
quda::mgarray< int > mg_eig_n_ev
quda::mgarray< double > mg_eig_amax
quda::mgarray< QudaInverterType > setup_inv
bool mg_evolve_thin_updates
quda::mgarray< double > setup_tol
QudaFieldLocation location_ritz
quda::mgarray< double > coarse_solver_ca_lambda_min
QudaEigSpectrumType eig_spectrum
quda::mgarray< bool > mg_eig_use_poly_acc
quda::mgarray< double > mg_eig_qr_tol
QudaPrecision prec_eigensolver
quda::mgarray< QudaSolveType > coarse_solve_type
quda::mgarray< double > mg_eig_tol
QudaSchwarzType precon_schwarz_type
quda::mgarray< int > mg_eig_batched_rotate
QudaPrecision prec_precondition
quda::mgarray< bool > mg_eig_use_normop
quda::mgarray< bool > mg_eig_use_eigen_qr
QudaReconstructType link_recon_eigensolver
quda::mgarray< QudaPrecision > mg_eig_save_prec
char eig_arpack_logfile[256]
quda::mgarray< double > smoother_tol
quda::mgarray< QudaSolveType > smoother_solve_type
bool eig_require_convergence
quda::mgarray< bool > mg_eig_require_convergence
quda::mgarray< int > mg_eig_block_size
quda::mgarray< double > coarse_solver_tol
QudaPrecision smoother_halo_prec
quda::mgarray< QudaInverterType > smoother_type
quda::mgarray< int > setup_maxiter_refresh
quda::mgarray< int > mg_schwarz_cycle
QudaMassNormalization normalization
quda::mgarray< std::array< int, 4 > > geo_block_size
QudaPrecision prec_sloppy
QudaGaugeParam gauge_param
QudaInvertParam inv_param
@ QUDA_DEFAULT_NORMALIZATION
@ QUDA_MG_CYCLE_RECURSIVE
@ QUDA_PACKED_CLOVER_ORDER
@ QUDA_STAGGERED_PHASE_MILC
@ QUDA_TWISTED_CLOVER_DSLASH
@ QUDA_CLOVER_WILSON_DSLASH
@ QUDA_TWISTED_MASS_DSLASH
@ QUDA_DOMAIN_WALL_DSLASH
@ QUDA_MOBIUS_DWF_EOFA_DSLASH
@ QUDA_DOMAIN_WALL_4D_DSLASH
@ QUDA_CUDA_FIELD_LOCATION
@ QUDA_CPU_FIELD_LOCATION
@ QUDA_KAPPA_NORMALIZATION
@ QUDA_MASS_NORMALIZATION
@ QUDA_DEGRAND_ROSSI_GAMMA_BASIS
@ QUDA_RECONSTRUCT_INVALID
@ QUDA_HEAVY_QUARK_RESIDUAL
@ QUDA_L2_RELATIVE_RESIDUAL
@ QUDA_TRANSFER_AGGREGATE
@ QUDA_TRANSFER_OPTIMIZED_KD
@ QUDA_EIG_BLK_TR_LANCZOS
enum QudaResidualType_s QudaResidualType
@ QUDA_INC_EIGCG_INVERTER
@ QUDA_PRESERVE_SOURCE_NO
@ QUDA_PRESERVE_SOURCE_YES
@ QUDA_TWIST_NONDEG_DOUBLET
@ QUDA_COMPUTE_NULL_VECTOR_NO
@ QUDA_COMPUTE_NULL_VECTOR_YES
QudaPrecision & cuda_prec
QudaPrecision & cuda_prec_sloppy
QudaPrecision & cuda_prec_eigensolver
QudaPrecision & cuda_prec_precondition
QudaPrecision & cuda_prec_refinement_sloppy
const char * get_solve_str(QudaSolveType type)
const char * get_solver_str(QudaInverterType type)
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5.
void setQudaStaggeredEigTestParams()
void setStaggeredInvertParam(QudaInvertParam &inv_param)
void setWilsonGaugeParam(QudaGaugeParam &gauge_param)
void setMultigridInvertParam(QudaInvertParam &inv_param)
void setEigParam(QudaEigParam &eig_param)
void setInvertParam(QudaInvertParam &inv_param)
void setQudaStaggeredInvTestParams()
void setStaggeredGaugeParam(QudaGaugeParam &gauge_param)
void setStaggeredMGInvertParam(QudaInvertParam &inv_param)
void setContractInvertParam(QudaInvertParam &inv_param)
void setMultigridEigParam(QudaEigParam &mg_eig_param, int level)
void setDeflatedInvertParam(QudaInvertParam &inv_param)
void setMultigridParam(QudaMultigridParam &mg_param)
void setDeflationParam(QudaEigParam &df_param)
void setGaugeParam(QudaGaugeParam &gauge_param)
void setStaggeredMultigridParam(QudaMultigridParam &mg_param)
QudaEigSpectrumType spectrum
QudaBoolean import_vectors
QudaBoolean io_parity_inflate
QudaPrecision cuda_prec_ritz
QudaBoolean compute_gamma5
QudaFieldLocation location
QudaExtLibType extlib_type
QudaBoolean require_convergence
QudaInvertParam * invert_param
QudaMemoryType mem_type_ritz
QudaReconstructType reconstruct_precondition
QudaReconstructType reconstruct
QudaPrecision cuda_prec_precondition
QudaPrecision cuda_prec_refinement_sloppy
QudaPrecision cuda_prec_sloppy
QudaReconstructType reconstruct_sloppy
QudaGaugeFieldOrder gauge_order
QudaReconstructType reconstruct_eigensolver
QudaStaggeredPhase staggered_phase_type
QudaReconstructType reconstruct_refinement_sloppy
QudaPrecision cuda_prec_eigensolver
int use_sloppy_partial_accumulator
QudaPrecision cuda_prec_refinement_sloppy
QudaSolutionType solution_type
QudaBoolean native_blas_lapack
QudaCloverFieldOrder clover_order
QudaSchwarzType schwarz_type
QudaMassNormalization mass_normalization
int use_alternative_reliable
QudaPreserveSource preserve_source
double tol_hq_offset[QUDA_MAX_MULTI_SHIFT]
int solution_accumulator_pipeline
QudaResidualType residual_type
QudaPrecision clover_cuda_prec_refinement_sloppy
QudaPrecision cuda_prec_eigensolver
QudaExtLibType extlib_type
QudaPrecision clover_cuda_prec
QudaTwistFlavorType twist_flavor
QudaPrecision clover_cpu_prec
QudaDslashType dslash_type
QudaPrecision clover_cuda_prec_precondition
double_complex b_5[QUDA_MAX_DWF_LS]
QudaVerbosity verbosity_precondition
QudaPrecision clover_cuda_prec_eigensolver
double offset[QUDA_MAX_MULTI_SHIFT]
QudaInverterType inv_type
QudaSolverNormalization solver_normalization
double_complex c_5[QUDA_MAX_DWF_LS]
QudaPrecision clover_cuda_prec_sloppy
double tol_offset[QUDA_MAX_MULTI_SHIFT]
QudaInverterType inv_type_precondition
QudaGammaBasis gamma_basis
QudaPrecision cuda_prec_sloppy
QudaFieldLocation input_location
QudaFieldLocation output_location
QudaPrecision cuda_prec_precondition
QudaDiracFieldOrder dirac_order
QudaBoolean pre_orthonormalize
int smoother_schwarz_cycle[QUDA_MAX_MG_LEVEL]
double coarse_solver_ca_lambda_min[QUDA_MAX_MG_LEVEL]
double setup_ca_lambda_max[QUDA_MAX_MG_LEVEL]
QudaSolutionType coarse_grid_solution_type[QUDA_MAX_MG_LEVEL]
double coarse_solver_tol[QUDA_MAX_MG_LEVEL]
QudaMultigridCycleType cycle_type[QUDA_MAX_MG_LEVEL]
double omega[QUDA_MAX_MG_LEVEL]
QudaBoolean thin_update_only
int setup_maxiter_refresh[QUDA_MAX_MG_LEVEL]
QudaPrecision precision_null[QUDA_MAX_MG_LEVEL]
char vec_infile[QUDA_MAX_MG_LEVEL][256]
int nu_post[QUDA_MAX_MG_LEVEL]
QudaBoolean use_eig_solver[QUDA_MAX_MG_LEVEL]
int coarse_solver_maxiter[QUDA_MAX_MG_LEVEL]
int n_vec[QUDA_MAX_MG_LEVEL]
int geo_block_size[QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM]
QudaInverterType coarse_solver[QUDA_MAX_MG_LEVEL]
int coarse_solver_ca_basis_size[QUDA_MAX_MG_LEVEL]
QudaTransferType transfer_type[QUDA_MAX_MG_LEVEL]
QudaFieldLocation setup_location[QUDA_MAX_MG_LEVEL]
QudaBoolean post_orthonormalize
int num_setup_iter[QUDA_MAX_MG_LEVEL]
double mu_factor[QUDA_MAX_MG_LEVEL]
QudaCABasis setup_ca_basis[QUDA_MAX_MG_LEVEL]
QudaInverterType setup_inv_type[QUDA_MAX_MG_LEVEL]
QudaInverterType smoother[QUDA_MAX_MG_LEVEL]
int setup_maxiter[QUDA_MAX_MG_LEVEL]
int setup_ca_basis_size[QUDA_MAX_MG_LEVEL]
double coarse_solver_ca_lambda_max[QUDA_MAX_MG_LEVEL]
char vec_outfile[QUDA_MAX_MG_LEVEL][256]
QudaBoolean run_low_mode_check
double setup_ca_lambda_min[QUDA_MAX_MG_LEVEL]
double smoother_tol[QUDA_MAX_MG_LEVEL]
QudaCABasis coarse_solver_ca_basis[QUDA_MAX_MG_LEVEL]
int nu_pre[QUDA_MAX_MG_LEVEL]
QudaBoolean vec_store[QUDA_MAX_MG_LEVEL]
QudaSolveType smoother_solve_type[QUDA_MAX_MG_LEVEL]
QudaFieldLocation location[QUDA_MAX_MG_LEVEL]
QudaVerbosity verbosity[QUDA_MAX_MG_LEVEL]
QudaBoolean setup_minimize_memory
int spin_block_size[QUDA_MAX_MG_LEVEL]
int n_block_ortho[QUDA_MAX_MG_LEVEL]
QudaBoolean generate_all_levels
QudaComputeNullVector compute_null_vector
QudaSchwarzType smoother_schwarz_type[QUDA_MAX_MG_LEVEL]
QudaBoolean run_oblique_proj_check
QudaInvertParam * invert_param
double setup_tol[QUDA_MAX_MG_LEVEL]
QudaPrecision smoother_halo_precision[QUDA_MAX_MG_LEVEL]
QudaBoolean global_reduction[QUDA_MAX_MG_LEVEL]
QudaBoolean vec_load[QUDA_MAX_MG_LEVEL]