QUDA  0.9.0
Public Member Functions | Private Attributes | List of all members
quda::CG Class Reference

#include <invert_quda.h>

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

Public Member Functions

 CG (DiracMatrix &mat, DiracMatrix &matSloppy, SolverParam &param, TimeProfile &profile)
 
virtual ~CG ()
 
void operator() (ColorSpinorField &out, ColorSpinorField &in)
 
void solve (ColorSpinorField &out, ColorSpinorField &in)
 
- Public Member Functions inherited from quda::Solver
 Solver (SolverParam &param, TimeProfile &profile)
 
virtual ~Solver ()
 
bool convergence (const double &r2, const double &hq2, const double &r2_tol, const double &hq_tol)
 
bool convergenceHQ (const double &r2, const double &hq2, const double &r2_tol, const double &hq_tol)
 
bool convergenceL2 (const double &r2, const double &hq2, const double &r2_tol, const double &hq_tol)
 
void PrintStats (const char *, int k, const double &r2, const double &b2, const double &hq2)
 
void PrintSummary (const char *name, int k, const double &r2, const double &b2)
 
virtual double flops () const
 

Private Attributes

const DiracMatrixmat
 
const DiracMatrixmatSloppy
 
ColorSpinorFieldyp
 
ColorSpinorFieldrp
 
ColorSpinorFieldApp
 
ColorSpinorFieldtmpp
 
std::vector< ColorSpinorField * > p
 
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 (const double &tol, const double &b2, QudaResidualType residual_type)
 
- Protected Attributes inherited from quda::Solver
SolverParamparam
 
TimeProfileprofile
 

Detailed Description

Definition at line 402 of file invert_quda.h.

Constructor & Destructor Documentation

◆ CG()

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

Definition at line 21 of file inv_cg_quda.cpp.

◆ ~CG()

quda::CG::~CG ( )
virtual

Definition at line 25 of file inv_cg_quda.cpp.

References App, init, p, rp, tmpp, and yp.

Member Function Documentation

◆ operator()()

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

Implements quda::Solver.

Reimplemented in quda::CGNR, and quda::CGNE.

Definition at line 106 of file inv_cg_quda.cpp.

