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

#include <invert_quda.h>

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

Public Member Functions

 GMResDR (DiracMatrix &mat, DiracMatrix &matSloppy, DiracMatrix &matPrecon, SolverParam &param, TimeProfile &profile)
 
 GMResDR (DiracMatrix &mat, Solver &K, DiracMatrix &matSloppy, DiracMatrix &matPrecon, SolverParam &param, TimeProfile &profile)
 
virtual ~GMResDR ()
 
void operator() (ColorSpinorField &out, ColorSpinorField &in)
 
void RunDeflatedCycles (ColorSpinorField *out, ColorSpinorField *in, const double tol_threshold)
 
int FlexArnoldiProcedure (const int start_idx, const bool do_givens)
 
void RestartVZH ()
 
void UpdateSolution (ColorSpinorField *x, ColorSpinorField *r, bool do_gels)
 
- 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
 
ColorSpinorFieldSetZm
 
ColorSpinorFieldrp
 
ColorSpinorFieldyp
 residual vector More...
 
ColorSpinorFieldtmpp
 high precision accumulator More...
 
ColorSpinorFieldr_sloppy
 temporary for mat-vec More...
 
ColorSpinorFieldr_pre
 sloppy residual vector More...
 
ColorSpinorFieldp_pre
 residual passed to preconditioner More...
 
TimeProfileprofile
 preconditioner result More...
 
GMResDRArgsgmresdr_args
 
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 859 of file invert_quda.h.

Constructor & Destructor Documentation

◆ GMResDR() [1/2]

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

◆ GMResDR() [2/2]

quda::GMResDR::GMResDR ( DiracMatrix mat,
Solver K,
DiracMatrix matSloppy,
DiracMatrix matPrecon,
SolverParam param,
TimeProfile profile 
)

Definition at line 234 of file inv_gmresdr_quda.cpp.

◆ ~GMResDR()

quda::GMResDR::~GMResDR ( )
virtual

Member Function Documentation

◆ FlexArnoldiProcedure()

int quda::GMResDR::FlexArnoldiProcedure ( const int  start_idx,
const bool  do_givens = false 
)

◆ operator()()

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

◆ RestartVZH()

void quda::GMResDR::RestartVZH ( )

◆ RunDeflatedCycles()

void quda::GMResDR::RunDeflatedCycles ( ColorSpinorField out,
ColorSpinorField in,
const double  tol_threshold 
)

◆ UpdateSolution()

void quda::GMResDR::UpdateSolution ( ColorSpinorField x,
ColorSpinorField r,
bool  do_gels 
)

Definition at line 271 of file inv_gmresdr_quda.cpp.

References args, quda::blas::caxpy(), quda::ColorSpinorField::Components(), errorQuda, quda::SolverParam::extlib_type, gmresdr_args, quda::Solver::param, QUDA_EIGEN_EXTLIB, QUDA_MAGMA_EXTLIB, Vm, x, and Zm.

Referenced by operator()().

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

Member Data Documentation

◆ gmresdr_args

GMResDRArgs* quda::GMResDR::gmresdr_args
private

Definition at line 882 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), RestartVZH(), UpdateSolution(), and ~GMResDR().

◆ init

bool quda::GMResDR::init
private

Definition at line 884 of file invert_quda.h.

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

◆ K

Solver* quda::GMResDR::K
private

Definition at line 867 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), GMResDR(), operator()(), and ~GMResDR().

◆ Kparam

SolverParam quda::GMResDR::Kparam
private

Definition at line 868 of file invert_quda.h.

Referenced by GMResDR().

◆ mat

DiracMatrix& quda::GMResDR::mat
private

Definition at line 863 of file invert_quda.h.

Referenced by operator()().

◆ matPrecon

DiracMatrix& quda::GMResDR::matPrecon
private

Definition at line 865 of file invert_quda.h.

Referenced by GMResDR().

◆ matSloppy

DiracMatrix& quda::GMResDR::matSloppy
private

Definition at line 864 of file invert_quda.h.

Referenced by FlexArnoldiProcedure().

◆ p_pre

ColorSpinorField* quda::GMResDR::p_pre
private

residual passed to preconditioner

Definition at line 878 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), and ~GMResDR().

◆ profile

TimeProfile& quda::GMResDR::profile
private

preconditioner result

Definition at line 880 of file invert_quda.h.

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

◆ r_pre

ColorSpinorField* quda::GMResDR::r_pre
private

sloppy residual vector

Definition at line 877 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), and ~GMResDR().

◆ r_sloppy

ColorSpinorField* quda::GMResDR::r_sloppy
private

temporary for mat-vec

Definition at line 876 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), and ~GMResDR().

◆ rp

ColorSpinorField* quda::GMResDR::rp
private

Definition at line 873 of file invert_quda.h.

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

◆ tmpp

ColorSpinorField* quda::GMResDR::tmpp
private

high precision accumulator

Definition at line 875 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), and ~GMResDR().

◆ Vm

ColorSpinorFieldSet* quda::GMResDR::Vm
private

Definition at line 870 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), RestartVZH(), UpdateSolution(), and ~GMResDR().

◆ yp

ColorSpinorField* quda::GMResDR::yp
private

residual vector

Definition at line 874 of file invert_quda.h.

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

◆ Zm

ColorSpinorFieldSet* quda::GMResDR::Zm
private

Definition at line 871 of file invert_quda.h.

Referenced by FlexArnoldiProcedure(), operator()(), RestartVZH(), UpdateSolution(), and ~GMResDR().


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