QUDA  v1.1.0
A library for QCD on GPUs
Public Member Functions | List of all members
quda::MultiShiftCG Class Reference

Multi-Shift Conjugate Gradient Solver. More...

#include <invert_quda.h>

+ Inheritance diagram for quda::MultiShiftCG:

Public Member Functions

 MultiShiftCG (const DiracMatrix &mat, const DiracMatrix &matSloppy, SolverParam &param, TimeProfile &profile)
 
virtual ~MultiShiftCG ()
 
void operator() (std::vector< ColorSpinorField * >x, ColorSpinorField &b, std::vector< ColorSpinorField * > &p, double *r2_old_array)
 Run multi-shift and return Krylov-space at the end of the solve in p and r2_old_arry. More...
 
void operator() (std::vector< ColorSpinorField * > out, ColorSpinorField &in)
 Run multi-shift and return Krylov-space at the end of the solve in p and r2_old_arry. More...
 
- Public Member Functions inherited from quda::MultiShiftSolver
 MultiShiftSolver (const DiracMatrix &mat, const DiracMatrix &matSloppy, SolverParam &param, TimeProfile &profile)
 
virtual ~MultiShiftSolver ()
 
bool convergence (const double *r2, const double *r2_tol, int n) const
 

Additional Inherited Members

- Protected Attributes inherited from quda::MultiShiftSolver
const DiracMatrixmat
 
const DiracMatrixmatSloppy
 
SolverParamparam
 
TimeProfileprofile
 

Detailed Description

Multi-Shift Conjugate Gradient Solver.

Definition at line 1258 of file invert_quda.h.

Constructor & Destructor Documentation

◆ MultiShiftCG()

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

Definition at line 115 of file inv_multi_cg_quda.cpp.

◆ ~MultiShiftCG()

quda::MultiShiftCG::~MultiShiftCG ( )
virtual

Definition at line 121 of file inv_multi_cg_quda.cpp.

Member Function Documentation

◆ operator()() [1/2]

void quda::MultiShiftCG::operator() ( std::vector< ColorSpinorField * >  out,
ColorSpinorField in 
)
inlinevirtual

Run multi-shift and return Krylov-space at the end of the solve in p and r2_old_arry.

Parameters
outstd::vector of pointer to solutions for all the shifts.
inright-hand side.

Implements quda::MultiShiftSolver.

Definition at line 1279 of file invert_quda.h.

◆ operator()() [2/2]

void quda::MultiShiftCG::operator() ( std::vector< ColorSpinorField * >  x,
ColorSpinorField b,
std::vector< ColorSpinorField * > &  p,
double *  r2_old_array 
)

Run multi-shift and return Krylov-space at the end of the solve in p and r2_old_arry.

Parameters
outstd::vector of pointer to solutions for all the shifts.
inright-hand side.
pstd::vector of pointers to hold search directions. Note this will be resized as necessary.
r2_old_arraypointer to last values of r2_old for old shifts. Needs to be large enough to hold r2_old for all shifts.

Definition at line 155 of file inv_multi_cg_quda.cpp.


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