QUDA  0.9.0
Namespaces | Functions | Variables
deflated_invert_test.cpp File Reference
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <util_quda.h>
#include <test_util.h>
#include <dslash_util.h>
#include <blas_reference.h>
#include <wilson_dslash_reference.h>
#include <domain_wall_dslash_reference.h>
#include "misc.h"
#include <qio_field.h>
#include <quda.h>
Include dependency graph for deflated_invert_test.cpp:

Go to the source code of this file.

Namespaces

 quda
 

Functions

void usage (char **)
 
void quda::setTransferGPU (bool)
 
void display_test_info ()
 
void setGaugeParam (QudaGaugeParam &gauge_param)
 
void setInvertParam (QudaInvertParam &inv_param)
 
void setDeflationParam (QudaEigParam &df_param)
 
int main (int argc, char **argv)
 

Variables

QudaDslashType dslash_type
 
int device
 
int xdim
 
int ydim
 
int zdim
 
int tdim
 
int Lsdim
 
int gridsize_from_cmdline []
 
QudaReconstructType link_recon
 
QudaPrecision prec
 
QudaPrecision prec_sloppy
 
QudaPrecision prec_precondition
 
QudaPrecision prec_ritz
 
QudaReconstructType link_recon_sloppy
 
QudaReconstructType link_recon_precondition
 
double mass
 
double mu
 
double anisotropy
 
double tol
 
double tol_hq
 
char latfile []
 
int Nsrc
 
int niter
 
int nvec []
 
QudaInverterType inv_type
 
QudaInverterType precon_type
 
QudaMatPCType matpc_type
 
QudaSolveType solve_type
 
char vec_infile []
 
char vec_outfile []
 
QudaTwistFlavorType twist_flavor
 
double clover_coeff
 
bool compute_clover
 
int nev
 
int max_search_dim
 
int deflation_grid
 
double tol_restart
 
int eigcg_max_restarts
 
int max_restart_num
 
double inc_tol
 
double eigenval_tol
 
QudaExtLibType solver_ext_lib
 
QudaExtLibType deflation_ext_lib
 
QudaFieldLocation location_ritz
 
QudaMemoryType mem_type_ritz
 
QudaPrecisioncpu_prec = prec
 
QudaPrecisioncuda_prec = prec
 
QudaPrecisioncuda_prec_sloppy = prec_sloppy
 
QudaPrecisioncuda_prec_precondition = prec_precondition
 
QudaPrecisioncuda_prec_ritz = prec_ritz
 

Function Documentation

◆ display_test_info()

void display_test_info ( )

Definition at line 92 of file deflated_invert_test.cpp.

References dimPartitioned(), get_prec_str(), get_recon_str(), link_recon, link_recon_sloppy, Lsdim, nvec, prec, prec_sloppy, printfQuda, return(), tdim, xdim, ydim, and zdim.

Referenced by main().

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

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 294 of file deflated_invert_test.cpp.

References quda::blas::ax(), clock(), dslash_cuda_gen::clover, QudaInvertParam_s::clover_cpu_prec, QudaInvertParam_s::cloverGiB, cloverSiteSize, compute_clover, QudaInvertParam_s::compute_clover, QudaInvertParam_s::compute_clover_inverse, construct_clover_field(), construct_gauge_field(), QudaGaugeParam_s::cpu_prec, QudaInvertParam_s::cpu_prec, QudaInvertParam_s::deflation_op, destroyDeflationQuda(), device, display_test_info(), double, dslash_type, endQuda(), exit(), finalizeComms(), float, free(), freeCloverQuda(), freeGaugeQuda(), gauge_param, QudaGaugeParam_s::gaugeGiB, gaugeSiteSize, QudaInvertParam_s::gflops, gridsize_from_cmdline, gSize, fused_exterior_ndeg_tm_dslash_cuda_gen::i, initComms(), initQuda(), initRand(), inv_param, QudaEigParam_s::invert_param, invertQuda(), QudaInvertParam_s::iter, QudaInvertParam_s::kappa, latfile, link_recon, link_recon_precondition, link_recon_sloppy, loadCloverQuda(), loadGaugeQuda(), QudaInvertParam_s::Ls, malloc(), QudaInvertParam_s::mass_normalization, QudaInvertParam_s::matpc_type, memset(), QudaInvertParam_s::mu, quda::blas::mxpy(), newDeflationQuda(), newQudaEigParam(), newQudaGaugeParam(), newQudaInvertParam(), quda::norm(), norm_2(), Nsrc, prec, prec_precondition, prec_sloppy, printf(), printfQuda, process_command_line_option(), QUDA_CLOVER_WILSON_DSLASH, QUDA_DOUBLE_PRECISION, QUDA_INVALID_PRECISION, QUDA_MASS_NORMALIZATION, QUDA_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_RECONSTRUCT_INVALID, QUDA_SINGLE_PRECISION, QUDA_TWIST_SINGLET, QUDA_TWISTED_CLOVER_DSLASH, QUDA_TWISTED_MASS_DSLASH, QUDA_WILSON_DSLASH, rand(), read_gauge_field(), QudaInvertParam_s::return_clover, QudaInvertParam_s::return_clover_inverse, QudaInvertParam_s::rhs_idx, QudaInvertParam_s::secs, setDeflationParam(), setDims(), setGaugeParam(), setInvertParam(), setSpinorSiteSize(), QudaInvertParam_s::solution_type, QudaInvertParam_s::spinorGiB, spinorOut, spinorSiteSize, sqrt(), strcmp(), tm_mat(), tm_matpc(), QudaInvertParam_s::tol, QudaInvertParam_s::tol_hq, QudaInvertParam_s::true_res, QudaInvertParam_s::true_res_hq, QudaInvertParam_s::twist_flavor, usage(), V, Vh, wil_mat(), wil_matpc(), and QudaGaugeParam_s::X.

Here is the call graph for this function:

◆ setDeflationParam()

void setDeflationParam ( QudaEigParam df_param)

◆ setGaugeParam()

void setGaugeParam ( QudaGaugeParam gauge_param)

◆ setInvertParam()

void setInvertParam ( QudaInvertParam inv_param)

For deflated solvers only:

Definition at line 162 of file deflated_invert_test.cpp.

References anisotropy, QudaInvertParam_s::cl_pad, clover_coeff, QudaInvertParam_s::clover_coeff, QudaInvertParam_s::clover_cpu_prec, QudaInvertParam_s::clover_cuda_prec, QudaInvertParam_s::clover_cuda_prec_precondition, QudaInvertParam_s::clover_cuda_prec_sloppy, QudaInvertParam_s::clover_order, cpu_prec, QudaInvertParam_s::cpu_prec, cuda_prec, QudaInvertParam_s::cuda_prec, cuda_prec_precondition, QudaInvertParam_s::cuda_prec_precondition, cuda_prec_ritz, QudaInvertParam_s::cuda_prec_ritz, cuda_prec_sloppy, QudaInvertParam_s::cuda_prec_sloppy, QudaInvertParam_s::dagger, deflation_grid, QudaInvertParam_s::deflation_grid, QudaInvertParam_s::dirac_order, dslash_type, QudaInvertParam_s::dslash_type, e, eigcg_max_restarts, QudaInvertParam_s::eigcg_max_restarts, eigenval_tol, QudaInvertParam_s::eigenval_tol, exit(), QudaInvertParam_s::extlib_type, QudaInvertParam_s::gamma_basis, QudaInvertParam_s::gcrNkrylov, fused_exterior_ndeg_tm_dslash_cuda_gen::i, inc_tol, QudaInvertParam_s::inc_tol, QudaInvertParam_s::input_location, inv_param, inv_type, QudaInvertParam_s::inv_type, QudaInvertParam_s::inv_type_precondition, QudaInvertParam_s::kappa, QudaInvertParam_s::Ls, mass, QudaInvertParam_s::mass, QudaInvertParam_s::mass_normalization, matpc_type, QudaInvertParam_s::matpc_type, max_restart_num, QudaInvertParam_s::max_restart_num, max_search_dim, QudaInvertParam_s::max_search_dim, QudaInvertParam_s::maxiter, QudaInvertParam_s::maxiter_precondition, mu, QudaInvertParam_s::mu, nev, QudaInvertParam_s::nev, niter, QudaInvertParam_s::num_offset, QudaInvertParam_s::omega, QudaInvertParam_s::output_location, precon_type, QudaInvertParam_s::precondition_cycle, QudaInvertParam_s::preserve_source, printfQuda, QUDA_ADDITIVE_SCHWARZ, QUDA_CLOVER_WILSON_DSLASH, QUDA_CPU_FIELD_LOCATION, QUDA_DAG_NO, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DIRAC_ORDER, QUDA_DIRECT_PC_SOLVE, QUDA_EIGCG_INVERTER, QUDA_GMRESDR_INVERTER, QUDA_INC_EIGCG_INVERTER, QUDA_KAPPA_NORMALIZATION, QUDA_L2_RELATIVE_RESIDUAL, QUDA_MAT_SOLUTION, QUDA_NORMOP_PC_SOLVE, QUDA_PACKED_CLOVER_ORDER, QUDA_PRESERVE_SOURCE_NO, QUDA_SILENT, QUDA_TWIST_NONDEG_DOUBLET, QUDA_TWISTED_CLOVER_DSLASH, QUDA_TWISTED_MASS_DSLASH, QUDA_VERBOSE, QudaInvertParam_s::reliable_delta, QudaInvertParam_s::residual_type, QudaInvertParam_s::rhs_idx, QudaInvertParam_s::schwarz_type, QudaInvertParam_s::solution_type, solve_type, QudaInvertParam_s::solve_type, solver_ext_lib, QudaInvertParam_s::sp_pad, tol, QudaInvertParam_s::tol, tol_hq, QudaInvertParam_s::tol_hq, QudaInvertParam_s::tol_hq_offset, QudaInvertParam_s::tol_offset, QudaInvertParam_s::tol_precondition, tol_restart, QudaInvertParam_s::tol_restart, twist_flavor, QudaInvertParam_s::twist_flavor, QudaInvertParam_s::verbosity, and QudaInvertParam_s::verbosity_precondition.