References App, quda::blas::axpyCGNorm(), quda::blas::axpyNorm(), quda::blas::axpyZpbx(), b, quda::blas::caxpy(), quda::blas::cDotProduct(), quda::blas::cDotProductNormA(), checkLocation, quda::SolverParam::compute_null_vector, quda::SolverParam::compute_true_res, quda::Solver::convergence(), quda::Solver::convergenceHQ(), quda::Solver::convergenceL2(), quda::blas::copy(), quda::ColorSpinorField::Create(), csParam, d, quda::SolverParam::delta, delta, e, errorQuda, quda::blas::flops, quda::DiracMatrix::flops(), getVerbosity(), quda::SolverParam::gflops, quda::SolverParam::heavy_quark_check, quda::blas::HeavyQuarkResidualNorm(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, init, quda::DiracMatrix::isStaggered(), quda::SolverParam::iter, quda::TimeProfile::Last(), mat, matSloppy, quda::SolverParam::max_res_increase, quda::SolverParam::max_res_increase_total, quda::SolverParam::maxiter, quda::blas::norm2(), p, quda::Solver::param, quda::SolverParam::pipeline, quda::pow(), quda::SolverParam::precision, quda::SolverParam::precision_sloppy, printfQuda, quda::Solver::PrintStats(), quda::Solver::PrintSummary(), quda::Solver::profile, quda::blas::quadrupleCGReduction(), QUDA_COMPUTE_NULL_VECTOR_NO, QUDA_COPY_FIELD_CREATE, QUDA_CUDA_FIELD_LOCATION, QUDA_HEAVY_QUARK_RESIDUAL, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_PREAMBLE, QUDA_VERBOSE, QUDA_ZERO_FIELD_CREATE, quda::ColorSpinorField::RealLength(), quda::blas::reDotProduct(), quda::SolverParam::residual_type, rp, quda::SolverParam::secs, quda::SolverParam::solution_accumulator_pipeline, quda::sqrt(), quda::Solver::stopping(), tmp, tmp2, tmp3, tmpp, quda::SolverParam::tol, quda::SolverParam::tol_hq, quda::blas::tripleCGReduction(), quda::blas::tripleCGUpdate(), quda::SolverParam::true_res, quda::SolverParam::true_res_hq, updateR(), quda::SolverParam::use_sloppy_partial_accumulator, warningQuda, x, quda::blas::xmyNorm(), quda::blas::xpayz(), quda::blas::xpy(), quda::blas::xpyHeavyQuarkResidualNorm(), y, yp, z, and quda::blas::zero().

Referenced by quda::CGNE::operator()(), and quda::CGNR::operator()().

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

◆ solve()

void quda::CG::solve ( ColorSpinorField out,
ColorSpinorField in 
)
virtual

Reimplemented from quda::Solver.

Definition at line 605 of file inv_cg_quda.cpp.

References App, b, quda::blas::caxpy(), quda::blas::cDotProduct(), checkLocation, quda::ColorSpinorField::Component(), quda::conj(), conj(), quda::Solver::convergence(), quda::blas::copy(), quda::ColorSpinorField::Create(), csParam, e, errorQuda, quda::blas::flops, quda::DiracMatrix::flops(), quda::SolverParam::gflops, quda::blas::HeavyQuarkResidualNorm(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, init, quda::DiracMatrix::isStaggered(), quda::SolverParam::iter, quda::TimeProfile::Last(), mat, matSloppy, quda::SolverParam::maxiter, quda::blas::norm2(), quda::SolverParam::num_src, p, quda::Solver::param, quda::SolverParam::precision, quda::LatticeField::Precision(), quda::SolverParam::precision_sloppy, printfQuda, quda::Solver::PrintStats(), quda::Solver::PrintSummary(), quda::Solver::profile, QUDA_COPY_FIELD_CREATE, QUDA_CUDA_FIELD_LOCATION, QUDA_HEAVY_QUARK_RESIDUAL, QUDA_MAX_MULTI_SHIFT, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_PREAMBLE, QUDA_ZERO_FIELD_CREATE, quda::SolverParam::residual_type, rp, quda::SolverParam::secs, quda::sqrt(), quda::Solver::stopping(), tmp, tmp2, tmp3, tmpp, quda::SolverParam::tol, quda::SolverParam::tol_hq, quda::SolverParam::true_res, quda::SolverParam::true_res_hq, quda::SolverParam::true_res_hq_offset, quda::SolverParam::true_res_offset, quda::SolverParam::use_sloppy_partial_accumulator, warningQuda, x, quda::blas::xmyNorm(), quda::blas::xpy(), y, yp, z, and quda::blas::zero().

Here is the call graph for this function:

Member Data Documentation

◆ App

ColorSpinorField * quda::CG::App
private

Definition at line 408 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().

◆ init

bool quda::CG::init
private

Definition at line 410 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().

◆ mat

const DiracMatrix& quda::CG::mat
private

Definition at line 405 of file invert_quda.h.

Referenced by operator()(), and solve().

◆ matSloppy

const DiracMatrix& quda::CG::matSloppy
private

Definition at line 406 of file invert_quda.h.

Referenced by operator()(), and solve().

◆ p

std::vector<ColorSpinorField*> quda::CG::p
private

Definition at line 409 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().

◆ rp

ColorSpinorField * quda::CG::rp
private

Definition at line 408 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().

◆ tmpp

ColorSpinorField * quda::CG::tmpp
private

Definition at line 408 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().

◆ yp

ColorSpinorField* quda::CG::yp
private

Definition at line 408 of file invert_quda.h.

Referenced by operator()(), solve(), and ~CG().


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