15 #include <quda_define.h> 18 #ifndef __CUDACC_RTC__ 19 #define double_complex double _Complex 20 #else // keep NVRTC happy since it can't handle C types 21 #define double_complex double2 431 char arpack_logfile[512];
434 char QUDA_logfile[512];
459 char vec_infile[256];
462 char vec_outfile[256];
879 void lanczosQuda(
int k0,
int m,
void *hp_Apsi,
void *hp_r,
void *hp_V,
void *hp_alpha,
void *hp_beta,
1051 double* loop_coeff,
int num_paths,
int max_length,
double dt,
1150 void computeCloverForceQuda(
void *mom,
double dt,
void **x,
void **p,
double *coeff,
double kappa2,
double ck,
1151 int nvector,
double multiplicity,
void *gauge,
1185 const double level2_coeff[6],
1186 const double fat7_coeff[6],
1187 const void*
const w_link,
1188 const void*
const v_link,
1189 const void*
const u_link,
1294 const unsigned int gauge_dir,
1295 const unsigned int Nsteps,
1296 const unsigned int verbose_interval,
1297 const double relax_boost,
1298 const double tolerance,
1299 const unsigned int reunit_interval,
1300 const unsigned int stopWtheta,
1317 const unsigned int gauge_dir,
1318 const unsigned int Nsteps,
1319 const unsigned int verbose_interval,
1321 const unsigned int autotune,
1322 const double tolerance,
1323 const unsigned int stopWtheta,
1361 #undef double_complex void computeCloverForceQuda(void *mom, double dt, void **x, void **p, double *coeff, double kappa2, double ck, int nvector, double multiplicity, void *gauge, QudaGaugeParam *gauge_param, QudaInvertParam *inv_param)
static QudaGaugeParam qudaGaugeParam
void performOvrImpSTOUTnStep(unsigned int nSteps, double rho, double epsilon)
enum QudaPreserveSource_s QudaPreserveSource
QudaDiracFieldOrder dirac_order
QudaMassNormalization mass_normalization
enum QudaMassNormalization_s QudaMassNormalization
QudaReconstructType reconstruct_sloppy
void freeCloverQuda(void)
void invertMultiShiftQuda(void **_hp_x, void *_hp_b, QudaInvertParam *param)
void setVerbosityQuda(QudaVerbosity verbosity, const char prefix[], FILE *outfile)
QudaFieldLocation clover_location
QudaVerbosity verbosity_precondition
enum QudaPrecision_s QudaPrecision
void destroyDeflationQuda(void *df_instance)
QudaMultigridParam newQudaMultigridParam(void)
QudaExtLibType extlib_type
void setMPICommHandleQuda(void *mycomm)
QudaSchwarzType schwarz_type
enum QudaResidualType_s QudaResidualType
#define QUDA_MAX_MULTI_SHIFT
Maximum number of shifts supported by the multi-shift solver. This number may be changed if need be...
QudaInverterType inv_type_precondition
void printQudaGaugeParam(QudaGaugeParam *param)
int max_res_increase_total
void MatDagMatQuda(void *h_out, void *h_in, QudaInvertParam *inv_param)
QudaPrecision cuda_prec_ritz
int setup_maxiter_refresh[QUDA_MAX_MG_LEVEL]
void invertQuda(void *h_x, void *h_b, QudaInvertParam *param)
QudaDslashType dslash_type
QudaReconstructType reconstruct_precondition
QudaInverterType inv_type
int return_clover_inverse
QudaCABasis coarse_solver_ca_basis[QUDA_MAX_MG_LEVEL]
void performAPEnStep(unsigned int nSteps, double alpha)
enum QudaSolveType_s QudaSolveType
void loadGaugeQuda(void *h_gauge, QudaGaugeParam *param)
double momActionQuda(void *momentum, QudaGaugeParam *param)
QudaStaggeredPhase staggered_phase_type
QudaBoolean pre_orthonormalize
void destroyMultigridQuda(void *mg_instance)
Free resources allocated by the multigrid solver.
void plaqQuda(double plaq[3])
QudaGaugeParam gauge_param
QudaPrecision cuda_prec_refinement_sloppy
enum QudaComputeNullVector_s QudaComputeNullVector
QudaPrecision clover_cuda_prec_refinement_sloppy
QudaGaugeFieldOrder gauge_order
void computeKSLinkQuda(void *fatlink, void *longlink, void *ulink, void *inlink, double *path_coeff, QudaGaugeParam *param)
void loadCloverQuda(void *h_clover, void *h_clovinv, QudaInvertParam *inv_param)
enum QudaEigType_s QudaEigType
enum QudaTboundary_s QudaTboundary
int make_resident_solution
QudaBoolean setup_minimize_memory
QudaPrecision clover_cuda_prec_sloppy
struct QudaInvertParam_s QudaInvertParam
void dslashQuda(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity)
QudaPrecision chrono_precision
QudaFieldLocation input_location
void initCommsGridQuda(int nDim, const int *dims, QudaCommsMap func, void *fdata)
int staggered_phase_applied
int solution_accumulator_pipeline
QudaUseInitGuess use_init_guess
int computeGaugeFixingOVRQuda(void *gauge, const unsigned int gauge_dir, const unsigned int Nsteps, const unsigned int verbose_interval, const double relax_boost, const double tolerance, const unsigned int reunit_interval, const unsigned int stopWtheta, QudaGaugeParam *param, double *timeinfo)
Gauge fixing with overrelaxation with support for single and multi GPU.
void performWuppertalnStep(void *h_out, void *h_in, QudaInvertParam *param, unsigned int nSteps, double alpha)
int coarse_solver_maxiter[QUDA_MAX_MG_LEVEL]
QudaSolutionType solution_type
void qudaSetCommHandle(void *mycomm)
int use_alternative_reliable
void projectSU3Quda(void *gauge_h, double tol, QudaGaugeParam *param)
QudaMemoryType mem_type_ritz
QudaSolverNormalization solver_normalization
int geo_block_size[QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM]
void dslashQuda_4dpc(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, int test_type)
QudaPrecision clover_cuda_prec
int num_setup_iter[QUDA_MAX_MG_LEVEL]
enum QudaCloverFieldOrder_s QudaCloverFieldOrder
int computeGaugeForceQuda(void *mom, void *sitelink, int ***input_path_buf, int *path_length, double *loop_coeff, int num_paths, int max_length, double dt, QudaGaugeParam *qudaGaugeParam)
QudaInvertParam * invert_param
QudaBoolean require_convergence
void initQuda(int device)
void gaussGaugeQuda(unsigned long long seed, double sigma)
Generate Gaussian distributed fields and store in the resident gauge field. We create a Gaussian-dist...
QudaFieldLocation output_location
QudaPrecision clover_cuda_prec_precondition
QudaInvertParam inv_param
QudaBoolean post_orthonormalize
void saveGaugeQuda(void *h_gauge, QudaGaugeParam *param)
int coarse_solver_ca_basis_size[QUDA_MAX_MG_LEVEL]
enum QudaStaggeredPhase_s QudaStaggeredPhase
void createCloverQuda(QudaInvertParam *param)
void * newDeflationQuda(QudaEigParam *param)
QudaSolveType smoother_solve_type[QUDA_MAX_MG_LEVEL]
QudaPrecision cuda_prec_sloppy
void dumpMultigridQuda(void *mg_instance, QudaMultigridParam *param)
Dump the null-space vectors to disk.
QudaInvertParam newQudaInvertParam(void)
QudaPrecision cuda_prec_precondition
double coarse_solver_ca_lambda_max[QUDA_MAX_MG_LEVEL]
QudaCloverFieldOrder clover_order
void computeHISQForceQuda(void *momentum, double dt, const double level2_coeff[6], const double fat7_coeff[6], const void *const w_link, const void *const v_link, const void *const u_link, void **quark, int num, int num_naik, double **coeff, QudaGaugeParam *param)
void saveGaugeFieldQuda(void *outGauge, void *inGauge, QudaGaugeParam *param)
enum QudaMatPCType_s QudaMatPCType
double setup_ca_lambda_min[QUDA_MAX_MG_LEVEL]
struct QudaEigParam_s QudaEigParam
void * newMultigridQuda(QudaMultigridParam *param)
enum QudaGaugeFixed_s QudaGaugeFixed
enum QudaSolutionType_s QudaSolutionType
void eigensolveQuda(void **h_evecs, double_complex *h_evals, QudaEigParam *param)
QudaGammaBasis gamma_basis
double setup_ca_lambda_max[QUDA_MAX_MG_LEVEL]
enum QudaSchwarzType_s QudaSchwarzType
QudaPrecision cuda_prec_sloppy
enum QudaGaugeFieldOrder_s QudaGaugeFieldOrder
int use_sloppy_partial_accumulator
enum QudaDagType_s QudaDagType
enum QudaParity_s QudaParity
QudaFieldLocation setup_location[QUDA_MAX_MG_LEVEL]
QudaReconstructType reconstruct
enum QudaLinkType_s QudaLinkType
void updateMultigridQuda(void *mg_instance, QudaMultigridParam *param)
Updates the multigrid preconditioner for the new gauge / clover field.
QudaBoolean import_vectors
void contractQuda(const void *x, const void *y, void *result, const QudaContractType cType, QudaInvertParam *param, const int *X)
QudaInverterType coarse_solver[QUDA_MAX_MG_LEVEL]
QudaFieldLocation location
void lanczosQuda(int k0, int m, void *hp_Apsi, void *hp_r, void *hp_V, void *hp_alpha, void *hp_beta, QudaEigParam *eig_param)
double smoother_tol[QUDA_MAX_MG_LEVEL]
int max_hq_res_restart_total
QudaPrecision cuda_prec_refinement_sloppy
int compute_clover_inverse
void staggeredPhaseQuda(void *gauge_h, QudaGaugeParam *param)
QudaBoolean run_oblique_proj_check
enum QudaBoolean_s QudaBoolean
double coarse_solver_tol[QUDA_MAX_MG_LEVEL]
void performSTOUTnStep(unsigned int nSteps, double rho)
static int index(int ndim, const int *dims, const int *x)
void printQudaInvertParam(QudaInvertParam *param)
QudaBoolean run_low_mode_check
int computeGaugeFixingFFTQuda(void *gauge, const unsigned int gauge_dir, const unsigned int Nsteps, const unsigned int verbose_interval, const double alpha, const unsigned int autotune, const double tolerance, const unsigned int stopWtheta, QudaGaugeParam *param, double *timeinfo)
Gauge fixing with Steepest descent method with FFTs with support for single GPU only.
void destroyGaugeFieldQuda(void *gauge)
void copyExtendedResidentGaugeQuda(void *resident_gauge, QudaFieldLocation loc)
enum QudaFieldLocation_s QudaFieldLocation
QudaFieldLocation location
int nu_pre[QUDA_MAX_MG_LEVEL]
struct QudaGaugeParam_s QudaGaugeParam
__device__ __host__ Matrix< T, 3 > inverse(const Matrix< T, 3 > &u)
QudaPrecision cuda_prec_precondition
enum QudaEigSpectrumType_s QudaEigSpectrumType
void printQudaEigParam(QudaEigParam *param)
void updateGaugeFieldQuda(void *gauge, void *momentum, double dt, int conj_mom, int exact, QudaGaugeParam *param)
enum QudaGammaBasis_s QudaGammaBasis
enum QudaMultigridCycleType_s QudaMultigridCycleType
QudaBoolean generate_all_levels
enum QudaReconstructType_s QudaReconstructType
void invertMultiSrcQuda(void **_hp_x, void **_hp_b, QudaInvertParam *param)
enum QudaCABasis_s QudaCABasis
#define QUDA_MAX_MG_LEVEL
Maximum number of multi-grid levels. This number may be increased if needed.
enum QudaSetupType_s QudaSetupType
struct QudaMultigridParam_s QudaMultigridParam
#define QUDA_MAX_DWF_LS
Maximum length of the Ls dimension for domain-wall fermions.
int setup_ca_basis_size[QUDA_MAX_MG_LEVEL]
double setup_tol[QUDA_MAX_MG_LEVEL]
void printQudaMultigridParam(QudaMultigridParam *param)
QudaExtLibType extlib_type
void cloverQuda(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity *parity, int inverse)
void MatQuda(void *h_out, void *h_in, QudaInvertParam *inv_param)
QudaTwistFlavorType twist_flavor
double mu_factor[QUDA_MAX_MG_LEVEL]
void * createGaugeFieldQuda(void *gauge, int geometry, QudaGaugeParam *param)
enum QudaDslashType_s QudaDslashType
int(* QudaCommsMap)(const int *coords, void *fdata)
enum QudaContractType_s QudaContractType
QudaEigSpectrumType spectrum
int setup_maxiter[QUDA_MAX_MG_LEVEL]
QudaResidualType residual_type
enum QudaVerbosity_s QudaVerbosity
void computeStaggeredForceQuda(void *mom, double dt, double delta, void **x, void *gauge, QudaGaugeParam *gauge_param, QudaInvertParam *invert_param)
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
void flushChronoQuda(int index)
Flush the chronological history for the given index.
int use_resident_solution
QudaComputeNullVector compute_null_vector
double coarse_solver_ca_lambda_min[QUDA_MAX_MG_LEVEL]
QudaCABasis setup_ca_basis[QUDA_MAX_MG_LEVEL]
int n_block_ortho[QUDA_MAX_MG_LEVEL]
double qChargeDensityQuda(void *qDensity)
Calculates the topological charge from gaugeSmeared, if it exist, or from gaugePrecise if no smeared ...
int nu_post[QUDA_MAX_MG_LEVEL]
QudaDslashType dslash_type_precondition
QudaPrecision clover_cpu_prec
QudaPrecision cuda_prec_ritz
enum QudaUseInitGuess_s QudaUseInitGuess
enum QudaSolverNormalization_s QudaSolverNormalization
void initQudaDevice(int device)
void pack_ghost(void **cpuLink, void **cpuGhost, int nFace, QudaPrecision precision)
void dslashQuda_mdwf(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, int test_type)
QudaEigParam newQudaEigParam(void)
enum QudaInverterType_s QudaInverterType
enum QudaMemoryType_s QudaMemoryType
QudaReconstructType reconstruct_refinement_sloppy
enum QudaExtLibType_s QudaExtLibType
void updateR()
update the radius for halos.
QudaGaugeParam newQudaGaugeParam(void)
QudaPreserveSource preserve_source
QudaInvertParam * invert_param
double reliable_delta_refinement
enum QudaTwistFlavorType_s QudaTwistFlavorType
enum QudaDiracFieldOrder_s QudaDiracFieldOrder