Referenced by main().

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

◆ usage()

void usage ( char **  )

Definition at line 1693 of file test_util.cpp.

Referenced by main().

Here is the caller graph for this function:

Variable Documentation

◆ anisotropy

double anisotropy

◆ clover_coeff

double clover_coeff

Definition at line 1645 of file test_util.cpp.

Referenced by printQudaInvertParam(), and setInvertParam().

◆ compute_clover

bool compute_clover

Definition at line 1646 of file test_util.cpp.

Referenced by main(), and printQudaInvertParam().

◆ cpu_prec

QudaPrecision& cpu_prec = prec

Definition at line 117 of file deflated_invert_test.cpp.

Referenced by setGaugeParam(), and setInvertParam().

◆ cuda_prec

QudaPrecision& cuda_prec = prec

Definition at line 118 of file deflated_invert_test.cpp.

Referenced by setGaugeParam(), and setInvertParam().

◆ cuda_prec_precondition

QudaPrecision& cuda_prec_precondition = prec_precondition

◆ cuda_prec_ritz

QudaPrecision& cuda_prec_ritz = prec_ritz

Definition at line 121 of file deflated_invert_test.cpp.

Referenced by printQudaInvertParam(), and setInvertParam().

◆ cuda_prec_sloppy

QudaPrecision& cuda_prec_sloppy = prec_sloppy

◆ deflation_ext_lib

QudaExtLibType deflation_ext_lib

Definition at line 1680 of file test_util.cpp.

Referenced by process_command_line_option(), and setDeflationParam().

◆ deflation_grid

int deflation_grid

◆ device

int device

Definition at line 2238 of file CMakeCUDACompilerId.cpp1.ii.

Referenced by main().

◆ dslash_type

QudaDslashType dslash_type

Definition at line 1626 of file test_util.cpp.

Referenced by main(), and setInvertParam().

◆ eigcg_max_restarts

int eigcg_max_restarts

◆ eigenval_tol

double eigenval_tol

◆ gridsize_from_cmdline

int gridsize_from_cmdline[]

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

Definition at line 50 of file test_util.cpp.

Referenced by main().

◆ inc_tol

double inc_tol

◆ inv_type

QudaInverterType inv_type

Definition at line 1638 of file test_util.cpp.

Referenced by setInvertParam().

◆ latfile

char latfile[]

Definition at line 1627 of file test_util.cpp.

Referenced by main().

◆ link_recon

QudaReconstructType link_recon

Definition at line 1612 of file test_util.cpp.

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

◆ link_recon_precondition

QudaReconstructType link_recon_precondition

Definition at line 1614 of file test_util.cpp.

Referenced by main(), and setGaugeParam().

◆ link_recon_sloppy

QudaReconstructType link_recon_sloppy

Definition at line 1613 of file test_util.cpp.

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

◆ location_ritz

QudaFieldLocation location_ritz

Definition at line 1681 of file test_util.cpp.

Referenced by process_command_line_option(), and setDeflationParam().

◆ Lsdim

int Lsdim

Definition at line 1624 of file test_util.cpp.

Referenced by display_test_info().

◆ mass

double mass

Definition at line 1642 of file test_util.cpp.

Referenced by setInvertParam().

◆ matpc_type

QudaMatPCType matpc_type

◆ max_restart_num

int max_restart_num

◆ max_search_dim

int max_search_dim

◆ mem_type_ritz

QudaMemoryType mem_type_ritz

◆ mu

double mu

Definition at line 1643 of file test_util.cpp.

