QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Macros | Functions | Variables
staggered_dslash_test.cpp File Reference
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <quda.h>
#include <quda_internal.h>
#include <dirac_quda.h>
#include <dslash_quda.h>
#include <invert_quda.h>
#include <util_quda.h>
#include <blas_quda.h>
#include <misc.h>
#include <test_util.h>
#include <dslash_util.h>
#include <staggered_dslash_reference.h>
#include <staggered_gauge_utils.h>
#include <llfat_reference.h>
#include <gauge_field.h>
#include <unitarization_links.h>
#include <qio_field.h>
#include <assert.h>
#include <gtest/gtest.h>
Include dependency graph for staggered_dslash_test.cpp:

Go to the source code of this file.

Classes

struct  DslashTime
 

Macros

#define MAX(a, b)   ((a)>(b)?(a):(b))
 
#define staggeredSpinorSiteSize   6
 

Functions

void usage (char **argv)
 
double getTolerance (QudaPrecision prec)
 
void setGaugeParam (QudaGaugeParam &gaugeParam)
 
void setInvertParam (QudaInvertParam &inv_param)
 
void init ()
 
void end ()
 
DslashTime dslashCUDA (int niter)
 
void staggeredDslashRef ()
 
 TEST (dslash, verify)
 
static int dslashTest ()
 
void display_test_info ()
 
void usage_extra (char **argv)
 
int main (int argc, char **argv)
 

Variables

int test_type
 
void * qdp_inlink [4] = { nullptr, nullptr, nullptr, nullptr }
 
QudaGaugeParam gaugeParam
 
QudaInvertParam inv_param
 
cpuGaugeFieldcpuFat = NULL
 
cpuGaugeFieldcpuLong = NULL
 
cpuColorSpinorFieldspinor
 
cpuColorSpinorFieldspinorOut
 
cpuColorSpinorFieldspinorRef
 
cpuColorSpinorFieldtmpCpu
 
cudaColorSpinorFieldcudaSpinor
 
cudaColorSpinorFieldcudaSpinorOut
 
cudaColorSpinorFieldtmp
 
void * qdp_fatlink_cpu [4]
 
void * qdp_longlink_cpu [4]
 
void ** ghost_fatlink_cpu
 
void ** ghost_longlink_cpu
 
QudaParity parity = QUDA_EVEN_PARITY
 
QudaDagType dagger
 
int xdim
 
int ydim
 
int zdim
 
int tdim
 
int gridsize_from_cmdline []
 
QudaReconstructType link_recon
 
QudaPrecision prec
 
QudaPrecision cpu_prec
 
QudaReconstructType link_recon_sloppy
 
QudaPrecision prec_sloppy
 
QudaDslashType dslash_type
 
int device
 
bool verify_results
 
int niter
 
double mass
 
double kappa
 
int laplace3D
 
bool compute_fatlong
 
double eps_naik
 
static int n_naiks = 1
 
char latfile []
 
int X [4]
 
int Nsrc
 
QudaVerbosity verbosity
 
Diracdirac
 
int argc_copy
 
char ** argv_copy
 

Macro Definition Documentation

◆ MAX

#define MAX (   a,
 
)    ((a)>(b)?(a):(b))

Definition at line 30 of file staggered_dslash_test.cpp.

Referenced by init(), setGaugeParam(), and setInvertParam().

◆ staggeredSpinorSiteSize

#define staggeredSpinorSiteSize   6

Definition at line 32 of file staggered_dslash_test.cpp.

Referenced by init().

Function Documentation

◆ display_test_info()

void display_test_info ( )

Definition at line 606 of file staggered_dslash_test.cpp.

References dagger, dimPartitioned(), get_prec_str(), get_recon_str(), link_recon, prec, printfQuda, tdim, test_type, xdim, ydim, and zdim.

Referenced by main().

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

◆ dslashCUDA()

DslashTime dslashCUDA ( int  niter)

Definition at line 436 of file staggered_dslash_test.cpp.

References comm_barrier(), DslashTime::cpu_max, DslashTime::cpu_min, DslashTime::cpu_time, quda::Dirac::Dslash(), end(), errorQuda, DslashTime::event_time, quda::Dirac::M(), niter, parity, and test_type.

Referenced by dslashTest().

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

◆ dslashTest()

static int dslashTest ( )
static

◆ end()

void end ( void  )

Definition at line 389 of file staggered_dslash_test.cpp.

References commDimPartitionedReset(), cpuFat, cpuLong, cudaSpinor, cudaSpinorOut, dirac, endQuda(), freeGaugeQuda(), qdp_fatlink_cpu, qdp_longlink_cpu, spinor, spinorOut, spinorRef, tmp, and tmpCpu.

Referenced by dslashCUDA(), and dslashTest().

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

◆ getTolerance()

double getTolerance ( QudaPrecision  prec)

Definition at line 92 of file staggered_dslash_test.cpp.

References QUDA_DOUBLE_PRECISION, QUDA_HALF_PRECISION, QUDA_INVALID_PRECISION, QUDA_QUARTER_PRECISION, and QUDA_SINGLE_PRECISION.

