QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Macros | Functions | Variables
test_util.cpp File Reference
#include <complex>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <short.h>
#include <comm_quda.h>
#include <mpi_comm_handle.h>
#include <wilson_dslash_reference.h>
#include <test_util.h>
#include <dslash_quda.h>
#include "misc.h"
Include dependency graph for test_util.cpp:

Go to the source code of this file.

Macros

#define XUP   0
 
#define YUP   1
 
#define ZUP   2
 
#define TUP   3
 

Functions

void get_gridsize_from_env (int *const dims)
 
static int lex_rank_from_coords_t (const int *coords, void *fdata)
 
static int lex_rank_from_coords_x (const int *coords, void *fdata)
 
void initComms (int argc, char **argv, int *const commDims)
 
bool last_node_in_t ()
 
void finalizeComms ()
 
void initRand ()
 
void setDims (int *X)
 
void dw_setDims (int *X, const int L5)
 
void setSpinorSiteSize (int n)
 
template<typename Float >
static void printVector (Float *v)
 
void printSpinorElement (void *spinor, int X, QudaPrecision precision)
 
void printGaugeElement (void *gauge, int X, QudaPrecision precision)
 
int getOddBit (int Y)
 
template<typename Float >
void complexAddTo (Float *a, Float *b)
 
template<typename Float >
void complexProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void complexConjugateProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void complexDotProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void accumulateComplexProduct (Float *a, Float *b, Float *c, Float sign)
 
template<typename Float >
void accumulateComplexDotProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void accumulateConjugateProduct (Float *a, Float *b, Float *c, int sign)
 
template<typename Float >
void su3Construct12 (Float *mat)
 
template<typename Float >
void su3Construct8 (Float *mat)
 
void su3_construct (void *mat, QudaReconstructType reconstruct, QudaPrecision precision)
 
template<typename Float >
static void su3Reconstruct12 (Float *mat, int dir, int ga_idx, QudaGaugeParam *param)
 
template<typename Float >
static void su3Reconstruct8 (Float *mat, int dir, int ga_idx, QudaGaugeParam *param)
 
void su3_reconstruct (void *mat, int dir, int ga_idx, QudaReconstructType reconstruct, QudaPrecision precision, QudaGaugeParam *param)
 
template<typename Float >
static int compareFloats (Float *a, Float *b, int len, double epsilon)
 
int compare_floats (void *a, void *b, int len, double epsilon, QudaPrecision precision)
 
int fullLatticeIndex (int dim[4], int index, int oddBit)
 
int fullLatticeIndex (int i, int oddBit)
 