Referenced by quda::AddCoarseTmDiagonalCPU(), quda::AddCoarseTmDiagonalGPU(), quda::ApplyCovDev(), quda::ApplyTwistClover(), quda::ApplyTwistGamma(), quda::calculateY(), quda::CloverArg< Float, nSpin, nColor, dynamic_clover_ >::CloverArg(), quda::CoarseCoarseOp(), quda::CoarseOp(), computeAllLinkField(), computeAllLinkSite(), computeMiddleLinkField(), computeMiddleLinkSite(), computeSideLinkField(), computeSideLinkSite(), quda::computeStapleRectangle(), quda::computeTMCAV(), covdev_dslash(), covdevRef(), covdevReference(), quda::DiracWilson::createCoarseOp(), quda::DiracClover::createCoarseOp(), quda::DiracCloverPC::createCoarseOp(), do_color_matrix_hisq_force_reference(), do_halfwilson_hisq_force_reference(), doHisqStaplesForceCPU(), quda::DiracTwistedCloverPC::Dslash(), quda::GaugeCovDev::DslashCD(), dslashCUDA(), dslashTest(), quda::DiracTwistedCloverPC::DslashXpay(), quda::GammaArg< Float, nColor >::GammaArg(), quda::linkIndexM1(), quda::linkIndexP1(), quda::linkNormalIndexP1(), llfat_compute_gen_staple_field(), llfat_test(), mat(), Mat(), matdagmat(), Matdagmat(), quda::GaugeCovDev::MCD(), quda::GaugeCovDev::MdagMCD(), ndeg_twist_gamma5(), quda::ndegTwistedMassDslashCuda(), ndegTwistGamma5(), quda::MPCG::operator()(), printQudaInvertParam(), quda::ProjectSU3kernel(), setInvertParam(), side_link_3f_force(), side_link_force(), quda::ColorSpinor< Float, Nc, 4 >::sigma(), tm_dslash(), tm_mat(), tm_matpc(), tm_ndeg_dslash(), tm_ndeg_mat(), tm_ndeg_matpc(), tmc_dslash(), tmc_mat(), tmc_matpc(), twist_gamma5(), twistCloverGamma5(), quda::twistedCloverDslashCuda(), quda::twistedMassDslashCuda(), and twistGamma5().

◆ nev

int nev

◆ niter

int niter

Definition at line 1630 of file test_util.cpp.

Referenced by setInvertParam().

◆ Nsrc

int Nsrc

Definition at line 1628 of file test_util.cpp.

Referenced by main().

◆ nvec

int nvec[]

Definition at line 1635 of file test_util.cpp.

Referenced by display_test_info().

◆ prec

Definition at line 1615 of file test_util.cpp.

Referenced by display_test_info(), and main().

◆ prec_precondition

QudaPrecision prec_precondition

Definition at line 1617 of file test_util.cpp.

Referenced by loadSloppyCloverQuda(), loadSloppyGaugeQuda(), and main().

◆ prec_ritz

QudaPrecision prec_ritz

Definition at line 1618 of file test_util.cpp.

Referenced by process_command_line_option(), and setDeflationParam().

◆ prec_sloppy

QudaPrecision prec_sloppy

Definition at line 1616 of file test_util.cpp.

Referenced by display_test_info(), loadSloppyCloverQuda(), loadSloppyGaugeQuda(), and main().

◆ precon_type

QudaInverterType precon_type

Definition at line 1639 of file test_util.cpp.

Referenced by setInvertParam().

◆ solve_type

QudaSolveType solve_type

Definition at line 1653 of file test_util.cpp.

Referenced by setInvertParam().

◆ solver_ext_lib

QudaExtLibType solver_ext_lib

Definition at line 1679 of file test_util.cpp.

Referenced by process_command_line_option(), and setInvertParam().

◆ tdim

int tdim

Definition at line 1623 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ tol

double tol

◆ tol_hq

double tol_hq

Definition at line 1648 of file test_util.cpp.

Referenced by invertMultiShiftQuda(), printQudaInvertParam(), and setInvertParam().

◆ tol_restart

double tol_restart

◆ twist_flavor

QudaTwistFlavorType twist_flavor

Definition at line 1649 of file test_util.cpp.

Referenced by printQudaInvertParam(), and setInvertParam().

◆ vec_infile

char vec_infile[]

◆ vec_outfile

char vec_outfile[]

◆ xdim

int xdim

Definition at line 1620 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ ydim

int ydim

Definition at line 1621 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().

◆ zdim

int zdim

Definition at line 1622 of file test_util.cpp.

Referenced by display_test_info(), and setGaugeParam().