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

#include <invert_quda.h>

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

Public Member Functions

 IncEigCG (DiracMatrix &mat, DiracMatrix &matSloppy, DiracMatrix &matPrecon, SolverParam &param, TimeProfile &profile)
 
virtual ~IncEigCG ()
 
void RestartVT (const double beta, const double rho)
 
void UpdateVm (ColorSpinorField &res, double beta, double sqrtr2)
 
int eigCGsolve (ColorSpinorField &out, ColorSpinorField &in)
 
int initCGsolve (ColorSpinorField &out, ColorSpinorField &in)
 
void operator() (ColorSpinorField &out, ColorSpinorField &in)
 
- Public Member Functions inherited from quda::Solver
 Solver (SolverParam &param, TimeProfile &profile)
 
virtual ~Solver ()
 
virtual void solve (ColorSpinorField &out, ColorSpinorField &in)
 
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

DiracMatrixmat
 
DiracMatrixmatSloppy
 
DiracMatrixmatPrecon
 
SolverK
 
SolverParam Kparam
 
ColorSpinorFieldSetVm
 
ColorSpinorFieldrp
 
ColorSpinorFieldyp
 residual vector More...
 
ColorSpinorFieldp
 high precision accumulator More...
 
ColorSpinorFieldAp
 
ColorSpinorFieldtmpp
 
ColorSpinorFieldAz
 temporary for mat-vec More...
 
ColorSpinorFieldr_pre
 
ColorSpinorFieldp_pre
 residual passed to preconditioner More...
 
EigCGArgseigcg_args
 preconditioner result More...
 
TimeProfileprofile
 
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 813 of file invert_quda.h.

Constructor & Destructor Documentation

◆ IncEigCG()

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

◆ ~IncEigCG()

quda::IncEigCG::~IncEigCG ( )
virtual

Definition at line 282 of file inv_eigcg_quda.cpp.

References Ap, Az, eigcg_args, init, K, p, p_pre, r_pre, rp, tmpp, Vm, and yp.

Member Function Documentation

◆ eigCGsolve()

int quda::IncEigCG::eigCGsolve ( ColorSpinorField out,
ColorSpinorField in 
)

Definition at line 373 of file inv_eigcg_quda.cpp.

References Ap, args, quda::blas::axpyNorm(), quda::blas::axpyZpbx(), Az, b, checkLocation, commGlobalReductionSet(), quda::Solver::convergence(), quda::blas::copy(), quda::ColorSpinorField::Create(), csParam, e, eigcg_args, errorQuda, quda::blas::flops, quda::DiracMatrix::flops(), quda::SolverParam::gflops, quda::EigCGArgs::global_stop, quda::blas::HeavyQuarkResidualNorm(), init, quda::SolverParam::inv_type, quda::SolverParam::iter, K, Kparam, quda::TimeProfile::Last(), quda::SolverParam::m, matSloppy, quda::SolverParam::maxiter, quda::SolverParam::nev, quda::blas::norm2(), p, p_pre, quda::Solver::param, quda::SolverParam::precision_precondition, quda::SolverParam::precision_ritz, quda::SolverParam::precision_sloppy, printfQuda, quda::Solver::PrintStats(), quda::Solver::PrintSummary(), profile, QUDA_COPY_FIELD_CREATE, QUDA_CUDA_FIELD_LOCATION, QUDA_DOUBLE_PRECISION, QUDA_HEAVY_QUARK_RESIDUAL, QUDA_INC_EIGCG_INVERTER, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_PREAMBLE, QUDA_ZERO_FIELD_CREATE, r_pre, quda::blas::reDotProduct(), quda::SolverParam::residual_type, rp, quda::SolverParam::secs, quda::sqrt(), quda::Solver::stopping(), tmp, tmpp, quda::SolverParam::tol, quda::SolverParam::tol_hq, quda::SolverParam::true_res, quda::SolverParam::true_res_hq, UpdateVm(), Vm, warningQuda, x, quda::blas::xmyNorm(), quda::blas::xpy(), y, yp, z, and quda::blas::zero().