int neighborIndex (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndex (int dim[4], int index, int oddBit, int dx[4])
 
int neighborIndex_mg (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndexFullLattice (int i, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndexFullLattice (int dim[4], int index, int dx[4])
 
int neighborIndexFullLattice_mg (int i, int dx4, int dx3, int dx2, int dx1)
 
int fullLatticeIndex_4d (int i, int oddBit)
 
int fullLatticeIndex_5d (int i, int oddBit)
 
int fullLatticeIndex_5d_4dpc (int i, int oddBit)
 
int x4_from_full_index (int i)
 
template<typename Float >
static void applyGaugeFieldScaling (Float **gauge, int Vh, QudaGaugeParam *param)
 
template<typename Float >
void applyGaugeFieldScaling_long (Float **gauge, int Vh, QudaGaugeParam *param, QudaDslashType dslash_type)
 
void applyGaugeFieldScaling_long (void **gauge, int Vh, QudaGaugeParam *param, QudaDslashType dslash_type, QudaPrecision local_prec)
 
template<typename Float >
static void constructUnitGaugeField (Float **res, QudaGaugeParam *param)
 
template<typename Float >
static void normalize (complex< Float > *a, int len)
 
template<typename Float >
static void orthogonalize (complex< Float > *a, complex< Float > *b, int len)
 
template<typename Float >
static void constructGaugeField (Float **res, QudaGaugeParam *param, QudaDslashType dslash_type=QUDA_WILSON_DSLASH)
 
template<typename Float >
void constructUnitaryGaugeField (Float **res)
 
template<typename Float >
static void applyStaggeredScaling (Float **res, QudaGaugeParam *param, int type)
 
void construct_gauge_field (void **gauge, int type, QudaPrecision precision, QudaGaugeParam *param)
 
void construct_fat_long_gauge_field (void **fatlink, void **longlink, int type, QudaPrecision precision, QudaGaugeParam *param, QudaDslashType dslash_type)
 
template<typename Float >
static void constructCloverField (Float *res, double norm, double diag)
 
void construct_clover_field (void *clover, double norm, double diag, QudaPrecision precision)
 
template<typename Float >
static void checkGauge (Float **oldG, Float **newG, double epsilon)
 
void check_gauge (void **oldG, void **newG, double epsilon, QudaPrecision precision)
 
void createSiteLinkCPU (void **link, QudaPrecision precision, int phase)
 
void construct_spinor_source (void *v, int nSpin, int nColor, QudaPrecision precision, const int *const x, quda::RNG &rng)
 
template<typename Float >
int compareLink (Float **linkA, Float **linkB, int len)
 
static int compare_link (void **linkA, void **linkB, int len, QudaPrecision precision)
 
static void printLinkElement (void *link, int X, QudaPrecision precision)
 
int strong_check_link (void **linkA, const char *msgA, void **linkB, const char *msgB, int len, QudaPrecision prec)
 
void createMomCPU (void *mom, QudaPrecision precision)
 
void createHwCPU (void *hw, QudaPrecision precision)
 
template<typename Float >
int compare_mom (Float *momA, Float *momB, int len)
 
static void printMomElement (void *mom, int X, QudaPrecision precision)
 
int strong_check_mom (void *momA, void *momB, int len, QudaPrecision prec)
 
int dimPartitioned (int dim)
 
void __attribute__ ((weak)) usage_extra(char **argv)
 
void usage (char **argv)
 
int process_command_line_option (int argc, char **argv, int *idx)
 
void stopwatchStart ()
 
double stopwatchReadSeconds ()
 

Variables

int Z [4]
 
int V
 
int Vh
 
int Vs_x
 
int Vs_y
 
int Vs_z
 
int Vs_t
 
int Vsh_x
 
int Vsh_y
 
int Vsh_z
 
int Vsh_t
 
int faceVolume [4]
 
int E1
 
int E1h
 
int E2
 
int E3
 
int E4
 
int E [4]
 
int V_ex
 
int Vh_ex
 
int Ls
 
int V5
 
int V5h
 
int mySpinorSiteSize
 
float fat_link_max
 
int gridsize_from_cmdline [4] = {1,1,1,1}
 
static int rank_order = 0
 
int device = 0
 
QudaReconstructType link_recon = QUDA_RECONSTRUCT_NO
 
QudaReconstructType link_recon_sloppy = QUDA_RECONSTRUCT_INVALID
 
QudaReconstructType link_recon_precondition = QUDA_RECONSTRUCT_INVALID
 
QudaPrecision prec = QUDA_SINGLE_PRECISION
 
QudaPrecision prec_sloppy = QUDA_INVALID_PRECISION
 
QudaPrecision prec_refinement_sloppy = QUDA_INVALID_PRECISION
 
QudaPrecision prec_precondition = QUDA_INVALID_PRECISION
 
QudaPrecision prec_null = QUDA_INVALID_PRECISION
 
QudaPrecision prec_ritz = QUDA_INVALID_PRECISION
 
QudaVerbosity verbosity = QUDA_SUMMARIZE
 
int xdim = 24
 
int ydim = 24
 
int zdim = 24
 
int tdim = 24
 
int Lsdim = 16
 
QudaDagType dagger = QUDA_DAG_NO
 
QudaDslashType dslash_type = QUDA_WILSON_DSLASH
 
int laplace3D = 4
 
char latfile [256] = ""
 
bool unit_gauge = false
 
double gaussian_sigma = 0.2
 
char gauge_outfile [256] = ""
 
int Nsrc = 1
 
int Msrc = 1
 
int niter = 100
 
int gcrNkrylov = 10
 
QudaCABasis ca_basis = QUDA_POWER_BASIS
 
double ca_lambda_min = 0.0
 
double ca_lambda_max = -1.0
 
int pipeline = 0
 
int solution_accumulator_pipeline = 0
 
int test_type = 0
 
int nvec [QUDA_MAX_MG_LEVEL] = { }
 
char mg_vec_infile [QUDA_MAX_MG_LEVEL][256]
 
char mg_vec_outfile [QUDA_MAX_MG_LEVEL][256]
 
QudaInverterType inv_type
 
QudaInverterType precon_type = QUDA_INVALID_INVERTER
 
int multishift = 0
 
bool verify_results = true
 
bool low_mode_check = false
 
bool oblique_proj_check = false
 
double mass = 0.1
 
double kappa = -1.0
 
double mu = 0.1
 
double epsilon = 0.01
 
double anisotropy = 1.0
 
double tadpole_factor = 1.0
 
double eps_naik = 0.0
 
double clover_coeff = 0.1
 
bool compute_clover = false
 
bool compute_fatlong = false
 
double tol = 1e-7
 
double tol_hq = 0.
 
double reliable_delta = 0.1
 
bool alternative_reliable = false
 
QudaTwistFlavorType twist_flavor = QUDA_TWIST_SINGLET
 
QudaMassNormalization normalization = QUDA_KAPPA_NORMALIZATION
 
QudaMatPCType matpc_type = QUDA_MATPC_EVEN_EVEN
 
QudaSolveType solve_type = QUDA_NORMOP_PC_SOLVE
 
QudaSolutionType solution_type = QUDA_MAT_SOLUTION
 
int mg_levels = 2
 
QudaFieldLocation solver_location [QUDA_MAX_MG_LEVEL] = { }
 
QudaFieldLocation setup_location [QUDA_MAX_MG_LEVEL] = { }
 
int nu_pre [QUDA_MAX_MG_LEVEL] = { }
 
int nu_post [QUDA_MAX_MG_LEVEL] = { }
 
int n_block_ortho [QUDA_MAX_MG_LEVEL] = {}
 
double mu_factor [QUDA_MAX_MG_LEVEL] = { }
 
QudaVerbosity mg_verbosity [QUDA_MAX_MG_LEVEL] = { }
 
QudaInverterType setup_inv [QUDA_MAX_MG_LEVEL] = { }
 
QudaSolveType coarse_solve_type [QUDA_MAX_MG_LEVEL] = { }
 
QudaSolveType smoother_solve_type [QUDA_MAX_MG_LEVEL] = { }
 
int num_setup_iter [QUDA_MAX_MG_LEVEL] = { }
 
double setup_tol [QUDA_MAX_MG_LEVEL] = { }
 
int setup_maxiter [QUDA_MAX_MG_LEVEL] = { }
 
int setup_maxiter_refresh [QUDA_MAX_MG_LEVEL] = { }
 
QudaCABasis setup_ca_basis [QUDA_MAX_MG_LEVEL] = { }
 
int setup_ca_basis_size [QUDA_MAX_MG_LEVEL] = { }
 
double setup_ca_lambda_min [QUDA_MAX_MG_LEVEL] = { }
 
double setup_ca_lambda_max [QUDA_MAX_MG_LEVEL] = { }
 
QudaSetupType setup_type = QUDA_NULL_VECTOR_SETUP
 
bool pre_orthonormalize = false
 
bool post_orthonormalize = true
 
double omega = 0.85
 
QudaInverterType coarse_solver [QUDA_MAX_MG_LEVEL] = { }
 
double coarse_solver_tol [QUDA_MAX_MG_LEVEL] = { }
 
QudaInverterType smoother_type [QUDA_MAX_MG_LEVEL] = { }
 
QudaPrecision smoother_halo_prec = QUDA_INVALID_PRECISION
 
double smoother_tol [QUDA_MAX_MG_LEVEL] = { }
 
int coarse_solver_maxiter [QUDA_MAX_MG_LEVEL] = { }
 
QudaCABasis coarse_solver_ca_basis [QUDA_MAX_MG_LEVEL] = { }
 
int coarse_solver_ca_basis_size [QUDA_MAX_MG_LEVEL] = { }
 
double coarse_solver_ca_lambda_min [QUDA_MAX_MG_LEVEL] = { }
 
double coarse_solver_ca_lambda_max [QUDA_MAX_MG_LEVEL] = { }
 
bool generate_nullspace = true
 
bool generate_all_levels = true
 
QudaSchwarzType schwarz_type [QUDA_MAX_MG_LEVEL] = { }
 
int schwarz_cycle [QUDA_MAX_MG_LEVEL] = { }
 
int geo_block_size [QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM] = { }
 
int nev = 8
 
int max_search_dim = 64
 
int deflation_grid = 16
 
double tol_restart = 5e+3*tol
 
int eigcg_max_restarts = 3
 
int max_restart_num = 3
 
double inc_tol = 1e-2
 
double eigenval_tol = 1e-1
 
QudaExtLibType solver_ext_lib = QUDA_EIGEN_EXTLIB
 
QudaExtLibType deflation_ext_lib = QUDA_EIGEN_EXTLIB
 
QudaFieldLocation location_ritz = QUDA_CUDA_FIELD_LOCATION
 
QudaMemoryType mem_type_ritz = QUDA_MEMORY_DEVICE
 
int eig_nEv = 16
 
int eig_nKr = 32
 
int eig_nConv = -1
 
bool eig_require_convergence = true
 
int eig_check_interval = 10
 
int eig_max_restarts = 1000
 
double eig_tol = 1e-6
 
bool eig_use_poly_acc = true
 
int eig_poly_deg = 100
 
double eig_amin = 0.1
 
double eig_amax = 4.0
 
bool eig_use_normop = true
 
bool eig_use_dagger = false
 
bool eig_compute_svd = false
 
QudaEigSpectrumType eig_spectrum = QUDA_SPECTRUM_LR_EIG
 
QudaEigType eig_type = QUDA_EIG_TR_LANCZOS
 
bool eig_arpack_check = false
 
char eig_arpack_logfile [256] = "arpack_logfile.log"
 
char eig_QUDA_logfile [256] = "QUDA_logfile.log"
 
char eig_vec_infile [256] = ""
 
char eig_vec_outfile [256] = ""
 
bool mg_eig [QUDA_MAX_MG_LEVEL] = {}
 
int mg_eig_nEv [QUDA_MAX_MG_LEVEL] = {}
 
int mg_eig_nKr [QUDA_MAX_MG_LEVEL] = {}
 
bool mg_eig_require_convergence [QUDA_MAX_MG_LEVEL] = {}
 
int mg_eig_check_interval [QUDA_MAX_MG_LEVEL] = {}
 
int mg_eig_max_restarts [QUDA_MAX_MG_LEVEL] = {}
 
double mg_eig_tol [QUDA_MAX_MG_LEVEL] = {}
 
bool mg_eig_use_poly_acc [QUDA_MAX_MG_LEVEL] = {}
 
int mg_eig_poly_deg [QUDA_MAX_MG_LEVEL] = {}
 
double mg_eig_amin [QUDA_MAX_MG_LEVEL] = {}
 
double mg_eig_amax [QUDA_MAX_MG_LEVEL] = {}
 
bool mg_eig_use_normop [QUDA_MAX_MG_LEVEL] = {}
 
bool mg_eig_use_dagger [QUDA_MAX_MG_LEVEL] = {}
 
QudaEigSpectrumType mg_eig_spectrum [QUDA_MAX_MG_LEVEL] = {}
 
QudaEigType mg_eig_type [QUDA_MAX_MG_LEVEL] = {}
 
bool mg_eig_coarse_guess = false
 
double heatbath_beta_value = 6.2
 
int heatbath_warmup_steps = 10
 
int heatbath_num_steps = 10
 
int heatbath_num_heatbath_per_step = 5
 
int heatbath_num_overrelax_per_step = 5
 
bool heatbath_coldstart = false
 
QudaContractType contract_type = QUDA_CONTRACT_TYPE_OPEN
 
static int dim_partitioned [4] = {0,0,0,0}
 
static struct timeval startTime
 

Macro Definition Documentation

◆ TUP

#define TUP   3

Definition at line 23 of file test_util.cpp.

Referenced by createSiteLinkCPU().

◆ XUP

#define XUP   0

Definition at line 20 of file test_util.cpp.

Referenced by createSiteLinkCPU().

◆ YUP

#define YUP   1

Definition at line 21 of file test_util.cpp.

Referenced by createSiteLinkCPU().

◆ ZUP

#define ZUP   2

Definition at line 22 of file test_util.cpp.

Referenced by createSiteLinkCPU().

Function Documentation

◆ __attribute__()

void __attribute__ ( (weak)  )

Definition at line 1781 of file test_util.cpp.

◆ accumulateComplexDotProduct()

template<typename Float >
void accumulateComplexDotProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 292 of file test_util.cpp.

◆ accumulateComplexProduct()

template<typename Float >
void accumulateComplexProduct ( Float *  a,
Float *  b,
Float *  c,
Float  sign 
)
inline

Definition at line 285 of file test_util.cpp.

Referenced by su3Reconstruct8().

Here is the caller graph for this function:

◆ accumulateConjugateProduct()

template<typename Float >
void accumulateConjugateProduct ( Float *  a,
Float *  b,
Float *  c,
int  sign 
)
inline

Definition at line 298 of file test_util.cpp.

Referenced by constructGaugeField(), constructUnitaryGaugeField(), and su3Reconstruct12().

Here is the caller graph for this function:

◆ applyGaugeFieldScaling()

template<typename Float >
static void applyGaugeFieldScaling ( Float **  gauge,
int  Vh,
QudaGaugeParam param 
)
static

Definition at line 708 of file test_util.cpp.

References QudaGaugeParam_s::anisotropy, QudaGaugeParam_s::gauge_fix, gaugeSiteSize, last_node_in_t(), QUDA_ANTI_PERIODIC_T, QudaGaugeParam_s::t_boundary, Vh, and Z.

Referenced by construct_gauge_field(), constructGaugeField(), and constructUnitGaugeField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ applyGaugeFieldScaling_long() [1/2]

template<typename Float >
void applyGaugeFieldScaling_long ( Float **  gauge,
int  Vh,
QudaGaugeParam param,
QudaDslashType  dslash_type 
)

◆ applyGaugeFieldScaling_long() [2/2]

void applyGaugeFieldScaling_long ( void **  gauge,
int  Vh,
QudaGaugeParam param,
QudaDslashType  dslash_type,
QudaPrecision  local_prec 
)

Definition at line 854 of file test_util.cpp.

References applyGaugeFieldScaling_long(), errorQuda, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.

Here is the call graph for this function:

◆ applyStaggeredScaling()

template<typename Float >
static void applyStaggeredScaling ( Float **  res,
QudaGaugeParam param,
int  type 
)
static

Definition at line 1039 of file test_util.cpp.

References applyGaugeFieldScaling_long(), QUDA_STAGGERED_DSLASH, and Vh.

Referenced by construct_fat_long_gauge_field().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_gauge()

void check_gauge ( void **  oldG,
void **  newG,
double  epsilon,
QudaPrecision  precision 
)

Definition at line 1220 of file test_util.cpp.

References checkGauge(), and QUDA_DOUBLE_PRECISION.

Referenced by SU3test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkGauge()

template<typename Float >
static void checkGauge ( Float **  oldG,
Float **  newG,
double  epsilon 
)
static

fabs(oldG[d][ga_idx*18+j]);

Definition at line 1186 of file test_util.cpp.

References quda::pow(), V, and Vh.

Referenced by check_gauge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_floats()

int compare_floats ( void *  a,
void *  b,
int  len,
double  epsilon,
QudaPrecision  precision 
)

Definition at line 434 of file test_util.cpp.

References compareFloats(), and QUDA_DOUBLE_PRECISION.

Referenced by gauge_force_test(), hisq_force_test(), hisq_test(), llfat_test(), and TEST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_link()

static int compare_link ( void **  linkA,
void **  linkB,
int  len,
QudaPrecision  precision 
)
static

Definition at line 1399 of file test_util.cpp.

References compareLink(), and QUDA_DOUBLE_PRECISION.

Referenced by strong_check_link().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_mom()

template<typename Float >
int compare_mom ( Float *  momA,
Float *  momB,
int  len 
)

Definition at line 1512 of file test_util.cpp.

References momSiteSize, quda::pow(), and printfQuda.

Referenced by strong_check_mom().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compareFloats()

template<typename Float >
static int compareFloats ( Float *  a,
Float *  b,
int  len,
double  epsilon 
)
static

Definition at line 423 of file test_util.cpp.

References printfQuda.

Referenced by compare_floats().

Here is the caller graph for this function:

◆ compareLink()

template<typename Float >
int compareLink ( Float **  linkA,
Float **  linkB,
int  len 
)

Definition at line 1361 of file test_util.cpp.

References quda::pow(), and printfQuda.

Referenced by compare_link().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ complexAddTo()

template<typename Float >
void complexAddTo ( Float *  a,
Float *  b 
)
inline

Definition at line 257 of file test_util.cpp.

◆ complexConjugateProduct()

template<typename Float >
void complexConjugateProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 271 of file test_util.cpp.

Referenced by su3Reconstruct8().

Here is the caller graph for this function:

◆ complexDotProduct()

template<typename Float >
void complexDotProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 278 of file test_util.cpp.

Referenced by su3Reconstruct8().

Here is the caller graph for this function:

◆ complexProduct()

template<typename Float >
void complexProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 264 of file test_util.cpp.

◆ construct_clover_field()

void construct_clover_field ( void *  clover,
double  norm,
double  diag,
QudaPrecision  precision 
)

Definition at line 1167 of file test_util.cpp.

References constructCloverField(), and QUDA_DOUBLE_PRECISION.

Referenced by init(), and main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ construct_fat_long_gauge_field()

void construct_fat_long_gauge_field ( void **  fatlink,
void **  longlink,
int  type,
QudaPrecision  precision,
QudaGaugeParam param,
QudaDslashType  dslash_type 
)

◆ construct_gauge_field()

void construct_gauge_field ( void **  gauge,
int  type,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 1047 of file test_util.cpp.

References applyGaugeFieldScaling(), constructGaugeField(), constructUnitGaugeField(), QUDA_DOUBLE_PRECISION, and Vh.

Referenced by eigensolve_test(), init(), invert_test(), main(), plaq_test(), and SU3test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ construct_spinor_source()

void construct_spinor_source ( void *  v,
int  nSpin,
int  nColor,
QudaPrecision  precision,
const int *const  x,
quda::RNG rng 
)

◆ constructCloverField()

template<typename Float >
static void constructCloverField ( Float *  res,
double  norm,
double  diag 
)
static

Definition at line 1138 of file test_util.cpp.

References quda::norm(), and V.

Referenced by construct_clover_field().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructGaugeField()

template<typename Float >
static void constructGaugeField ( Float **  res,
QudaGaugeParam param,
QudaDslashType  dslash_type = QUDA_WILSON_DSLASH 
)
static

◆ constructUnitaryGaugeField()

template<typename Float >
void constructUnitaryGaugeField ( Float **  res)

Definition at line 982 of file test_util.cpp.

References accumulateConjugateProduct(), gaugeSiteSize, normalize(), orthogonalize(), and Vh.

Referenced by createSiteLinkCPU().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructUnitGaugeField()

template<typename Float >
static void constructUnitGaugeField ( Float **  res,
QudaGaugeParam param 
)
static

Definition at line 865 of file test_util.cpp.

References applyGaugeFieldScaling(), gaugeSiteSize, and Vh.

Referenced by construct_fat_long_gauge_field(), and construct_gauge_field().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createHwCPU()

void createHwCPU ( void *  hw,
QudaPrecision  precision 
)

Definition at line 1487 of file test_util.cpp.

References hwSiteSize, QUDA_DOUBLE_PRECISION, and V.

Referenced by hisq_force_init().

Here is the caller graph for this function:

◆ createMomCPU()

void createMomCPU ( void *  mom,
QudaPrecision  precision 
)

Definition at line 1451 of file test_util.cpp.

References gaugeSiteSize, gSize, momSiteSize, QUDA_DOUBLE_PRECISION, and V.

Referenced by gauge_force_test().

Here is the caller graph for this function:

◆ createSiteLinkCPU()

void createSiteLinkCPU ( void **  link,
QudaPrecision  precision,
int  phase 
)

Definition at line 1227 of file test_util.cpp.

References constructUnitaryGaugeField(), fullLatticeIndex(), gaugeSiteSize, last_node_in_t(), QUDA_DOUBLE_PRECISION, QUDA_SINGLE_PRECISION, TUP, V, Vh, X1, X2, X3, X4, XUP, YUP, Z, and ZUP.

Referenced by createNoisyLinkCPU(), gauge_force_test(), hisq_force_init(), hisq_test(), llfat_test(), and unitarize_link_test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dimPartitioned()

int dimPartitioned ( int  dim)

Definition at line 1776 of file test_util.cpp.

References dim_partitioned, and gridsize_from_cmdline.

Referenced by display_test_info().

Here is the caller graph for this function:

◆ dw_setDims()

void dw_setDims ( int *  X,
const int  L5 
)

Definition at line 187 of file test_util.cpp.

References faceVolume, Ls, V, V5, V5h, Vh, Vs_t, Vsh_t, and Z.

Referenced by eigensolve_test(), init(), invert_test(), and main().

Here is the caller graph for this function:

◆ finalizeComms()

void finalizeComms ( )

Definition at line 128 of file test_util.cpp.

Referenced by main(), plaq_test(), and SU3test().

Here is the caller graph for this function:

◆ fullLatticeIndex() [1/2]

int fullLatticeIndex ( int  dim[4],
int  index,
int  oddBit 
)

◆ fullLatticeIndex() [2/2]

int fullLatticeIndex ( int  i,
int  oddBit 
)

Definition at line 452 of file test_util.cpp.

References X, X1, X2, X3, and Z.

◆ fullLatticeIndex_4d()

int fullLatticeIndex_4d ( int  i,
int  oddBit 
)

Definition at line 648 of file test_util.cpp.

References Vh, X, X1, X2, X3, and Z.

Referenced by neighborIndex_4d().

Here is the caller graph for this function:

◆ fullLatticeIndex_5d()

int fullLatticeIndex_5d ( int  i,
int  oddBit 
)

Definition at line 682 of file test_util.cpp.

References Z.

Referenced by dslashReference_5th(), neighborIndex_5d(), and spinorNeighbor_5d().

Here is the caller graph for this function:

◆ fullLatticeIndex_5d_4dpc()

int fullLatticeIndex_5d_4dpc ( int  i,
int  oddBit 
)

Definition at line 687 of file test_util.cpp.

References Z.

Referenced by dslashReference_5th(), neighborIndex_5d(), and spinorNeighbor_5d().

Here is the caller graph for this function:

◆ get_gridsize_from_env()

void get_gridsize_from_env ( int *const  dims)

Definition at line 51 of file test_util.cpp.

References errorQuda.

Referenced by initComms().

Here is the caller graph for this function:

◆ getOddBit()

int getOddBit ( int  Y)

Definition at line 247 of file test_util.cpp.

References Z.

Referenced by printGaugeElement().

Here is the caller graph for this function:

◆ initComms()

void initComms ( int  argc,
char **  argv,
int *const  commDims 
)

Definition at line 88 of file test_util.cpp.

References get_gridsize_from_env(), initCommsGridQuda(), initRand(), lex_rank_from_coords_t(), lex_rank_from_coords_x(), MPI_Init(), printfQuda, and rank_order.

Referenced by main(), plaq_test(), and SU3test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initRand()

void initRand ( )

Definition at line 138 of file test_util.cpp.

References rank.

Referenced by initComms(), main(), plaq_test(), and SU3test().

Here is the caller graph for this function:

◆ last_node_in_t()

bool last_node_in_t ( )

Definition at line 118 of file test_util.cpp.

References commCoords(), and quda::commDim.

Referenced by applyGaugeFieldScaling(), applyGaugeFieldScaling_long(), createSiteLinkCPU(), and site_link_sanity_check_internal_12().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lex_rank_from_coords_t()

static int lex_rank_from_coords_t ( const int *  coords,
void *  fdata 
)
static

Definition at line 68 of file test_util.cpp.

References gridsize_from_cmdline, and rank.

Referenced by initComms().

Here is the caller graph for this function:

◆ lex_rank_from_coords_x()

static int lex_rank_from_coords_x ( const int *  coords,
void *  fdata 
)
static

Definition at line 77 of file test_util.cpp.

References gridsize_from_cmdline, and rank.

Referenced by initComms().

Here is the caller graph for this function:

◆ neighborIndex() [1/2]

int neighborIndex ( int  i,
int  oddBit,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 488 of file test_util.cpp.

References fullLatticeIndex(), and Z.

Referenced by neighborIndexFullLattice().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ neighborIndex() [2/2]

int neighborIndex ( int  dim[4],
int  index,
int  oddBit,
int  dx[4] 
)

Definition at line 506 of file test_util.cpp.

References fullLatticeIndex().

Here is the call graph for this function:

◆ neighborIndex_mg()

int neighborIndex_mg ( int  i,
int  oddBit,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 523 of file test_util.cpp.

References comm_dim_partitioned(), fullLatticeIndex(), and Z.

Referenced by spinorNeighbor_5d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ neighborIndexFullLattice() [1/2]

int neighborIndexFullLattice ( int  i,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 556 of file test_util.cpp.

References neighborIndex(), and Vh.

Referenced by computeLinkOrderedOuterProduct(), computeLongLinkCPU(), forward_shifted_outer_prod(), llfat_compute_gen_staple_field(), shifted_outer_prod(), u_shift_hw(), and u_shift_mat().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ neighborIndexFullLattice() [2/2]

int neighborIndexFullLattice ( int  dim[4],
int  index,
int  dx[4] 
)

Definition at line 579 of file test_util.cpp.

References index(), and neighborIndex().

Here is the call graph for this function:

◆ neighborIndexFullLattice_mg()

int neighborIndexFullLattice_mg ( int  i,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 601 of file test_util.cpp.

References fullLatticeIndex(), Vh, and Z.

Referenced by llfat_reference().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize()

template<typename Float >
static void normalize ( complex< Float > *  a,
int  len 
)
static

Definition at line 890 of file test_util.cpp.

References quda::norm(), quda::sqrt(), and sum().

Referenced by constructGaugeField(), and constructUnitaryGaugeField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ orthogonalize()

template<typename Float >
static void orthogonalize ( complex< Float > *  a,
complex< Float > *  b,
int  len 
)
static

Definition at line 898 of file test_util.cpp.

References conj(), and dot().

Referenced by constructGaugeField(), and constructUnitaryGaugeField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printGaugeElement()

void printGaugeElement ( void *  gauge,
int  X,
QudaPrecision  precision 
)

Definition at line 231 of file test_util.cpp.

References gaugeSiteSize, getOddBit(), printVector(), QUDA_DOUBLE_PRECISION, and Vh.

Here is the call graph for this function:

◆ printLinkElement()

static void printLinkElement ( void *  link,
int  X,
QudaPrecision  precision 
)
static

Definition at line 1414 of file test_util.cpp.

References gaugeSiteSize, printVector(), and QUDA_DOUBLE_PRECISION.

Referenced by strong_check_link().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printMomElement()

static void printMomElement ( void *  mom,
int  X,
QudaPrecision  precision 
)
static

Definition at line 1547 of file test_util.cpp.

References momSiteSize, printfQuda, printVector(), and QUDA_DOUBLE_PRECISION.

Referenced by strong_check_mom().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printSpinorElement()

void printSpinorElement ( void *  spinor,
int  X,
QudaPrecision  precision 
)

Definition at line 223 of file test_util.cpp.

References printVector(), QUDA_DOUBLE_PRECISION, and quda::s.

Referenced by dslashReference_4d_sgpu().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printVector()

template<typename Float >
static void printVector ( Float *  v)
static

Definition at line 218 of file test_util.cpp.

References printfQuda.

Referenced by printGaugeElement(), printLinkElement(), printMomElement(), and printSpinorElement().

Here is the caller graph for this function:

◆ process_command_line_option()

int process_command_line_option ( int  argc,
char **  argv,
int *  idx 
)

Definition at line 2019 of file test_util.cpp.

References alternative_reliable, anisotropy, ca_basis, ca_lambda_max, ca_lambda_min, clover_coeff, coarse_solve_type, coarse_solver, coarse_solver_ca_basis, coarse_solver_ca_basis_size, coarse_solver_ca_lambda_max, coarse_solver_ca_lambda_min, coarse_solver_maxiter, coarse_solver_tol, commDimPartitionedSet(), compute_clover, compute_fatlong, contract_type, dagger, deflation_ext_lib, deflation_grid, device, dim_partitioned, dslash_type, eig_amax, eig_amin, eig_arpack_check, eig_arpack_logfile, eig_check_interval, eig_compute_svd, eig_max_restarts, eig_nConv, eig_nEv, eig_nKr, eig_poly_deg, eig_QUDA_logfile, eig_require_convergence, eig_spectrum, eig_tol, eig_type, eig_use_dagger, eig_use_normop, eig_use_poly_acc, eig_vec_infile, eig_vec_outfile, eigcg_max_restarts, eigenval_tol, eps_naik, epsilon, gauge_outfile, gaussian_sigma, gcrNkrylov, generate_all_levels, generate_nullspace, geo_block_size, get_contract_type(), get_df_mem_type_ritz(), get_dslash_type(), get_eig_spectrum_type(), get_eig_type(), get_flavor_type(), get_location(), get_mass_normalization_type(), get_matpc_type(), get_prec(), get_quda_ver_str(), get_rank_order(), get_recon(), get_schwarz_type(), get_solution_type(), get_solve_ext_lib_type(), get_solve_type(), get_solver_type(), get_verbosity_type(), gridsize_from_cmdline, heatbath_beta_value, heatbath_coldstart, heatbath_num_heatbath_per_step, heatbath_num_overrelax_per_step, heatbath_num_steps, heatbath_warmup_steps, inc_tol, inv_type, kappa, laplace3D, latfile, link_recon, link_recon_precondition, link_recon_sloppy, location_ritz, low_mode_check, Ls, Lsdim, mass, matpc_type, max_restart_num, max_search_dim, mem_type_ritz, mg_eig, mg_eig_amax, mg_eig_amin, mg_eig_check_interval, mg_eig_max_restarts, mg_eig_nEv, mg_eig_nKr, mg_eig_poly_deg, mg_eig_require_convergence, mg_eig_spectrum, mg_eig_tol, mg_eig_type, mg_eig_use_dagger, mg_eig_use_normop, mg_eig_use_poly_acc, mg_levels, mg_vec_infile, mg_vec_outfile, mg_verbosity, Msrc, mu, mu_factor, multishift, n_block_ortho, nev, niter, normalization, Nsrc, nu_post, nu_pre, num_setup_iter, nvec, oblique_proj_check, omega, out, pipeline, post_orthonormalize, pre_orthonormalize, prec, prec_null, prec_precondition, prec_refinement_sloppy, prec_ritz, prec_sloppy, precon_type, printfQuda, QUDA_CHEBYSHEV_BASIS, QUDA_DAG_YES, QUDA_MAX_MG_LEVEL, QUDA_NULL_VECTOR_SETUP, QUDA_POWER_BASIS, QUDA_TEST_VECTOR_SETUP, rank_order, reliable_delta, schwarz_cycle, schwarz_type, setup_ca_basis, setup_ca_basis_size, setup_ca_lambda_max, setup_ca_lambda_min, setup_inv, setup_location, setup_maxiter, setup_maxiter_refresh, setup_tol, setup_type, smoother_halo_prec, smoother_solve_type, smoother_tol, smoother_type, solution_accumulator_pipeline, solution_type, solve_type, solver_ext_lib, solver_location, tadpole_factor, tdim, test_type, tol, tol_hq, tol_restart, twist_flavor, unit_gauge, usage(), verbosity, verify_results, xdim, ydim, and zdim.

Referenced by main(), plaq_test(), and SU3test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDims()

void setDims ( int *  X)

Definition at line 151 of file test_util.cpp.

References E, E1, E1h, E2, E3, E4, faceVolume, V, V_ex, Vh, Vh_ex, Vs_t, Vs_x, Vs_y, Vs_z, Vsh_t, Vsh_x, Vsh_y, Vsh_z, and Z.

Referenced by eigensolve_test(), gauge_force_test(), hisq_force_init(), hisq_test(), init(), invert_test(), llfat_test(), main(), plaq_test(), GaugeAlgTest::SetUp(), SU3test(), and unitarize_link_test().

Here is the caller graph for this function:

◆ setSpinorSiteSize()

void setSpinorSiteSize ( int  n)

Definition at line 211 of file test_util.cpp.

References mySpinorSiteSize.

Referenced by eigensolve_test(), init(), invert_test(), and main().

Here is the caller graph for this function:

◆ stopwatchReadSeconds()

double stopwatchReadSeconds ( )

Definition at line 4423 of file test_util.cpp.

References startTime.

Referenced by packTest().

Here is the caller graph for this function:

◆ stopwatchStart()

void stopwatchStart ( )

Definition at line 4419 of file test_util.cpp.

References startTime.

Referenced by packTest().

Here is the caller graph for this function:

◆ strong_check_link()

int strong_check_link ( void **  linkA,
const char *  msgA,
void **  linkB,
const char *  msgB,
int  len,
QudaPrecision  prec 
)

Definition at line 1429 of file test_util.cpp.

References compare_link(), printfQuda, and printLinkElement().

Referenced by hisq_test(), and llfat_test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ strong_check_mom()

int strong_check_mom ( void *  momA,
void *  momB,
int  len,
QudaPrecision  prec 
)

Definition at line 1559 of file test_util.cpp.

References compare_mom(), device, printfQuda, printMomElement(), and QUDA_DOUBLE_PRECISION.

Referenced by gauge_force_test(), and hisq_force_test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ su3_construct()

void su3_construct ( void *  mat,
QudaReconstructType  reconstruct,
QudaPrecision  precision 
)

Definition at line 322 of file test_util.cpp.

References QUDA_DOUBLE_PRECISION, QUDA_RECONSTRUCT_12, su3Construct12(), and su3Construct8().

Here is the call graph for this function:

◆ su3_reconstruct()

void su3_reconstruct ( void *  mat,
int  dir,
int  ga_idx,
QudaReconstructType  reconstruct,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 412 of file test_util.cpp.

References QUDA_DOUBLE_PRECISION, QUDA_RECONSTRUCT_12, su3Reconstruct12(), and su3Reconstruct8().

Here is the call graph for this function:

◆ su3Construct12()

template<typename Float >
void su3Construct12 ( Float *  mat)
inline

Definition at line 304 of file test_util.cpp.

Referenced by su3_construct().

Here is the caller graph for this function:

◆ su3Construct8()

template<typename Float >
void su3Construct8 ( Float *  mat)
inline

Definition at line 316 of file test_util.cpp.

References quda::atan2().

Referenced by su3_construct().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ su3Reconstruct12()

template<typename Float >
static void su3Reconstruct12 ( Float *  mat,
int  dir,
int  ga_idx,
QudaGaugeParam param 
)
static

Definition at line 337 of file test_util.cpp.

References accumulateConjugateProduct(), QudaGaugeParam_s::anisotropy, QudaGaugeParam_s::t_boundary, and Z.

Referenced by su3_reconstruct().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ su3Reconstruct8()

template<typename Float >
static void su3Reconstruct8 ( Float *  mat,
int  dir,
int  ga_idx,
QudaGaugeParam param 
)
static

Definition at line 354 of file test_util.cpp.

References accumulateComplexProduct(), QudaGaugeParam_s::anisotropy, complexConjugateProduct(), complexDotProduct(), quda::cos(), quda::sin(), quda::sqrt(), QudaGaugeParam_s::t_boundary, and Z.

Referenced by su3_reconstruct().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ usage()

void usage ( char **  argv)

Definition at line 1783 of file test_util.cpp.

References usage_extra().

Referenced by display_test_info(), main(), packTest(), plaq_test(), process_command_line_option(), setGaugeParam(), and SU3test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ x4_from_full_index()

int x4_from_full_index ( int  i)

Definition at line 692 of file test_util.cpp.

References fullLatticeIndex(), Vh, and Z.

Here is the call graph for this function:

Variable Documentation

◆ alternative_reliable

bool alternative_reliable = false

◆ anisotropy

double anisotropy = 1.0

◆ ca_basis

◆ ca_lambda_max

double ca_lambda_max = -1.0

◆ ca_lambda_min

double ca_lambda_min = 0.0

◆ clover_coeff

double clover_coeff = 0.1

◆ coarse_solve_type

QudaSolveType coarse_solve_type[QUDA_MAX_MG_LEVEL] = { }

Definition at line 1677 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ coarse_solver

QudaInverterType coarse_solver[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_ca_basis

QudaCABasis coarse_solver_ca_basis[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_ca_basis_size

int coarse_solver_ca_basis_size[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_ca_lambda_max

double coarse_solver_ca_lambda_max[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_ca_lambda_min

double coarse_solver_ca_lambda_min[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_maxiter

int coarse_solver_maxiter[QUDA_MAX_MG_LEVEL] = { }

◆ coarse_solver_tol

double coarse_solver_tol[QUDA_MAX_MG_LEVEL] = { }

◆ compute_clover

bool compute_clover = false

Definition at line 1654 of file test_util.cpp.

Referenced by init(), main(), printQudaCloverParam(), and process_command_line_option().

◆ compute_fatlong

bool compute_fatlong = false

◆ contract_type

Definition at line 1772 of file test_util.cpp.

Referenced by process_command_line_option().

◆ dagger

◆ deflation_ext_lib

QudaExtLibType deflation_ext_lib = QUDA_EIGEN_EXTLIB

Definition at line 1718 of file test_util.cpp.

Referenced by process_command_line_option(), and setDeflationParam().

◆ deflation_grid

int deflation_grid = 16

◆ device

int device = 0

◆ dim_partitioned

int dim_partitioned[4] = {0,0,0,0}
static

Definition at line 1774 of file test_util.cpp.

Referenced by dimPartitioned(), and process_command_line_option().

◆ dslash_type

◆ E

int E[4]

◆ E1

int E1

◆ E1h

int E1h

◆ E2

int E2

◆ E3

int E3

◆ E4

int E4

Definition at line 34 of file test_util.cpp.

Referenced by Locator< oddBit >::getNeighborFromFullIndex(), and setDims().

◆ eig_amax

double eig_amax = 4.0

Definition at line 1733 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_amin

double eig_amin = 0.1

Definition at line 1732 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_arpack_check

bool eig_arpack_check = false

Definition at line 1739 of file test_util.cpp.

Referenced by process_command_line_option(), and setEigParam().

◆ eig_arpack_logfile

char eig_arpack_logfile[256] = "arpack_logfile.log"

Definition at line 1740 of file test_util.cpp.

Referenced by process_command_line_option(), and setEigParam().

◆ eig_check_interval

int eig_check_interval = 10

Definition at line 1727 of file test_util.cpp.

Referenced by process_command_line_option(), and setEigParam().

◆ eig_compute_svd

bool eig_compute_svd = false

Definition at line 1736 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_max_restarts

int eig_max_restarts = 1000

Definition at line 1728 of file test_util.cpp.

Referenced by process_command_line_option(), and setEigParam().

◆ eig_nConv

int eig_nConv = -1

◆ eig_nEv

int eig_nEv = 16

Definition at line 1723 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_nKr

int eig_nKr = 32

Definition at line 1724 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_poly_deg

int eig_poly_deg = 100

Definition at line 1731 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_QUDA_logfile

char eig_QUDA_logfile[256] = "QUDA_logfile.log"

Definition at line 1741 of file test_util.cpp.

Referenced by process_command_line_option(), and setEigParam().

◆ eig_require_convergence

bool eig_require_convergence = true

Definition at line 1726 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_spectrum

Definition at line 1737 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_tol

double eig_tol = 1e-6

Definition at line 1729 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_type

◆ eig_use_dagger

bool eig_use_dagger = false

Definition at line 1735 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_use_normop

bool eig_use_normop = true

Definition at line 1734 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_use_poly_acc

bool eig_use_poly_acc = true

Definition at line 1730 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ eig_vec_infile

char eig_vec_infile[256] = ""

Definition at line 1742 of file test_util.cpp.

Referenced by process_command_line_option(), setDeflationParam(), and setEigParam().

◆ eig_vec_outfile

char eig_vec_outfile[256] = ""

Definition at line 1743 of file test_util.cpp.

Referenced by process_command_line_option(), setDeflationParam(), and setEigParam().

◆ eigcg_max_restarts

int eigcg_max_restarts = 3

◆ eigenval_tol

double eigenval_tol = 1e-1

◆ eps_naik

double eps_naik = 0.0

◆ epsilon

double epsilon = 0.01

◆ faceVolume

int faceVolume[4]

◆ fat_link_max

float fat_link_max

◆ gauge_outfile

char gauge_outfile[256] = ""

Definition at line 1626 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ gaussian_sigma

double gaussian_sigma = 0.2

Definition at line 1625 of file test_util.cpp.

Referenced by plaq_test(), and process_command_line_option().

◆ gcrNkrylov

int gcrNkrylov = 10

◆ generate_all_levels

bool generate_all_levels = true

◆ generate_nullspace

bool generate_nullspace = true

Definition at line 1701 of file test_util.cpp.

Referenced by process_command_line_option(), and setMultigridParam().

◆ geo_block_size

int geo_block_size[QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM] = { }

◆ gridsize_from_cmdline

int gridsize_from_cmdline[4] = {1,1,1,1}

For MPI, the default node mapping is lexicographical with t varying fastest.

Definition at line 49 of file test_util.cpp.

Referenced by dimPartitioned(), lex_rank_from_coords_t(), lex_rank_from_coords_x(), main(), plaq_test(), process_command_line_option(), and SU3test().

◆ heatbath_beta_value

double heatbath_beta_value = 6.2

Definition at line 1765 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ heatbath_coldstart

bool heatbath_coldstart = false

Definition at line 1770 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ heatbath_num_heatbath_per_step

int heatbath_num_heatbath_per_step = 5

Definition at line 1768 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ heatbath_num_overrelax_per_step

int heatbath_num_overrelax_per_step = 5

Definition at line 1769 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ heatbath_num_steps

int heatbath_num_steps = 10

Definition at line 1767 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ heatbath_warmup_steps

int heatbath_warmup_steps = 10

Definition at line 1766 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ inc_tol

double inc_tol = 1e-2

◆ inv_type

QudaInverterType inv_type

◆ kappa

double kappa = -1.0

◆ laplace3D

int laplace3D = 4

◆ latfile

char latfile[256] = ""

◆ link_recon

◆ link_recon_precondition

QudaReconstructType link_recon_precondition = QUDA_RECONSTRUCT_INVALID

Definition at line 1607 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setGaugeParam().

◆ link_recon_sloppy

◆ location_ritz

◆ low_mode_check

bool low_mode_check = false

◆ Ls

int Ls

◆ Lsdim

int Lsdim = 16

◆ mass

double mass = 0.1

◆ matpc_type

◆ max_restart_num

int max_restart_num = 3

◆ max_search_dim

int max_search_dim = 64

◆ mem_type_ritz

◆ mg_eig

bool mg_eig[QUDA_MAX_MG_LEVEL] = {}

◆ mg_eig_amax

double mg_eig_amax[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1758 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_amin

double mg_eig_amin[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1757 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_check_interval

int mg_eig_check_interval[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1752 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setEigParam().

◆ mg_eig_coarse_guess

bool mg_eig_coarse_guess = false

Definition at line 1763 of file test_util.cpp.

Referenced by setMultigridParam().

◆ mg_eig_max_restarts

int mg_eig_max_restarts[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1753 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setEigParam().

◆ mg_eig_nEv

int mg_eig_nEv[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1749 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ mg_eig_nKr

int mg_eig_nKr[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1750 of file test_util.cpp.

Referenced by display_test_info(), process_command_line_option(), and setEigParam().

◆ mg_eig_poly_deg

int mg_eig_poly_deg[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1756 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_require_convergence

bool mg_eig_require_convergence[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1751 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_spectrum

QudaEigSpectrumType mg_eig_spectrum[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1761 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_tol

double mg_eig_tol[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1754 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_type

QudaEigType mg_eig_type[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1762 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_use_dagger

bool mg_eig_use_dagger[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1760 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_use_normop

bool mg_eig_use_normop[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1759 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_eig_use_poly_acc

bool mg_eig_use_poly_acc[QUDA_MAX_MG_LEVEL] = {}

Definition at line 1755 of file test_util.cpp.

Referenced by display_test_info(), main(), process_command_line_option(), and setEigParam().

◆ mg_levels

int mg_levels = 2

◆ mg_vec_infile

char mg_vec_infile[QUDA_MAX_MG_LEVEL][256]

Definition at line 1638 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ mg_vec_outfile

char mg_vec_outfile[QUDA_MAX_MG_LEVEL][256]

Definition at line 1639 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ mg_verbosity

QudaVerbosity mg_verbosity[QUDA_MAX_MG_LEVEL] = { }

◆ Msrc

int Msrc = 1

Definition at line 1628 of file test_util.cpp.

Referenced by benchmark(), freeFields(), initFields(), process_command_line_option(), and test().

◆ mu

double mu = 0.1

◆ mu_factor

double mu_factor[QUDA_MAX_MG_LEVEL] = { }

◆ multishift

int multishift = 0

Definition at line 1642 of file test_util.cpp.

Referenced by display_test_info(), main(), and process_command_line_option().

◆ mySpinorSiteSize

int mySpinorSiteSize

Definition at line 42 of file test_util.cpp.

Referenced by setSpinorSiteSize().

◆ n_block_ortho

int n_block_ortho[QUDA_MAX_MG_LEVEL] = {}

◆ nev

int nev = 8

◆ niter

int niter = 100

◆ normalization

◆ Nsrc

int Nsrc = 1

◆ nu_post

int nu_post[QUDA_MAX_MG_LEVEL] = { }

◆ nu_pre

int nu_pre[QUDA_MAX_MG_LEVEL] = { }

◆ num_setup_iter

int num_setup_iter[QUDA_MAX_MG_LEVEL] = { }

◆ nvec

int nvec[QUDA_MAX_MG_LEVEL] = { }

◆ oblique_proj_check

bool oblique_proj_check = false

Definition at line 1645 of file test_util.cpp.

Referenced by process_command_line_option(), and setMultigridParam().

◆ omega

double omega = 0.85

◆ pipeline

int pipeline = 0

◆ post_orthonormalize

bool post_orthonormalize = true

◆ pre_orthonormalize

bool pre_orthonormalize = false

◆ prec

◆ prec_null

Definition at line 1612 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ prec_precondition

Definition at line 1611 of file test_util.cpp.

Referenced by main(), and process_command_line_option().

◆ prec_refinement_sloppy

QudaPrecision prec_refinement_sloppy = QUDA_INVALID_PRECISION

Definition at line 1610 of file test_util.cpp.

Referenced by main(), process_command_line_option(), setGaugeParam(), and setInvertParam().

◆ prec_ritz

Definition at line 1613 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setDeflationParam().

◆ prec_sloppy

◆ precon_type

Definition at line 1641 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setInvertParam().

◆ rank_order

int rank_order = 0
static

Definition at line 86 of file test_util.cpp.

Referenced by initComms(), and process_command_line_option().

◆ reliable_delta

double reliable_delta = 0.1

◆ schwarz_cycle

int schwarz_cycle[QUDA_MAX_MG_LEVEL] = { }

Definition at line 1704 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ schwarz_type

QudaSchwarzType schwarz_type[QUDA_MAX_MG_LEVEL] = { }

◆ setup_ca_basis

QudaCABasis setup_ca_basis[QUDA_MAX_MG_LEVEL] = { }

◆ setup_ca_basis_size

int setup_ca_basis_size[QUDA_MAX_MG_LEVEL] = { }

◆ setup_ca_lambda_max

double setup_ca_lambda_max[QUDA_MAX_MG_LEVEL] = { }

◆ setup_ca_lambda_min

double setup_ca_lambda_min[QUDA_MAX_MG_LEVEL] = { }

◆ setup_inv

Definition at line 1676 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ setup_location

QudaFieldLocation setup_location[QUDA_MAX_MG_LEVEL] = { }

◆ setup_maxiter

int setup_maxiter[QUDA_MAX_MG_LEVEL] = { }

◆ setup_maxiter_refresh

int setup_maxiter_refresh[QUDA_MAX_MG_LEVEL] = { }

◆ setup_tol

double setup_tol[QUDA_MAX_MG_LEVEL] = { }

◆ setup_type

◆ smoother_halo_prec

QudaPrecision smoother_halo_prec = QUDA_INVALID_PRECISION

Definition at line 1694 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ smoother_solve_type

QudaSolveType smoother_solve_type[QUDA_MAX_MG_LEVEL] = { }

◆ smoother_tol

double smoother_tol[QUDA_MAX_MG_LEVEL] = { }

◆ smoother_type

QudaInverterType smoother_type[QUDA_MAX_MG_LEVEL] = { }

Definition at line 1693 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ solution_accumulator_pipeline

int solution_accumulator_pipeline = 0

◆ solution_type

◆ solve_type

◆ solver_ext_lib

Definition at line 1717 of file test_util.cpp.

Referenced by process_command_line_option(), and setInvertParam().

◆ solver_location

QudaFieldLocation solver_location[QUDA_MAX_MG_LEVEL] = { }

Definition at line 1668 of file test_util.cpp.

Referenced by main(), process_command_line_option(), and setMultigridParam().

◆ startTime

struct timeval startTime
static

Definition at line 4417 of file test_util.cpp.

Referenced by stopwatchReadSeconds(), and stopwatchStart().

◆ tadpole_factor

double tadpole_factor = 1.0

Definition at line 1651 of file test_util.cpp.

Referenced by hisq_test(), process_command_line_option(), and setActionPaths().

◆ tdim

int tdim = 24

◆ test_type

int test_type = 0

◆ tol

double tol = 1e-7

Definition at line 1656 of file test_util.cpp.

Referenced by process_command_line_option().

◆ tol_hq

double tol_hq = 0.

◆ tol_restart

double tol_restart = 5e+3*tol

◆ twist_flavor

◆ unit_gauge

bool unit_gauge = false

Definition at line 1624 of file test_util.cpp.

Referenced by init(), main(), process_command_line_option(), and SU3test().

◆ V

int V

Definition at line 27 of file test_util.cpp.

Referenced by add_3f_force_to_mom(), add_force_to_momentum(), applyGaugeFieldScaling_long(), quda::BlockOrthogonalize(), checkGauge(), clover_mat(), compute_path_product(), computeFatLongGPU(), computeFatLongGPUandCPU(), computeHISQLinksCPU(), computeHISQLinksGPU(), computeLinkOrderedOuterProduct(), computeLongLinkCPU(), construct_fat_long_gauge_field(), constructCloverField(), contractColor(), contractDegrandRossi(), contraction_reference(), createHwCPU(), createMomCPU(), createNoisyLinkCPU(), createSiteLinkCPU(), do_color_matrix_hisq_force_reference(), do_halfwilson_hisq_force_reference(), dw_setDims(), eigensolve_test(), forward_shifted_outer_prod(), forwardShiftedOuterProduct(), gauge_force_reference_dir(), gauge_force_test(), genericBlas(), genericReduce(), hisq_test(), indexFromFaceIndexExtendedStaggered(), init(), invert_test(), llfat_compute_gen_staple_field(), llfat_cpu(), llfat_reference(), llfat_test(), quda::Deflation::loadVectors(), quda::EigenSolver::loadVectors(), main(), quda::blas::MultiReduceCuda< NXZ, doubleN, ReduceType, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Reducer >::MultiReduceCuda(), quda::blas::nativeBlas(), quda::blas::nativeReduce(), ndegTwistGamma5(), quda::MPCG::operator()(), quda::Transfer::P(), plaq_test(), quda::Transfer::R(), reorderMILCtoQDP(), reorderQDPtoMILC(), quda::rotateCoarseColor(), quda::Deflation::saveVectors(), quda::EigenSolver::saveVectors(), set_identity(), setDims(), quda::Transfer::setTransferGPU(), setup_dims(), shifted_outer_prod(), shiftedOuterProduct(), SU3test(), test(), tm_mat(), tmc_mat(), total_staple_io_flops(), twistGamma5(), u_shift_hw(), u_shift_mat(), unitarize_link_test(), update_mom(), and wil_mat().

◆ V5

int V5

Definition at line 39 of file test_util.cpp.

Referenced by dw_4d_mat(), dw_mat(), dw_matdagmat(), and dw_setDims().

◆ V5h

int V5h

◆ V_ex

int V_ex

Definition at line 36 of file test_util.cpp.

Referenced by computeHISQLinksCPU(), gauge_force_test(), llfat_test(), and setDims().

◆ verbosity

◆ verify_results

bool verify_results = true

◆ Vh

int Vh

◆ Vh_ex

int Vh_ex

◆ Vs_t

int Vs_t

◆ Vs_x

int Vs_x

◆ Vs_y

int Vs_y

◆ Vs_z

int Vs_z

◆ Vsh_t

int Vsh_t

◆ Vsh_x

int Vsh_x

Definition at line 30 of file test_util.cpp.

Referenced by do_exchange_cpu_staple(), llfat_reference(), setDims(), and setup_dims().

◆ Vsh_y

int Vsh_y

Definition at line 30 of file test_util.cpp.

Referenced by do_exchange_cpu_staple(), llfat_reference(), setDims(), and setup_dims().

◆ Vsh_z

int Vsh_z

Definition at line 30 of file test_util.cpp.

Referenced by do_exchange_cpu_staple(), llfat_reference(), setDims(), and setup_dims().

◆ xdim

int xdim = 24

◆ ydim

int ydim = 24

◆ Z

int Z[4]

◆ zdim

int zdim = 24