18 #if defined(QMP_COMMS)
20 #elif defined(MPI_COMMS)
33 printfQuda(
"prec prec_sloppy matpc_type recon recon_sloppy S_dimension T_dimension Ls_dimension dslash_type "
35 printfQuda(
"%6s %6s %12s %2s %2s %3d/%3d/%3d %3d %2d %14s %8s\n",
44 printfQuda(
"Deflation space info: location mem_type\n");
49 int main(
int argc,
char **argv)
57 app->parse(argc, argv);
58 }
catch (
const CLI::ParseError &e) {
105 for (
int k = 0; k <
Lsdim; k++)
140 void *clover =
nullptr;
141 void *clover_inv =
nullptr;
158 double time0 = -((double)clock());
166 for (
int i=0; i<
Nsrc; i++) {
188 time0 /= CLOCKS_PER_SEC;
205 double _Complex *kappa_b = (
double _Complex *)malloc(
Lsdim *
sizeof(
double _Complex));
206 double _Complex *kappa_c = (
double _Complex *)malloc(
Lsdim *
sizeof(
double _Complex));
207 for (
int xs = 0; xs <
Lsdim; xs++) {
248 double _Complex *kappa_b = (
double _Complex *)malloc(
Lsdim *
sizeof(
double _Complex));
249 double _Complex *kappa_c = (
double _Complex *)malloc(
Lsdim *
sizeof(
double _Complex));
250 for (
int xs = 0; xs <
Lsdim; xs++) {
284 double l2r =
sqrt(nrm2 / src2);
286 printfQuda(
"Residuals: (L2 relative) tol %g, QUDA = %g, host = %g; (heavy-quark) tol %g, QUDA = %g\n",
300 if (clover) free(clover);
301 if (clover_inv) free(clover_inv);
304 for (
int dir = 0; dir<4; dir++) free(gauge[dir]);
QudaPrecision prec_refinement_sloppy
QudaReconstructType link_recon_sloppy
std::shared_ptr< QUDAApp > make_app(std::string app_description, std::string app_name)
QudaReconstructType link_recon
QudaReconstructType link_recon_precondition
QudaTwistFlavorType twist_flavor
QudaMemoryType mem_type_ritz
QudaDslashType dslash_type
QudaFieldLocation location_ritz
void add_deflation_option_group(std::shared_ptr< QUDAApp > quda_app)
QudaPrecision prec_precondition
std::array< int, 4 > gridsize_from_cmdline
QudaMassNormalization normalization
QudaPrecision prec_sloppy
void * memset(void *s, int c, size_t n)
cpuColorSpinorField * spinorOut
QudaGaugeParam gauge_param
QudaInvertParam inv_param
int main(int argc, char **argv)
void dw_mat(void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
void dw_4d_matpc(void *out, void **gauge, void *in, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
void mdw_matpc(void *out, void **gauge, void *in, double _Complex *kappa_b, double _Complex *kappa_c, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5)
void dw_4d_mat(void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
void mdw_mat(void *out, void **gauge, void *in, double _Complex *kappa_b, double _Complex *kappa_c, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5)
void dw_matpc(void *out, void **gauge, void *in, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
@ QUDA_TWISTED_CLOVER_DSLASH
@ QUDA_CLOVER_WILSON_DSLASH
@ QUDA_TWISTED_MASS_DSLASH
@ QUDA_DOMAIN_WALL_DSLASH
@ QUDA_DOMAIN_WALL_4D_DSLASH
@ QUDA_MASS_NORMALIZATION
@ QUDA_RECONSTRUCT_INVALID
@ QUDA_TWIST_NONDEG_DOUBLET
double norm_2(void *v, int len, QudaPrecision precision)
void constructHostCloverField(void *clover, void *clover_inv, QudaInvertParam &inv_param)
size_t host_gauge_data_type_size
int dimPartitioned(int dim)
void initComms(int argc, char **argv, std::array< int, 4 > &commDims)
size_t host_spinor_data_type_size
size_t host_clover_data_type_size
void dw_setDims(int *X, const int L5)
void constructHostGaugeField(void **gauge, QudaGaugeParam &gauge_param, int argc, char **argv)
void setWilsonGaugeParam(QudaGaugeParam &gauge_param)
void setDeflatedInvertParam(QudaInvertParam &inv_param)
void setDeflationParam(QudaPrecision ritz_prec, QudaFieldLocation location_ritz, QudaMemoryType mem_type_ritz, QudaExtLibType deflation_ext_lib, char vec_infile[], char vec_outfile[], QudaEigParam *df_param)
const char * get_ritz_location_str(QudaFieldLocation type)
const char * get_matpc_str(QudaMatPCType type)
const char * get_prec_str(QudaPrecision prec)
const char * get_dslash_str(QudaDslashType type)
const char * get_memory_type_str(QudaMemoryType type)
const char * get_mass_normalization_str(QudaMassNormalization type)
const char * get_recon_str(QudaReconstructType recon)
void ax(double a, ColorSpinorField &x)
void mxpy(ColorSpinorField &x, ColorSpinorField &y)
__host__ __device__ ValueType sqrt(ValueType x)
Main header file for the QUDA library.
void destroyDeflationQuda(void *df_instance)
QudaGaugeParam newQudaGaugeParam(void)
void initQuda(int device)
void loadGaugeQuda(void *h_gauge, QudaGaugeParam *param)
void loadCloverQuda(void *h_clover, void *h_clovinv, QudaInvertParam *inv_param)
void freeCloverQuda(void)
QudaInvertParam newQudaInvertParam(void)
QudaEigParam newQudaEigParam(void)
void invertQuda(void *h_x, void *h_b, QudaInvertParam *param)
void * newDeflationQuda(QudaEigParam *param)
QudaInvertParam * invert_param
QudaSolutionType solution_type
QudaMassNormalization mass_normalization
QudaTwistFlavorType twist_flavor
double_complex b_5[QUDA_MAX_DWF_LS]
double_complex c_5[QUDA_MAX_DWF_LS]
void wil_mat(void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param)
void tm_mat(void *out, void **gauge, void *in, double kappa, double mu, QudaTwistFlavorType flavor, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param)
void wil_matpc(void *outEven, void **gauge, void *inEven, double kappa, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
void tm_matpc(void *outEven, void **gauge, void *inEven, double kappa, double mu, QudaTwistFlavorType flavor, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)