Referenced by TEST().

Here is the caller graph for this function:

◆ init()

void init ( )

Definition at line 175 of file staggered_dslash_test.cpp.

References applyGaugeFieldScaling_long(), argc_copy, argv_copy, checkCudaError, compute_fatlong, computeFatLongGPUandCPU(), construct_fat_long_gauge_field(), construct_gauge_field(), QudaGaugeParam_s::cpu_prec, QudaInvertParam_s::cpu_prec, quda::ColorSpinorParam::create, quda::Dirac::create(), csParam, QudaInvertParam_s::cuda_prec, device, dslash_type, dw_setDims(), eps_naik, errorQuda, quda::ColorSpinorParam::fieldOrder, QudaGaugeParam_s::ga_pad, QudaInvertParam_s::gamma_basis, quda::ColorSpinorParam::gammaBasis, gaugeSiteSize, quda::GaugeField::Ghost(), ghost_fatlink_cpu, ghost_longlink_cpu, quda::LatticeFieldParam::ghostExchange, gSize, initQuda(), latfile, link_recon, loadGaugeQuda(), MAX, memset(), n_naiks, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, newQudaGaugeParam(), newQudaInvertParam(), quda::ColorSpinorParam::nSpin, Nsrc, quda::LatticeFieldParam::pad, qdp_fatlink_cpu, qdp_inlink, qdp_longlink_cpu, QUDA_ASQTAD_DSLASH, QUDA_ASQTAD_FAT_LINKS, QUDA_ASQTAD_LONG_LINKS, QUDA_DOUBLE_PRECISION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_FLOAT2_FIELD_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_PAD, QUDA_LAPLACE_DSLASH, QUDA_MAT_SOLUTION, QUDA_PARITY_SITE_SUBSET, QUDA_RANDOM_SOURCE, QUDA_RECONSTRUCT_12, QUDA_RECONSTRUCT_13, QUDA_RECONSTRUCT_8, QUDA_RECONSTRUCT_9, QUDA_RECONSTRUCT_NO, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, QUDA_STAGGERED_DSLASH, QUDA_STAGGERED_PHASE_NO, QUDA_SU3_LINKS, QUDA_ZERO_FIELD_CREATE, read_gauge_field(), QudaGaugeParam_s::reconstruct, QudaGaugeParam_s::reconstruct_sloppy, reorderQDPtoMILC(), setDims(), quda::setDiracParam(), setGaugeParam(), setInvertParam(), quda::ColorSpinorParam::setPrecision(), setSpinorSiteSize(), setVerbosity(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, QudaInvertParam_s::solution_type, quda::cpuColorSpinorField::Source(), QudaInvertParam_s::sp_pad, spinor, QudaGaugeParam_s::staggered_phase_type, staggeredSpinorSiteSize, test_type, tmp, quda::DiracParam::tmp1, QudaGaugeParam_s::type, V, verbosity, Vh, QudaGaugeParam_s::X, quda::LatticeFieldParam::x, and X.

Referenced by dslashTest().

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

◆ main()

int main ( int  argc,
char **  argv 
)

◆ setGaugeParam()

void setGaugeParam ( QudaGaugeParam gaugeParam)

◆ setInvertParam()

void setInvertParam ( QudaInvertParam inv_param)

◆ staggeredDslashRef()

void staggeredDslashRef ( )

◆ TEST()

TEST ( dslash  ,
verify   
)

Definition at line 524 of file staggered_dslash_test.cpp.

References quda::cpuColorSpinorField::Compare(), getTolerance(), quda::pow(), prec, and tol.

Here is the call graph for this function:

◆ usage()

void usage ( char **  argv)

Definition at line 1783 of file test_util.cpp.

Referenced by main().

Here is the caller graph for this function:

◆ usage_extra()

void usage_extra ( char **  argv)

Definition at line 619 of file staggered_dslash_test.cpp.

References printfQuda.

Variable Documentation

◆ argc_copy

int argc_copy

Definition at line 89 of file staggered_dslash_test.cpp.

Referenced by init(), and main().

◆ argv_copy

char** argv_copy

Definition at line 90 of file staggered_dslash_test.cpp.

Referenced by init(), and main().

◆ compute_fatlong

bool compute_fatlong

Definition at line 1655 of file test_util.cpp.

Referenced by init(), and main().

◆ cpu_prec

QudaPrecision cpu_prec

◆ cpuFat

cpuGaugeField* cpuFat = NULL

Definition at line 44 of file staggered_dslash_test.cpp.

Referenced by end().

◆ cpuLong

cpuGaugeField* cpuLong = NULL

Definition at line 45 of file staggered_dslash_test.cpp.

Referenced by end().

◆ cudaSpinor

cudaColorSpinorField* cudaSpinor

Definition at line 48 of file staggered_dslash_test.cpp.

Referenced by end().

◆ cudaSpinorOut

cudaColorSpinorField * cudaSpinorOut

Definition at line 48 of file staggered_dslash_test.cpp.

Referenced by dslashTest(), and end().

◆ dagger

QudaDagType dagger

◆ device

int device

Definition at line 1602 of file test_util.cpp.

Referenced by init().

◆ dirac

Dirac* dirac

Definition at line 86 of file staggered_dslash_test.cpp.

Referenced by end().

◆ dslash_type

QudaDslashType dslash_type

Definition at line 1621 of file test_util.cpp.

Referenced by init(), main(), setGaugeParam(), setInvertParam(), and staggeredDslashRef().

◆ eps_naik

double eps_naik

Definition at line 1652 of file test_util.cpp.

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

◆ gaugeParam

QudaGaugeParam gaugeParam

Definition at line 41 of file staggered_dslash_test.cpp.

◆ ghost_fatlink_cpu

void** ghost_fatlink_cpu

Definition at line 53 of file staggered_dslash_test.cpp.

Referenced by init(), and staggeredDslashRef().

◆ ghost_longlink_cpu

void ** ghost_longlink_cpu

Definition at line 53 of file staggered_dslash_test.cpp.

Referenced by init(), and staggeredDslashRef().

◆ gridsize_from_cmdline

int gridsize_from_cmdline[]

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

Definition at line 49 of file test_util.cpp.

Referenced by main().

◆ inv_param

QudaInvertParam inv_param

Definition at line 42 of file staggered_dslash_test.cpp.

◆ kappa

double kappa

Definition at line 1647 of file test_util.cpp.

Referenced by setInvertParam(), and staggeredDslashRef().

◆ laplace3D

int laplace3D

Definition at line 1622 of file test_util.cpp.

Referenced by setInvertParam().

◆ latfile

char latfile[]

Definition at line 1623 of file test_util.cpp.

Referenced by init(), and main().

◆ link_recon

QudaReconstructType link_recon

Definition at line 1605 of file test_util.cpp.

Referenced by display_test_info(), init(), and setGaugeParam().

◆ link_recon_sloppy

QudaReconstructType link_recon_sloppy

Definition at line 1606 of file test_util.cpp.

◆ mass

double mass

Definition at line 1646 of file test_util.cpp.

Referenced by setInvertParam(), and staggeredDslashRef().

◆ n_naiks

int n_naiks = 1
static

Definition at line 77 of file staggered_dslash_test.cpp.

Referenced by init(), and main().

◆ niter

int niter

Definition at line 1629 of file test_util.cpp.

Referenced by dslashCUDA(), and dslashTest().

◆ Nsrc

int Nsrc

Definition at line 1627 of file test_util.cpp.

Referenced by init().

◆ parity

Definition at line 55 of file staggered_dslash_test.cpp.

Referenced by dslashCUDA(), and staggeredDslashRef().

◆ prec

Definition at line 1608 of file test_util.cpp.

Referenced by display_test_info(), main(), setGaugeParam(), setInvertParam(), and TEST().

◆ prec_sloppy

QudaPrecision prec_sloppy

Definition at line 1609 of file test_util.cpp.

◆ qdp_fatlink_cpu

void* qdp_fatlink_cpu[4]

Definition at line 52 of file staggered_dslash_test.cpp.

Referenced by dslashTest(), end(), init(), and staggeredDslashRef().

◆ qdp_inlink

void* qdp_inlink[4] = { nullptr, nullptr, nullptr, nullptr }

Definition at line 39 of file staggered_dslash_test.cpp.

Referenced by init().

◆ qdp_longlink_cpu

void * qdp_longlink_cpu[4]

Definition at line 52 of file staggered_dslash_test.cpp.

Referenced by dslashTest(), end(), init(), and staggeredDslashRef().

◆ spinor

Definition at line 47 of file staggered_dslash_test.cpp.

Referenced by end(), and init().

◆ spinorOut

cpuColorSpinorField * spinorOut

Definition at line 47 of file staggered_dslash_test.cpp.

Referenced by end().

◆ spinorRef

cpuColorSpinorField * spinorRef

Definition at line 47 of file staggered_dslash_test.cpp.

Referenced by end().

◆ tdim

int tdim

Definition at line 1618 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ test_type

int test_type

Definition at line 1636 of file test_util.cpp.

Referenced by display_test_info(), dslashCUDA(), init(), main(), and staggeredDslashRef().

◆ tmp

Definition at line 49 of file staggered_dslash_test.cpp.

Referenced by end(), and init().

◆ tmpCpu

Definition at line 47 of file staggered_dslash_test.cpp.

Referenced by end().

◆ verbosity

QudaVerbosity verbosity

Definition at line 1614 of file test_util.cpp.

Referenced by init(), and setInvertParam().

◆ verify_results

bool verify_results

Definition at line 1643 of file test_util.cpp.

Referenced by dslashTest().

◆ X

int X[4]

Definition at line 81 of file staggered_dslash_test.cpp.

Referenced by init(), setGaugeParam(), and setInvertParam().

◆ xdim

int xdim

Definition at line 1615 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ ydim

int ydim

Definition at line 1616 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ zdim

int zdim

Definition at line 1617 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().