Referenced by operator()().

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

◆ initCGsolve()

int quda::IncEigCG::initCGsolve ( ColorSpinorField out,
ColorSpinorField in 
)

◆ operator()()

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

◆ RestartVT()

void quda::IncEigCG::RestartVT ( const double  beta,
const double  rho 
)

◆ UpdateVm()

void quda::IncEigCG::UpdateVm ( ColorSpinorField res,
double  beta,
double  sqrtr2 
)

Definition at line 349 of file inv_eigcg_quda.cpp.

References Ap, args, quda::blas::ax(), Az, quda::ColorSpinorField::Component(), quda::blas::copy(), eigcg_args, quda::SolverParam::m, quda::Solver::param, RestartVT(), and Vm.

Referenced by eigCGsolve().

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

Member Data Documentation

◆ Ap

ColorSpinorField* quda::IncEigCG::Ap
private

Definition at line 828 of file invert_quda.h.

Referenced by eigCGsolve(), RestartVT(), UpdateVm(), and ~IncEigCG().

◆ Az

ColorSpinorField* quda::IncEigCG::Az
private

temporary for mat-vec

Definition at line 830 of file invert_quda.h.

Referenced by eigCGsolve(), RestartVT(), UpdateVm(), and ~IncEigCG().

◆ eigcg_args

EigCGArgs* quda::IncEigCG::eigcg_args
private

preconditioner result

Definition at line 834 of file invert_quda.h.

Referenced by eigCGsolve(), operator()(), RestartVT(), UpdateVm(), and ~IncEigCG().

◆ init

bool quda::IncEigCG::init
private

Definition at line 838 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().

◆ K

Solver* quda::IncEigCG::K
private

Definition at line 820 of file invert_quda.h.

Referenced by eigCGsolve(), IncEigCG(), initCGsolve(), operator()(), and ~IncEigCG().

◆ Kparam

SolverParam quda::IncEigCG::Kparam
private

Definition at line 821 of file invert_quda.h.

Referenced by eigCGsolve(), IncEigCG(), initCGsolve(), and operator()().

◆ mat

DiracMatrix& quda::IncEigCG::mat
private

Definition at line 816 of file invert_quda.h.

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

◆ matPrecon

DiracMatrix& quda::IncEigCG::matPrecon
private

Definition at line 818 of file invert_quda.h.

Referenced by IncEigCG(), initCGsolve(), and operator()().

◆ matSloppy

DiracMatrix& quda::IncEigCG::matSloppy
private

Definition at line 817 of file invert_quda.h.

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

◆ p

ColorSpinorField* quda::IncEigCG::p
private

high precision accumulator

Definition at line 827 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().

◆ p_pre

ColorSpinorField* quda::IncEigCG::p_pre
private

residual passed to preconditioner

Definition at line 832 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().

◆ profile

TimeProfile& quda::IncEigCG::profile
private

Definition at line 836 of file invert_quda.h.

Referenced by eigCGsolve(), IncEigCG(), initCGsolve(), and operator()().

◆ r_pre

ColorSpinorField* quda::IncEigCG::r_pre
private

Definition at line 831 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().

◆ rp

ColorSpinorField* quda::IncEigCG::rp
private

Definition at line 825 of file invert_quda.h.

Referenced by eigCGsolve(), initCGsolve(), operator()(), and ~IncEigCG().

◆ tmpp

ColorSpinorField* quda::IncEigCG::tmpp
private

Definition at line 829 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().

◆ Vm

ColorSpinorFieldSet* quda::IncEigCG::Vm
private

Definition at line 823 of file invert_quda.h.

Referenced by eigCGsolve(), operator()(), RestartVT(), UpdateVm(), and ~IncEigCG().

◆ yp

ColorSpinorField* quda::IncEigCG::yp
private

residual vector

Definition at line 826 of file invert_quda.h.

Referenced by eigCGsolve(), and ~IncEigCG().


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