QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Attributes | List of all members
quda::MR Class Reference

#include <invert_quda.h>

Inheritance diagram for quda::MR:
Inheritance graph
[legend]
Collaboration diagram for quda::MR:
Collaboration graph
[legend]

Public Member Functions

 MR (DiracMatrix &mat, DiracMatrix &matSloppy, SolverParam &param, TimeProfile &profile)
 
virtual ~MR ()
 
void operator() (ColorSpinorField &out, ColorSpinorField &in)
 
- Public Member Functions inherited from quda::Solver
 Solver (SolverParam &param, TimeProfile &profile)
 
virtual ~Solver ()
 
virtual void blocksolve (ColorSpinorField &out, ColorSpinorField &in)
 
bool convergence (double r2, double hq2, double r2_tol, double hq_tol)
 
bool convergenceHQ (double r2, double hq2, double r2_tol, double hq_tol)
 Test for HQ solver convergence – ignore L2 residual. More...
 
bool convergenceL2 (double r2, double hq2, double r2_tol, double hq_tol)
 Test for L2 solver convergence – ignore HQ residual. More...
 
void PrintStats (const char *name, int k, double r2, double b2, double hq2)
 Prints out the running statistics of the solver (requires a verbosity of QUDA_VERBOSE) More...
 
void PrintSummary (const char *name, int k, double r2, double b2, double r2_tol, double hq_tol)
 Prints out the summary of the solver convergence (requires a verbosity of QUDA_SUMMARIZE). Assumes SolverParam.true_res and SolverParam.true_res_hq has been set. More...
 
void constructDeflationSpace (const ColorSpinorField &meta, const DiracMatrix &mat, bool svd)
 Constructs the deflation space. More...
 
virtual double flops () const
 

Private Attributes

const DiracMatrixmat
 
const DiracMatrixmatSloppy
 
ColorSpinorFieldrp
 
ColorSpinorFieldr_sloppy
 
ColorSpinorFieldArp
 
ColorSpinorFieldtmpp
 
ColorSpinorFieldtmp_sloppy
 
ColorSpinorFieldx_sloppy
 
bool init
 

Additional Inherited Members

- Static Public Member Functions inherited from quda::Solver
static Solvercreate (SolverParam &param, DiracMatrix &mat, DiracMatrix &matSloppy, DiracMatrix &matPrecon, TimeProfile &profile)
 
static double stopping (double tol, double b2, QudaResidualType residual_type)
 Set the solver L2 stopping condition. More...
 
- Public Attributes inherited from quda::Solver
EigenSolvereig_solve
 
bool deflate_init = false
 
std::vector< ColorSpinorField * > defl_tmp1
 
std::vector< ColorSpinorField * > defl_tmp2
 
- Protected Attributes inherited from quda::Solver
SolverParamparam
 
TimeProfileprofile
 
int node_parity
 

Detailed Description

Definition at line 863 of file invert_quda.h.

Constructor & Destructor Documentation

◆ MR()

quda::MR::MR ( DiracMatrix mat,
DiracMatrix matSloppy,
SolverParam param,
TimeProfile profile 
)

◆ ~MR()

quda::MR::~MR ( )
virtual

Member Function Documentation

◆ operator()()

void quda::MR::operator() ( ColorSpinorField out,
ColorSpinorField in 
)
virtual

Implements quda::Solver.

Definition at line 38 of file inv_mr_quda.cpp.

References Arp, quda::blas::ax(), quda::blas::axpy(), quda::blas::caxpyXmaz(), quda::blas::caxpyXmazMR(), quda::blas::cDotProductNormA(), checkPrecision, commAsyncReductionSet(), commGlobalReductionSet(), quda::SolverParam::compute_true_res, quda::blas::copy(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), csParam, errorQuda, quda::blas::flops, quda::DiracMatrix::flops(), getVerbosity(), quda::SolverParam::gflops, quda::SolverParam::global_reduction, init, quda::SolverParam::is_preconditioner, quda::SolverParam::iter, quda::TimeProfile::Last(), mat, matSloppy, quda::SolverParam::maxiter, quda::Solver::node_parity, quda::blas::norm2(), quda::SolverParam::Nsteps, quda::SolverParam::omega, quda::Solver::param, quda::SolverParam::precision, quda::SolverParam::precision_sloppy, quda::SolverParam::preserve_source, printfQuda, quda::Solver::profile, QUDA_BOOLEAN_TRUE, QUDA_INVALID_RESIDUAL, QUDA_MULTIPLICATIVE_SCHWARZ, QUDA_NULL_FIELD_CREATE, QUDA_PRESERVE_SOURCE_NO, QUDA_PRESERVE_SOURCE_YES, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_EPILOGUE, QUDA_SUMMARIZE, QUDA_USE_INIT_GUESS_NO, QUDA_USE_INIT_GUESS_YES, QUDA_VERBOSE, r_sloppy, quda::SolverParam::residual_type, rp, quda::SolverParam::schwarz_type, quda::SolverParam::secs, quda::ColorSpinorParam::setPrecision(), quda::sqrt(), tmp, tmp_sloppy, tmpp, quda::SolverParam::tol, quda::SolverParam::true_res, quda::SolverParam::use_init_guess, x_sloppy, quda::blas::xmyNorm(), and quda::blas::zero().

Here is the call graph for this function:

Member Data Documentation

◆ Arp

ColorSpinorField* quda::MR::Arp
private

Definition at line 870 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ init

bool quda::MR::init
private

Definition at line 874 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ mat

const DiracMatrix& quda::MR::mat
private

Definition at line 866 of file invert_quda.h.

Referenced by operator()().

◆ matSloppy

const DiracMatrix& quda::MR::matSloppy
private

Definition at line 867 of file invert_quda.h.

Referenced by operator()().

◆ r_sloppy

ColorSpinorField* quda::MR::r_sloppy
private

Definition at line 869 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ rp

ColorSpinorField* quda::MR::rp
private

Definition at line 868 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ tmp_sloppy

ColorSpinorField* quda::MR::tmp_sloppy
private

Definition at line 872 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ tmpp

ColorSpinorField* quda::MR::tmpp
private

Definition at line 871 of file invert_quda.h.

Referenced by operator()(), and ~MR().

◆ x_sloppy

ColorSpinorField* quda::MR::x_sloppy
private

Definition at line 873 of file invert_quda.h.

Referenced by operator()(), and ~MR().


The documentation for this class was generated from the following files: